Table des matières:
- Étape 1: Préparation du matériel
- Étape 2: Activer SSH
- Étape 3: Installation de Cloud4RPi
- Étape 4: connexion du capteur
- Étape 5: Envoi des lectures des capteurs au cloud
- Étape 6: Graphiques et alarmes
Vidéo: Surveillance de la température et de l'humidité à l'aide de Raspberry Pi : 6 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:06
L'été arrive et ceux qui n'ont pas de climatiseur doivent être prêts à contrôler manuellement l'atmosphère à l'intérieur. Dans cet article, je décris la façon moderne de mesurer les paramètres les plus importants pour le confort humain: la température et l'humidité. Ces données collectées sont envoyées vers le cloud et y sont traitées.
J'utilise une carte Raspberry Pi 1 et le capteur DHT22. Vous pouvez faire la même chose sur n'importe quel ordinateur doté d'Internet, de GPIO et de Python. Le capteur DHT11 moins cher fonctionne également très bien.
Étape 1: Préparation du matériel
Commençons par le tout début, car je n'ai pas utilisé mon Raspberry Pi depuis assez longtemps.
Nous aurons besoin:
- Carte Raspberry Pi (ou autre plateforme orientée IoT).
- Carte SD ou microSD (selon la plateforme).
- 5V/1A via micro-USB.
- Câble LAN, qui fournit la connexion Internet.
- Affichage HDMI, affichage RCA ou port UART (pour activer SSH).
La toute première étape consiste à télécharger Raspbian. J'ai choisi la version Lite, car je vais utiliser SSH au lieu d'afficher. Les choses ont changé depuis la dernière fois que je l'ai fait: il existe maintenant un excellent logiciel de gravure appelé Etcher, qui fonctionne parfaitement et a un design époustouflant.
Une fois la gravure de l'image terminée, j'ai inséré la carte SD dans mon Pi, branché les câbles LAN et d'alimentation, et après un certain temps, mon routeur a enregistré le nouveau périphérique.
Étape 2: Activer SSH
SSH est désactivé par défaut. Je peux utiliser un convertisseur UART-USB ou simplement connecter un écran pour accéder au shell et activer SSH.
Après le redémarrage, je suis enfin dedans. Tout d'abord, mettons à jour:
sudo apt update && sudo apt upgrade -y
Connectons maintenant ce nouvel appareil au Cloud.
Étape 3: Installation de Cloud4RPi
J'ai décidé d'essayer la plate-forme cloud appelée Cloud4RPi, conçue pour l'IoT.
D'après la documentation, nous avons besoin des packages suivants pour le faire fonctionner:
sudo apt installer git python python-pip -y
La bibliothèque cliente peut être installée en une seule commande:
sudo pip installer cloud4rpi
Maintenant, nous avons besoin d'un exemple de code pour nous assurer que cela fonctionne.
git clone https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python && cd cloud4rpi-raspberrypi-python git clone https://gist.github.com/f8327a1ef09ceb1ef142fa68701270de.git e && mv e/minimal.py minimal.py && rmdir -re
J'ai décidé d'exécuter minimal.py, mais je n'aime pas les fausses données. Heureusement, j'ai remarqué un moyen simple de rendre les données de diagnostic réelles dans cet exemple. Ajoutez une autre importation à la section des importations:
à partir de l'importation rpi *
Supprimez ensuite ces fonctions qui fournissent de fausses données (le rpi.py les définit maintenant):
def cpu_temp():
return 70 def ip_address(): return '8.8.8.8' def host_name(): return 'hostname' def os_name(): return 'osx'
Nous avons maintenant besoin d'un jeton, qui permet à Cloud4RPi de lier les appareils aux comptes. Pour en obtenir un, créez un compte sur cloud4rpi.io et cliquez sur le bouton Nouvel appareil sur cette page. Remplacez la chaîne _YOUR_DEVICE_TOKEN_ dans le fichier minimal.py par le jeton de votre appareil et enregistrez le fichier. Nous sommes maintenant prêts pour le premier lancement.
python minimal.py
Ouvrez la page de l'appareil et vérifiez que les données sont là.
Passons maintenant aux données du monde réel.
Étape 4: connexion du capteur
Nous aurons besoin:
- Capteur d'humidité DHT22 ou DHT11
- Résistance pull-up (5-10 KΩ)
- Fils
Le capteur DHT22 mesure simultanément la température et l'humidité. Le protocole de communication n'est pas standardisé, nous n'avons donc pas besoin de l'activer dans raspi-config - une simple broche GPIO est plus que suffisante.
Pour acquérir les données, j'utiliserai la grande bibliothèque d'Adafruit pour les capteurs DHT, mais cela peut ne pas fonctionner tel quel. Une fois, j'ai trouvé un étrange retard constant dans le code, qui ne fonctionnait pas pour mon matériel, et après deux ans, ma demande d'extraction est toujours en attente. J'ai également modifié les constantes de détection de la carte car mon Raspberry Pi 1 avec BCM2835 a été étonnamment détecté comme Raspberry Pi 3. J'aimerais que ce soit vrai… Ainsi, je recommande d'utiliser mon fork. Si vous rencontrez des problèmes avec celui-ci, veuillez essayer le référentiel d'origine, cela fonctionne peut-être pour quelqu'un, mais je ne suis pas l'un d'entre eux.
git clone https://github.com/Himura2la/Adafruit_Python_DHT…. Adafruit_Python_DHT
Comme la bibliothèque est écrite en C, elle nécessite une compilation, vous avez donc besoin des packages build-essential et python-dev.
sudo apt install build-essential python-dev -ysudo python setup.py install
Pendant l'installation des packages, connectez le DHT22 comme indiqué sur l'image.
Et testez-le:
cd ~python -c "importer Adafruit_DHT en tant que d; imprimer d.read_retry(d. DHT22, 4)"
Si vous voyez quelque chose comme (39.2000076293945, 22.600000381469727), vous devez savoir qu'il s'agit de l'humidité en pourcentage et de la température en degrés Celsius.
Maintenant, assemblons le tout !
Étape 5: Envoi des lectures des capteurs au cloud
Je vais utiliser le minimal.py comme base et y ajouter l'interaction DHT22.
cd cloud4rpi-framboisepi-python
cp minimal.py ~/cloud_dht22.py cp rpi.py ~/rpi.py cd vi cloud_dht22.py
Comme DHT22 renvoie à la fois la température et l'humidité en un seul appel, je les stocke globalement et ne les mets à jour qu'une seule fois dans une requête, en supposant que le délai entre eux est supérieur à 10 secondes. Considérez le code suivant, qui acquiert les données DHT22:
importer Adafruit_DHT
temp, hum = None, None last_update = time.time() - 20 def update_data(): global last_update, hum, temp if time.time() - last_update > 10: hum, temp = Adafruit_DHT.read_retry(Adafruit_DHT. DHT22, 4) last_update = time.time() def get_t(): update_data() retourne round(temp, 2) si temp n'est pas None else None def get_h(): update_data() retourne round(hum, 2) si hum n'est pas Aucun d'autre Aucun
Insérez ce code après les importations existantes et modifiez la section des variables afin qu'elle utilise les nouvelles fonctions:
variables = {
'DHT22 Temp': { 'type': 'numeric', 'bind': get_t }, 'DHT22 Humidity': { 'type': 'numeric', 'bind': get_h }, 'CPU Temp': { 'type ': 'numeric', 'bind': cpu_temp } }
Appuyez sur le bouton rouge pour démarrer le transfert de données:
python cloud_dht22.py
Ensuite, vous pouvez consulter la page de l'appareil.
Vous pouvez le laisser tel quel, mais je préfère avoir un service pour tout. Cela garantit que le script est toujours en cours d'exécution. Création d'un service avec le script entièrement automatisé:
wget -O https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python/blob/master/service_install.sh | sudo bash -s cloud_dht22.py
Démarrage du service:
démarrage du service sudo cloud4rpi
Et en vérifiant:
pi@raspberrypi:~ $ sudo service cloud4rpi status -l
● cloud4rpi.service - Démon Cloud4RPi Chargé: chargé (/lib/systemd/system/cloud4rpi.service; activé) Actif: actif (en cours d'exécution) depuis le mercredi 2017-05-17 20:22:48 UTC; il y a 1 min PID principal: 560 (python) CGroup: /system.slice/cloud4rpi.service └─560 /usr/bin/python /home/pi/cloud_dht22.py17 mai 20:22:51 raspberrypi python[560]: Publishing iot -hub/messages: {'type': 'config', 'ts': '2017-05-17T20…y'}]}17 mai 20:22:53 raspberrypi python[560]: Publication iot-hub/messages: {'type': 'data', 'ts': '2017-05-17T20:2…40'}}17 mai 20:22:53 raspberrypi python[560]: Publication iot-hub/messages: {'type': 'système', 'ts': '2017-05-17T20….4'}}
Si tout fonctionne comme prévu, nous pouvons continuer et utiliser les capacités de la plate-forme Cloud4RPi pour manipuler les données.
Étape 6: Graphiques et alarmes
Tout d'abord, traçons les variables pour voir comment elles changent. Cela peut être fait en ajoutant un nouveau panneau de contrôle et en y mettant les graphiques requis.
Une autre chose que nous pouvons faire ici est de définir une alerte. Cette fonction vous permet de configurer la plage de sécurité d'une variable. Dès que la plage est dépassée, il envoie une notification par e-mail. Sur la page d'édition du Panneau de configuration, vous pouvez passer aux alertes et en configurer une.
Juste après cela, l'humidité dans ma chambre a commencé à diminuer rapidement sans aucune raison apparente, et l'alarme a rapidement suivi.
Vous pouvez utiliser Cloud4RPi gratuitement avec n'importe quel matériel capable d'exécuter Python. Quant à moi, maintenant je sais toujours quand allumer l'humidificateur d'air, et je peux même le connecter à un relais pour le contrôle à distance via Cloud4RPi. Je suis prêt pour la chaleur ! Bienvenue l'été!
Conseillé:
Surveillance de la température et de l'humidité à l'aide de NODE MCU ET BLYNK : 5 étapes
Surveillance de la température et de l'humidité à l'aide de NODE MCU ET BLYNK : Salut les gars Dans cette instruction, apprenons comment obtenir la température et l'humidité de l'atmosphère à l'aide du capteur de température et d'humidité DHT11 à l'aide de l'application Node MCU et BLYNK
Surveillance de la température et de l'humidité DHT à l'aide de l'ESP8266 et de la plate-forme IoT AskSensors : 8 étapes
Surveillance de la température et de l'humidité DHT à l'aide de l'ESP8266 et de la plate-forme IoT AskSensors : dans un précédent instructable, j'ai présenté un guide étape par étape pour démarrer avec le nodeMCU ESP8266 et la plate-forme IoT AskSensors. Dans ce tutoriel, je connecte un capteur DHT11 au nœud MCU. Le DHT11 est un capteur de température et d'humidit
Surveillance de la température et de l'humidité à l'aide de l'ESP-01 et du DHT et du nuage AskSensors : 8 étapes
Surveillance de la température et de l'humidité à l'aide de l'ESP-01 et du DHT et du nuage AskSensors : dans cette instruction, nous allons apprendre à surveiller la température et les mesures d'humidité à l'aide de la carte IOT-MCU/ESP-01-DHT11 et de la plate-forme AskSensors IoT .Je choisis le module IOT-MCU ESP-01-DHT11 pour cette application car il
ESP8266 Surveillance de la température Nodemcu à l'aide de DHT11 sur un serveur Web local - Obtenez la température et l'humidité de la pièce sur votre navigateur : 6 étapes
ESP8266 Surveillance de la température Nodemcu à l'aide de DHT11 sur un serveur Web local | Obtenez la température et l'humidité de la pièce sur votre navigateur : Salut les gars, aujourd'hui, nous allons faire une analyse de l'humidité et de l'humidité; système de surveillance de la température utilisant ESP 8266 NODEMCU & Capteur de température DHT11. La température et l'humidité seront obtenues à partir du capteur DHT11 et de l'amp; il peut être vu sur un navigateur quelle page Web sera gérée
Surveillance de la température et de l'humidité à l'aide de SHT25 et Raspberry Pi : 5 étapes
Surveillance de la température et de l'humidité à l'aide de SHT25 et de Raspberry Pi : Nous avons récemment travaillé sur divers projets nécessitant une surveillance de la température et de l'humidité, puis nous nous sommes rendu compte que ces deux paramètres jouent en fait un rôle central dans l'estimation de l'efficacité de fonctionnement d'un système. Tous les deux à l'industrie