Je continue mon défi 50 objets avec pour thème cette semaine un capteur d’humidité, de température et de pression pour l’extérieur. Comme d’habitude, j’ai tout réalisé de A à Z. Venez découvrir ce projet DIY (Do It Yourself !) dont je suis, pour le moment, le plus fier !
Table des matières
Tout de suite, la vidéo de l’objet !
Cahier des charges de l’objet
L’objectif était de créer un capteur de température, d’humidité et de pression atmosphérique sans fil, totalement connecté et autonome en énergie ! Tout est dit ici ! J’ai repris la même base de travail que sur l’anémomètre connecté, c’est à dire un objet à base de microcontrôleur ESP8266 qui permet de se connecter en Wifi à mon Raspberry Pi. Le microcontrôleur envoie les informations au Raspberry Pi grâce à un flux MQTT qui est retransmis à la base de données.
Petit rappel de l’architecture, comme d’habitude 🙂
Pour les caractéristiques de l’objet, ce dernier devra donc :
– Etre indépendant en énergie.
– Pouvoir prendre un point de mesure toutes les 30 minutes.
– Capter réellement la température, l’humidité et la pression à l’air ambiante et non à l’intérieur d’un boîtier (pour minimiser un maximum l’inertie vis à vis de l’isolation du boîtier).
Nomenclature du capteur d’humidité, de température et de pression
Electronique
Au niveau de l’électronique, nous avons un capteur d’humidité et de température DHT11 couplé à un capteur Bosch BMP180 pour la pression et une nouvelle fois la température. Pour la partie alimentation, un panneau solaire 6 V raccordé à un contrôleur de charge TP4056 pour recharger la batterie 3,7 V Lithium-Ion. En parallèle, je raccorde un module régulateur de tensions 3,3 V muni d’un régulateur AMS1117 sur lequel est soudé mon circuit électronique avec l’ESP8266, et les deux capteurs. Voici la nomenclature complète ci-dessous avec les liens où j’ai acheté ces produits. Je m’efforce à réduire au maximum le coût des projets.
Description | Photo | Prix | Lien d’achat |
Panneau solaire 5/6 V |
| 0.65 € | |
Contrôleur de charge TP4056 | 1.45 € | ||
Batterie Li-Ion 3.7 V 4000 mAh | 2.55 € | ||
Module régulateur de tension 3.3 V AMS1117 | 0.61 € | ||
Microcontrôleur ESP8266-12F | 1.84 € | ||
Capteur d’humidité / température DHT11 | 2.50 € | ||
Capteur de pression / température Bosch BMP180 | 3.48 € |
Le budget total pour l’électronique s’élève à 13,08 €.
Pièces imprimées en 3D
Les pièces imprimées en 3D sont au nombre de 3. Nous avons la base contant l’électronique de contrôle, le cône qui contient les deux capteurs et une anse de fixation. Pour le projet, je n’ai imprimé que la base et le cône. Les fichiers 3D sont disponibles sur ma page Thingiverse.
L’ensemble des pièces a été imprimé sur ma Dagoma DiscoEasy 200, avec du filament Ariane Plast Rouge Métallisé à 215°C en épaisseur de couche 0.15 mm et à 30% de remplissage. Au niveau des temps d’impression et de la quantité de matière, je suis à :
– 17 heures et 21 minutes pour 127g de PLA pour la base.
– 17 heures et 05 minutes pour 115g de PLA pour le cône.
– 15 heures et 23 minutes pour 110g de PLA estimé pour l’anse (je ne l’ai pas encore imprimée).
Schéma électronique
Au niveau de l’électronique, je repars sur le même schéma que la dernière fois (voir article sur l’anémomètre, partie 2), et je l’adapte à mes besoins :
Cliquez sur l’image pour voir en plus grand.
Cette fois-ci un seul panneau solaire devrait amplement suffire. Les capteurs consomment très peu et l’ESP8266 se réveille toutes les demi-heure pour se connecter au WiFi, prendre les points de mesure et envoyer les données. Toutes ces opérations additionnées durent environ 2 secondes. La consommation est donc moindre.
Intégration du code
Les libraires nécessaires au code sont :
– ESP8266Wifi
– PubSubClient
– Wire (intégré à Arduino IDE)
– Sodaq_BMP085
– DHT sensor library (Adafruit)
Toutes ces librairies sont disponibles sur le gestionnaire de librairies Arduino :
Sans plus tarder, le code ! Je ferai bientôt un article sur la meilleure manière de programmer sur ESP8266. Je teste plusieurs méthodes différentes actuellement. 🙂
Conclusions
L’ensemble de la conception 3D m’a pris en tout et pour tout 2 jours à temps complet. C’est dingue comment d’une simple idée, on peut arriver à un résultat autant abouti. Je pense qu’au niveau de la conception 3D, j’ai passé un cap qui me permet d’aller encore plus loin (et j’en ai plus qu’envie aujourd’hui). Je pense que l’impression 3D couplé à l’électronique et la programmation ont un bel avenir… à venir ! 😀
Pour ce qui est de l’électronique et de la programmation, je me suis senti bien plus à l’aise que la dernière fois. J’ai repris la même base que l’anémomètre connecté [3/50] et je l’ai adaptée à ce nouvel objet. J’ai également été aidé cette fois-ci par un programmateur ESP8266 sous forme de socket où l’on clipse le microcontrôleur pour le programmer. Mine de rien, ça m’a fait gagner un temps fou. Je pense que cet objet issu du monde DIY (je crois que c’est un FabLab en Angleterre qui l’a désigné) aura bientôt le droit à sa review sur le blog !
Socket de programmation ESP8266.
Bref, j’arrête de me lancer des fleurs, le prochain projet est déjà lancé à l’heure où j’écris ces lignes (le n°5 !). J’atteints le 5ème objet sur 50 et ma marge de progression est encore énorme !
Comme d’habitude, n’hésitez pas à commenter l’article pour me donner votre retour !
Benoît Jellimann.
Salut et super article ?
Nous bossons plus ou moins sur les mêmes sujets.
Heu, pourquoi etre parti sur le DHT11 plutot que le 22 a peine plus cher ? Tu n’as jamais de températures négatives ? Le 11 ne les prend pas en charge.
Il existe plein de modele d’ESP : perso, mon favori est l’ESP-201 qui reprend plus ou moins les caracteristiques du 12F mais qui à le gros avantage de permettre une antenne externe. En plus, ayant des pins compatible breadboard, c’est plus pratique pour le prototypage et la programmation qui se fait avec un FDTI standard.
Un exemple du 201 et d’un DHT22 sur mon site : http://destroyedlolo.info/ESP/Humidite/
?
Es-tu content de l’alimentation de l’ESP par des cellules ? Est-ce que tu te passes d’une recharge manuelle ?
J’envisage d’ici l’été de mettre une sonde déportée pour la température de la piscine, mais j’aimerai qu’elle soit totalement autonome.
A+
Bonjour, le code après l’appel à la fonction deepSleep du 8266 est superflu vu que l’ESP va se réinitialiser complêtement à son « réveil ».
Ca peut prêter à confusion.
A+