L'outil de visualisation des données IoT appelé conect + semblait facile à utiliser, j'ai donc décidé de l'essayer.
conect + est un outil de visualisation qui vous permet de créer facilement des applications affichant des données IoT et des dispositifs de contrôle. Il existe conect + Studio pour 9 980 yens par mois et conect + Lite qui peuvent être utilisés gratuitement. Cette fois, j'ai décidé de le visualiser avec free conect +. (Veuillez vérifier le lien pour la différence entre les services de conect + Studio et conect + Lite)
La configuration est celle illustrée dans la figure ci-dessus. Connectez les données de détection du DHT11 (capteur de température et d'humidité) connecté à Raspberry Pi pour connecter + Lite avec l'API Web.
Connectez-vous pour conect + Lite et modifiez le projet sur l'écran de création.
Dans l'onglet Informations de base, définissez la méthode de connexion (WebAPI) et le nom du produit (appelons-le rasp_dht11).
Dans l'onglet Image, définissez l'image de l'icône et l'image miniature.
Sur l'onglet Capteur, définissez le nom du capteur (température, humidité) et la clé (température, humidité).
Disposez l'écran de l'application à partir du widget préparé.
Lorsque vous appuyez sur le bouton de génération de clé API, la clé API est générée. La clé API est utilisée dans le script Raspberry Pi.
Tout d'abord, connectez le capteur de température / humidité DHT (DHT11) et le Raspberry Pi comme suit.
DHT11 | Raspberry Pi |
---|---|
VCC | 3.3V |
GND | GND |
DATA | GPIO4 |
Clonez la bibliothèque Python qui récupère les données du capteur DHT11 à partir de GitHub.
git clone https://github.com/szazo/DHT11_python.git
Lorsque le clonage est terminé, un dossier appelé "DHT11_python" sera créé. Obtenez les données de température et d'humidité avec l'exemple de script "dht11_example.py" dans ce dossier. Par défaut, le code PIN est 14, alors modifiez-le en 4.
dht11_example.py
import RPi.GPIO as GPIO
import dht11
import time
import datetime
# initialize GPIO
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.cleanup()
# read data using pin 4
instance = dht11.DHT11(pin=4) #broche numéro 4(GPIO4)Fixé à
while True:
result = instance.read()
if result.is_valid():
print("Last valid input: " + str(datetime.datetime.now()))
print("Temperature: %d C" % result.temperature)
print("Humidity: %d %%" % result.humidity)
time.sleep(1)
Ajoutez un processus d'enregistrement de données pour connecter + à cet exemple de script.
dht11_cp.py
import RPi.GPIO as GPIO
import dht11
import pprint
import json
import requests
from pytz import timezone
from datetime import datetime
# json.dumps
def post_data(api_key,device_id,data_key,sensing_at,value):
url = "https://api.conect.plus/v1/(Clé API)/data" %{'api_key':api_key}
response = requests.post(
url,
json.dumps({
'deviceUuid' : device_id,
'key' : data_key,
'sensingAt' : sensing_at,
'value1' : value}),
headers = {'Content-Type' : 'application/json'})
pprint.pprint(response.json())
# now
def now_utc_str():
return datetime.now(timezone('UTC')).strftime("%Y-%m-%d %H:%M:%S")
# initialize GPIO
GPIO.setwarnings(False) #Ignorer les avertissements
GPIO.setmode(GPIO.BCM) #Spécifiez GPIO par numéro de broche de rôle
GPIO.cleanup() #Réinitialiser les paramètres GPIO à la fin du script
API_KEY = '(Clé API)'
DEVICE_ID = 'SINWSSS'
DATA_KEY_TEMPERATURE = 'temperature'
DATA_KEY_HUMIDITY = 'humidity'
# read data using pin 4
instance = dht11.DHT11(pin=4) #Lire les données GPIO4
while True:
result = instance.read()
if result.is_valid():
break #Quitter lorsque des données valides sont obtenues (répéter si non valide)
temp = result.temperature
hum = result.humidity
print(temp,hum)
# post data
now = now_utc_str()
post_data(API_KEY,DEVICE_ID,DATA_KEY_TEMPERATURE,now,temp)
post_data(API_KEY,DEVICE_ID,DATA_KEY_HUMIDITY,now,hum)
Exécutez dht11_cp.py, et si la réponse suivante est renvoyée, elle réussit.
$ python dht11_cp.py
23 36
{'message': 'Success.', 'status': 'SUCCESS'}
{'message': 'Success.', 'status': 'SUCCESS'}
Vérifions le résultat de l'exécution sur l'écran de données de conect + pour voir si les données sont enregistrées sur le cloud.
Utilisez la fonction cron de Raspbian pour exécuter des scripts régulièrement sans avoir à interagir avec le Raspberry Pi. Ici, exécutez dht11_cp.py une fois par heure.
Exécutez la commande suivante dans LX Terminal.
crontab -e
Lorsque "Sélectionner un éditeur" s'affiche, sélectionnez / bin / nano sur "2". Lorsque "nano" s'ouvre, déplacez le curseur vers le bas de l'écran principal et entrez la commande suivante.
00 * * * * /usr/bin/python3 /home/pi/DHT11_python/dht11_cp.py
crontab: installing new crontab
Cela enregistrera les données de température et d'humidité à 00h00 toutes les heures.
Enfin, configurons l'application.
Téléchargez et lancez l'application. ↓ Appuyez sur "+" en haut à droite de l'écran ↓ Sélectionnez le projet que vous souhaitez afficher et ajouter ↓ Lier l'appareil ajouté ↓ Lorsque les données sont acquises, les données détectées sont affichées.
Après cela, il sera mis à jour chaque fois que de nouvelles données de détection sont reçues (toutes les heures).
c'est tout.
Recommended Posts