Salut à tous. c’est Zak, on se retrouve aujourd’hui, pour continuer ce que nous avons vu dans le premier article de la série ESP Easy. Pour ceux qui n’ont pas lu celui-ci, voici un petit rappel : ESP Easy est un firmware qui s’installe sur les modules à base d’ESP8266. il permet de réaliser des objets connectés facilement, et sans lignes de code. Dans l’article précédent, j’ai montré comment flasher le firmware sur Wemos D1 et NODEMCU, et expliqué les fonctionnalités dont il dispose. Maintenant nous allons voir un exemple concret d’utilisation, en réalisant un ESP Easy multi-sensor avec affichage OLED, qu’on va inclure par la suite à un système domotique. Pour commencer on part du principe que vous ayez un module ESP8266, embarquant le firmware ESP Easy (si vous ne l’avez pas encore, par ici) et on passe à la liste des courses.
Matériel nécessaire :
-Wemos D1 mini
voir sur : Amazon Aliexpress
ou
-NODEMCU V1 OU V2
voir sur : Amazon Aliexpress
-DHT11
ordinaire voir sur : Amazon Aliexpress
shield voir sur : Amazon Aliexpress
OU
-DHT22
ordinaire voir sur : Amazon Aliexpress
shield voir sur : Amazon Aliexpress
-LM393
voir sur : Amazon Aliexpress
-Écran OLED SSD1306
shield voir sur : Amazon Aliexpress
ordinaire voir sur: Amazon Aliexpress
ESP Easy Multi-sensor, le hardware :
Dans ce tuto j’ai utilisé :
-Un shield d’écran OLED qu’il suffit de monter sur un Wemos D1. Je l’ai monté sur la platine d’essai, pour montrer les 4 connexions : GND, 3.3V et les SDA SCL respectivement vers D1 et D2.
-Un capteur de température et d’humidité DHT11 ordinaire, qui existe aussi sous forme de shield pour Wemos D1. GND, 5V et la sortie OUT vers un pin libre, j’ai choisi le GPIO-12 (D6)
-Un capteur de luminosité LM393, ce dernier est alimenté en 5V, et possède une sortie analogique que j’ai connecté au seul pin analogique du Wemos D1.
ESP Easy Multi-sensor, le software :
On passe maintenant à la configuration de notre ESP Easy multi-sensor. Pour ce faire, accèder au Wemos D1 via son adresse IP, et passer à l’onglet ‘Devices’, cliquer ensuite sur EDIT pour ajouter notre capteur.
–DHT11 : On choisit DHT11 sur le menu déroulant.
On remplit les informations comme suit :
Name : nommer le capteur comme vous voulez.
Cocher Enabled pour le rendre actif.
Sélectionner le GPIO voulue, j’ai choisi GPIO-12.
Spécifier le type DHT : DHT11 pour mon cas.
Send to controller : ça permet de remonter les valeurs sur une box domotique.
Delay : vous mettez le nombre de seconds entre 2 relevés de température. J’ai mis une seconde.
On clique finalement sur ‘Submit’
On reclique sur ‘Devices’, on rafraîchit la page, et on verra la remontée de la température et de l’humidité.
Dans ce tuto j’ai utilisé délibérément un DHT11, qui remonte une valeur d’humidité décalée, pour vous montrer un exemple de la fonction ‘Formula’ d’ESP Easy, qui permette d’agir par opération arithmétique, sur une valeur avant qu’elle soit utilisée ou envoyée. Dans le cas de ce capteur on a un décalage de 35 par rapport à l’humidité réel, on écrit donc dans la case ‘Formula’ de ‘Humidity’ %value%-35
Résultat :
–LM393 :
On clique ‘Edit’ et on choisit ‘Analog Input Internal’ (c’est valable pour tous les capteurs qui possèdent une sortie analogique) Name : le non du capteur, je préfère des nom courts comme ‘Lux’ On coche ‘Enabled’ et ensuite on clique ‘Submit’
On aura la remontée d’une valeur entre 0 et 1024, j’ai eu 25 en plein jour, et 1024 dans l’obscurité.
on retourne avec ces valeurs sur la config du capteur, pour les cerner entre 1 et 100, et avoir une luminosité en pourcentage.
Résultat :
–Ecran OLED SSD1306
pour récupérer l’adresse I2C de l’écran, sur l’onglet ‘Tools’ on clique sur ‘Advanced’ puis ‘I2C scan’
de retour sur l’onglet ‘Devices’, on clique ‘Edit’, on choisi ‘Display OLED SSD1306’ et on remplit les champs comme suit : Name : vous mettez ce que vous voulez.
Enabled : cocher pour activer l’écran.
I2C Adress : l’adresse I2C qu’on vient de récupérer.
Rotation : normal ou rotaded, ça dépend de votre montage.
Display Size : la résolution d’écran utilisée.
Line de 1 à 8 : on écrit ce qu’on veut afficher sur l’écran, j’ai mis :
Line 1 :le variable %systime% pour afficher l’heure (bien sûr aprés avoir ajouté le serveur NTP dans l’onglet tools).
Line 2 : vide pour laisser un espace. Line 3 : T:[DHT11#Temperature]°C , où DHT11 est le nom du capteur, et Temperature est le nom de la valeur.
Line 3 : H:[DHT11#Humidity]%
Line 4: L: T:[Lux#Analog]%, car j’ai nommé le capteur ‘Lux’ et la valeur est nommée ‘Analog’ Display button : vous pouvez mettre un bouton pour réveiller l’écran si vous choisissez qu’elle se mette en veille après un certain temps.
Display timeout : le temps pour mettre l’écran en veille. 0 ça reste allumée.
Delay : le temps de rafraîchissement des valeur sur l’écran.
en cliquant ‘Submit’ l’écran s’allume.
Nous voila enfin avec un multi-sensor ESP Easy, il nous reste qu’à l’inclure à un système domotique. Plusieurs contrôleurs sont pris en charge par ESP Easy, et figure sur l’onglet ‘Controllers’, mais au cas où votre système n’est pas présent sur la liste -le cas de Jeedom- pas de panique ! je vous montre comment le faire tout de suite.
ESP Easy sur Jeedom.
ESP Easy peut communiquer avec un contrôleur via 2 protocoles. HTTP le plus simple, et MQTT le plus performant (utilisé surtout pour les modules sur batterie). on fera simple dans ce tuto et on prépare tout d’abord notre super capteur pour Jeedom. on se rend sur l’onglet ‘Controllers’ et on choisi ‘Generic HTTP’ .
on met l’adresse IP de Jeedom, 8121 dans le port, et sur ‘Controller Publish’ copier et coller :
on n’oublie pas de cocher ‘Enabled’ et finalement on clique ‘Submit’ côté Jeedom on installe le plugin ESP Easy (Voici comment installer un plugin Jeedom). une fois dans le plugin, on clique sur ‘Mode inclusion’ on attend quelques seconde, et comme par magie on aura l’apparition de notre équipement, et la création des commandes. Il ne reste qu’à donner un nom, un objet parent, activer et rendre visible l’équipement.
on sauvegarde, et on se retrouve avec un nouveau widget sur le dashboard.
Tuto terminé, j’espère que vous ayez compris cet exemple d’utilisation d’ESP Easy, je vous donne rendez-vous dans les prochains tutoriels, pour voir des fonctionnalités plus avancées de ce super firmware, notamment le ‘sleep mode’ et les ‘Rules’. Si vous appréciez le contenu d’OpenDomoTech et pour ne rien louper, je vous invite à nous suivre sur les réseaux sociaux, et à bientôt !
Bravo pour ce tuto simple et complet.
Toutefois, moi j’aimerai afficher en un plus grand l’heure ainsi que la température d’un autre capteur, extérieur plus particulièrement.
Je pensais à un écran nextion je crois ou papier.
Pourquoi l’affichage plus grand, c’est à cause de l’age et de la vue. L’heure et la température extérieure, c’est pour jeter un œil la nuit sur le temps restant à dormir et savoir s’il est mieux de rester sous la couette ou prendre le petit dej sur la terrasse.
Encore merci pour ce tuto
salut Papou, content de te revoir 😉 il existe un plugin ESP Easy pour Nextion, mais je ne vois pas vraiment une grande différence de taille, si c’est seulement pour savoir la température extérieure, tu peux l’avoir sur ton smartphone directement avec ESP Easy sans passer par un contrôleur domotique.
Bonjour Papou effectivement tu peux faire cela facilement avec un Nextion et tu ne as de toutes les tailles.
Il faudra par contre passer par leur éditeur pour la création graphique et ensuite tu peux rapatrier les données de Jeedom dessus sans soucis
Bonjour et merci pour le tuto! Je souhaiterais ajouter un dB meter (eg https://www.aliexpress.com/item/-/32619080728.html) mais je ne trouve pas le bon device type à utiliser. J’ai même essayer un Switch input dimmer ou potar mais rien ne fonctionne. Je n’arrive qu’à récupérer un état fini. Auriez un conseil ? Par avance merci
Salut Fred, il y a une sortie analogique A0 sur ce capteur, donc chaque niveau de bruit donne une valeur, tu fais comme j’ai fait pour le capteur de luminosité
bonjour,
je n’arriva pas a afficher les température sur mon écran. Pourtant il est reconnu. je suis novice dans la programmation.
bonjour, y a pas de programmation ici, il parait que tu as mal écrit le variable de température [DHT11#Temperature] [le non que tu as mis pour ton capteur#Temperature(si tu as mis ‘temperature’ dans ‘value’] sinon ton écran est-elle fonctionnelle ?? arrives tu à afficher quelque-chose ? tu peux me contacter sur le Messenger de la page Facebook et me fournir des capture d’écran, comme ça je saurai t’aider.