Table des matières:
- Fournitures
- Étape 1: Préparation du matériel
- Étape 2: Installation de Cloud4RPi
- Étape 3: connexion du capteur
- Étape 4: Envoi des lectures des capteurs au cloud
- Étape 5: Graphiques et alarmes
Vidéo: L'humidité dans le cloud : 5 étapes
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.
Fournitures
J'utilise une carte Raspberry Pi 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 un câble micro-USB. 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.
Super! Allons-y et SSH dedans.
La sécurité est OK, j'aime ça, mais cela rend les choses un peu plus difficiles. Je vais utiliser l'adaptateur UART-USB pour accéder au shell et activer SSH…
L'utilisation d'un écran au lieu de l'UART facilite grandement les choses.
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 2: 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 python3 python3-pip -y
La bibliothèque cliente peut être installée en une seule commande:
sudo pip3 installer cloud4rpi
Maintenant, nous avons besoin d'un exemple de code.
git clone https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python && cd cloud4rpi-raspberrypi-python
Le script exécutable est control.py.
Nous avons 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 control.py par le jeton de votre appareil et enregistrez le fichier. Nous sommes maintenant prêts pour le premier lancement.
sudo python3 control.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 3: connexion du capteur
Nous aurons besoin:
- Capteur d'humidité DHT22 ou DHT11
- Résistance pull-up (5-10 KΩ)
- FilsLe
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.gitcd 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 4: Envoi des lectures des capteurs au cloud
Je vais utiliser control.py comme base et y ajouter l'interaction DHT22.
cp cloud4rpi-raspberrypi-python/control.py./cloud_dht22.pycp cloud4rpi-raspberrypi-python/rpi.py./rpi.pyvi cloud_dht22.py
Supprimez l'exemple de code comme dans l'image ci-dessus.
Comme DHT22 renvoie à la fois la température et l'humidité en un seul appel, je vais les stocker globalement et les mettre à jour 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 = Aucun, Aucun
last_update = heure.heure() - 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() renvoie round(temp, 2) si temp n'est pas None else None def get_h(): update_data() return round(hum, 2) si hum n'est pas None else None
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 } }
Si vous trouvez que les manipulations prêtent à confusion, récupérez la version finale de ce fichier. Appuyez sur le bouton rouge pour lancer le transfert de données:
Ensuite, vous pouvez consulter la page de l'appareil.
python3 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é que vous avez déjà dans le répertoire cloud4rpi-raspberrypi-python:
service_install.sh 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.py
17 mai 20:22:51 raspberrypi python[560]: Publication iot-hub/messages: {'type': 'config', 'ts': '2017-05-17T20…y'}]}
17 mai 20:22:53 python raspberrypi[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': 'system', '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 5: 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é!
Avec Cloud4RPi, vous pouvez contrôler votre Raspberry Pi et d'autres appareils IoT à distance en temps réel. Visitez notre site et connectez gratuitement un nombre illimité d'appareils.
Conseillé:
BLE facile à très faible consommation dans Arduino Partie 2 - Moniteur de température/humidité - Rév 3: 7 étapes
BLE Easy Very Low Power dans Arduino Partie 2 -- Moniteur de température/humidité -- Rév 3 : Mise à jour : 23 novembre 2020 - Premier remplacement de 2 piles AAA depuis le 15 janvier 2019, soit 22 mois pour 2 piles alcalines AAA Mise à jour : 7 avril 2019 - Rév 3 de lp_BLE_TempHumidity, ajoute des tracés Date/Heure, à l'aide de pfodApp V3.0.362+, et la régulation automatique quand
Comment faire un enregistreur de données en temps réel d'humidité et de température avec Arduino UNO et carte SD - Simulation d'enregistreur de données DHT11 dans Proteus : 5 étapes
Comment faire un enregistreur de données en temps réel d'humidité et de température avec Arduino UNO et carte SD | Simulation de l'enregistreur de données DHT11 dans Proteus : Introduction : salut, c'est Liono Maker, voici le lien YouTube. Nous réalisons un projet créatif avec Arduino et travaillons sur des systèmes embarqués. Enregistreur de données : un enregistreur de données (également un enregistreur de données ou un enregistreur de données) est un appareil électronique qui enregistre des données au fil du temps avec
Automatiser une serre avec LoRa ! (Partie 1) -- Capteurs (température, humidité, humidité du sol) : 5 étapes
Automatiser une serre avec LoRa ! (Partie 1) || Capteurs (température, humidité, humidité du sol) : dans ce projet, je vais vous montrer comment j'ai automatisé une serre. Cela signifie que je vais vous montrer comment j'ai construit la serre et comment j'ai câblé l'électronique d'alimentation et d'automatisation. Je vais également vous montrer comment programmer une carte Arduino qui utilise L
Point d'accès (AP) NodeMCU ESP8266 pour serveur Web avec capteur de température DT11 et température et humidité d'impression dans le navigateur : 5 étapes
Point d'accès (AP) NodeMCU ESP8266 pour serveur Web avec capteur de température DT11 et température et humidité d'impression dans le navigateur : salut les gars dans la plupart des projets que nous utilisons ESP8266 et dans la plupart des projets, nous utilisons ESP8266 comme serveur Web afin que les données soient accessibles sur n'importe quel appareil via wifi en accédant au serveur Web hébergé par ESP8266, mais le seul problème est que nous avons besoin d'un routeur fonctionnel pour
Moniteur d'humidité sans fil (ESP8266 + capteur d'humidité) : 5 étapes
Moniteur d'humidité sans fil (ESP8266 + capteur d'humidité) : j'achète du persil en pot, et la majeure partie de la journée, le sol était sec. J'ai donc décidé de faire ce projet, sur la détection de l'humidité du sol en pot avec du persil, pour vérifier, quand j'ai besoin de verser de l'eau. Je pense que ce capteur (Capacitif d'humidité v1.2) est bon bec