Un capteur de température et d'humidite Wifi maison

Le matériel
- Un module nodeMCU Lolin V3
- Un capteur de température/humidité DHT22
- Une résistance de 10K Ohm
- Une pile 9V
Préambule à la gestion d’énergie : Le mode DeepSleep
Sur les ESP 8266 il existe trois modes de gestion d’énergie : » Le mode ModemSleep qui va éteindre le modem Wifi tout en gardant la connexion wifi sans transmission de données, le CPU du modem reste donc actif pendant ce temps et consomme de l’énergie » Le mode LightSleep va également conserver la connexion Wifi pour pouvoir la réactiver rapidement tout en éteignant l’horloge interne du système et le cpu ce qui provoque le fait que les interruptions système ne sont plus écoutées » Le mode DeepSleep est le plus économe en terme d’énergie, pour ce mode tout est éteint sauf l’horloge interne, ce qui permet de réveiller le système via la commande interne de RESET Le mode DeepSleep nécessite des branchements particuliers ainsi que des appels fonctions pour pouvoir être activé, ils seront détaillés plus loin dans l’article.
Schéma de branchement (sans deepSleep)
Explications du schéma : > On alimente le nodeMCU à l’aide de la pile 9V sur les broches VIN et GND > Pour le capteur DHT22 il faut adapter selon les spécifications du composant acheté. Dans mon cas : > On alimente le capteur DHT22 en 3V sur la première broche > On alimente la deuxième broche (DATA) avec une résistance de 10K Ohm et on relie également cette broche sur la broche D2 du nodeMCU (ce qui va permettre de lire les données de température et d’humidité) > Enfin on relie la dernière broche du DHT22 à une broch GND (la troisième broche est inutilisée)
Le code côté NodeMCU
|
|
Schéma de branchement (avec deepSleep)
Ici on rajoute tout simplement un câble entre la broche D0 et la broche RST pour pouvoir activer la fonction de deepSleep. Attention, il faut prévoir de pouvoir retirer facilement ce câble car une fois cette liaison faite, on ne peut plus téléverser de code dans l’ESP
Les pièges à éviter
Pour réaliser ce composant il faut faire attention à plusieurs choses :
- Les broches du nodeMCU à utiliser sont très importantes. Pour ma part en suivant des tutos sur internet, j’ai commencé par utiliser la broche D8 or cette broche a également d’autres fonctions qui empêchent de téléverser le code sur le nodeMCU une fois cette dernière relié (il faut alors relier cette broche à une broche GND lors du téléversement pour que cela fonctionne)
- Pour ces mêmes raisons de problème de téléversement, il faut prévoir de pouvoir débrancher la liaison D0/RST sinon le téléversement ne s’effectuera pas
- Lorsque l’on est en mode deepSleep on effectue un reboot du nodeMCU, or si on utilise pour un capteur les broches D8 jusqu’à D5, on va se retrouver avec un problème de boot et le nodeMCU ne lancera plus le programme téléversé, c’est pourquoi j’utilise la broche D2 (à savoir la broche D1 aurait pu convenir également)
L’Enfer
Le soucis qui se pose la plupart du temps vient de l’énergie. En effet il faut bien faire attention aux tensions d’alimentation des différents éléments au risque de ne pas avoir de mesure du tout. Pour mon cas j’ai expérimenté la solution avec une pile 9V ce qui a à chaque fois provoqué un vidage de la pile assez rapidement. Je suis passé à une solution avec une LiPo 1S de 3,7V de 1000mAH pour bénéficier du côté “rechargeable” en cas de coup dur et ce coup-ci c’est la tension de sortie de 3V de l’ESP qui n’était pas atteinte, ne pouvant donc alimenter correctement le capteur DHT22. Ma solution actuelle est d’alimenter l’ESP sur le port micro-USB faute de mieux.
Le coût
Liste des éléments que j’ai achetés :
- https://www.amazon.fr/gp/product/B074Q2WM1Y/ref=ppx_yo_dt_b_asin_title_o01_s01?ie=UTF8&psc=1
- https://www.amazon.fr/gp/product/B074MY32RX/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&psc=1
- https://www.amazon.fr/gp/product/B0746FJ6G5/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&psc=1
- https://www.amazon.fr/gp/product/B00MH4QM1S/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&psc=1
Prix unitaire en fonction des éléments achetés plus haut : 1 nodeMCU à 5€ 1 DHT22 à 5€ 1 pile 9V à 1,95 € 1 résistance (c’est cadeau)
11,95€ pour le composant au final