Aujourd’hui je vous fais découvrir EasyESP, un système à installer sur un ESP8266 et qui permet d’ajouter facilement des capteurs via une interface web. On pourra ensuite les envoyer sur un serveur MQTT par exemple ou comme nous allons le faire, vers un serveur Jeedom (pour pas changer…).
Comme d’hab je vais vous montrer en détail comment ça fonctionne. Pour le TP j’ai pris :
- 1 ESP 8266-03 avec sa devboard.
- 1 convertisseur USB-Série.
- 1 capteur DS18B20 et sa résistance de 4,7K.
Et comme prérequis, il faudra juste que vous installiez (et activiez) le plugin gratuit EasyESP sur le market de Jeedom.
Connexions.
Voilà le schéma :
J’ai utilisé une plaque à essai et une devboard pour l’ESP-03 histoire que ce soit plus facile à connecter. Voyez un peu le sac de fil :
Une fois que tout ça est branché, vous pouvez connecter votre ESP à votre PC. Relevez le n° du port COM car on en aura besoin juste après.
Installation.
Il faut d’abord récupérer la dernière version sur le site de la solution. En bas de page vous aurez le lien pour télécharger le zip de la dernière release. Dézippez tout ça dans un dossier et exécutez le fichier « flash ». On vous demande le n° du port COM, le n° de la release (indiqué dans le nom du fichier zip que vous avez téléchargé) et la taille de la mémoire de votre ESP. Vous voyez la progression de l’installation et une fois finit votre ESP est prêt.
Configuration.
Pour être sûre, redémarrez votre ESP. Il va diffuser un réseau Wifi nommé « ESP_0 », il va falloir que vous vous connectiez à ce réseau. Si comme moi vous utilisez un PC fixe (sans carte wifi), utilisez votre téléphone ou un PC portable. Le mot de passe par défaut du réseau est « configesp ».
Une fois associé au réseau, lancez votre navigateur et tentez d’aller sur une page web, normalement l’ESP devrait faire office de portail captif et vous allez être redirigé automatiquement vers la page de configuration d’un réseau wifi sur l’ESP. Configurez alors votre réseau wifi de la maison.
Cliquez sur « connect », il va essayer de se connecter. Attendez la fin du compte à rebours.
S’il a réussi il vous affichera l’adresse IP qu’il a récupéré et vous donnera la possibilité de vous connecter dessus.
ATTENTION : N’oubliez pas que vous ne devriez plus être connecté à votre réseau de la maison c’est donc normal si vous ,’arivez pas à vous connecter dessus de suite. Remettez vous sur votre réseau local et connectez vous sur http://<ip_de_l’esp>/config.
Name : Donnez lui le nom que vous voulez.
Protocol : Generic HTTP
Controller IP : Mettez l’ip de votre serveur Jeedom.
Controller Port : Allez dans Jeedom, menu Plugins / Protocole domotique / EasyESP / Configuration et relevez le numéro de port figurant dans la dernière partie « configuration ».
Sensor Delay : C’est l’intervalle à laquelle l’ESP enverra les données. Je l’ai mis à 30 secondes pour les tests mais vous pouvez laisser 60 si vous voulez.
Optional Settings : J’ai renseigné la partie réseau mais si votre serveur jeedom est dans le même sous-réseau ce n’est pas nécessaire.
Cliquez sur « Submit » pour que vos changements soient pris en compte.
Ajout des capteurs.
Petit rappel : Mon capteur est connecté sur le GPIO2 de l’ESP.
Allez dans le menu « Devices ». Chaque ligne correspond potentiellement à un capteur. Éditez donc la 1er ligne.
Device : Parmi les capteurs prédéfinis, choisissez le DS18B20
Name : Donnez lui un nom.
IDX : Choisissez un identifiant. J’ai pris 1 et j’incrémente ensuite. 2 capteurs ne doivent pas avoir le même identifiant.
GPIO : GPIO sur lequel est connecté la data de notre capteur.
Cliquez sur « submit », cela devrait définir automatiquement le « Device Nr ».
Send Data : Si vous voulez envoyer les données, il faut que ce soit coché.
Formula : Permet de modifier la valeur,par exemple pour ajouter/supprimer un offset.
Value Name : Nom de la variable associé à la valeur de température dans notre cas.
Il vous faudra peut-être attendre un peu avant d’avoir la première mesure, rafraîchissez la page jusqu’à obtenir une valeur. 24° chez moi !
Maintenant que vous avez compris le principe vous pouvais faire de même avec vos autres capteurs si vous en avez.
Dernier réglage, allez dans l’onglet « Tools » et cliquez sur « Advanced ». Copiez/coller la requête suivante : device=%sysname%&taskid=%id%&cmd=%valname%&value=%value%
Un submit et ce sera tout pour l’ESP. A ce stade il envoi les données à Jeedom toutes les 30 ou 60 secondes suivant ce que vous avez définit, sauf que Jeedom n’est pas encore au courant qu’il doit les utiliser ! On va donc passer à la configuration de Jeedom.
Intégration à Jeedom.
Rendez vous dans le menu Plugins / Protocole Domotique / EasyESP. A priori vous ne devriez avoir aucun équipement pour le moment. Il faut juste passer en mode inclusion et attendre que l’ESP envoie des données. Jeedom devrait alors automatiquement ajouter l’ESP. Il apparaîtra grisé (désactivé) par défaut mais vous pouvez aller dedans pour l’activer et le rendre visible.
Vous voyez qu’il a récupéré automatiquement la valeur de notre capteur température. Il ne reste plus qu’à l’afficher et vous récupérer la valeur sur votre dashboard.
NB : La différence de température entre easyesp et jeedom est uniquement dûe au fait que j’ai écris la fin de l’article le lendemain.
Libre à vous de le personnaliser comme vous voulez.
Voilà le TP est terminé :).
L’intérêt est que EasyESP nous facilite grandement le travail quand il s’agit de montage avec des capteurs basiques. Si vous vous souvenez j’avais déjà fait un article qui donnait le même résultat sauf que nous avions dû coder un mini programme dans l’ESP (avec nodemcu) pour renvoyer la valeur vers Jeedom.
Sur ce, il ne me reste plus qu’à vous souhaiter une bonne journée 🙂
Bonjour
je viens de flasher mon esp8266-01
tout est ok
je débranche et rebranche
je ne voit pas le réseau ESP_0
pouvez vous m’aider
Pierre
Bonjour,
Avez vous trouvé la solution car j’ai le même problème avec plusieurs esp différent
Bonjour
je viens d’appliquer votre processus mais je rencontre le problème suivant :
mon thermomètre ESP 8266 est bien détecté par jeedom et dans l’onglet commande j’ai bien la température qui s’affiche par contre lorsque je sauvegarde après l’avoir déclaré comme objet la température ne s’affiche pas et de plus lorsque je passe sous l’onglet « commandes » la valeur affichée est toujours la même
j’en perds mon latin
en espérant une aide
Bonsoir.
Jeedom est très procédurier, il faut d’abord déclarer un objet (à partir de rien de concret pour le moment), perso je mets le nom de mon esp.
Installer (par exemple) mqtt depuis le market jeedom, le configurer aussi dans l’esp (config-protocol-openHABmqtt).
Ensuite aller dans mqtt et choisir un onglet grisé (s’il n’y en a pas c’est que mqtt ne communique pas avec l’esp pour cause de mauvaise config, mdp, port…), l’activer et le rendre visible, un tour dans commandes et on voit de quoi il s’agit (temp, humidité, pression…).
Voilà ça devrait s’afficher.