Quand je vois des gens réaliser des objets connectés à partir de microcontrôleurs, ça me branche, je trouve au début que c’est abordable, quelque connections et le tour est joué, sauf que lorsque je passe à la programmation; là, un vrai calvaire m’attend toujours, et ça me gonfle enfin !
Aujourd’hui dans cet article/tuto, je vais vous présenter ESP Easy, un firmware pour faire des objets connectés, sans aucune ligne de code. Le principe, est d’injecter sur les microcontrôleurs à base d’ESP8266, un sketch embarquant un mini serveur web, sur lequel on va configurer nos capteurs, et créer de petits scripts ou ‘scénarios’ si vous voulez.
Si vous ne connaissez pas encore ESP8266, je vous dis en bref que c’est un microcontrôleur tout comme Arduino mais avec une connexion Wifi, il peut être programmé en C++ avec l’IDE ARDUINO, ainsi qu’en Python et Javascript, et Il existe sous différente variantes comme le WEMOS D1, et NODEMCU.
ESP Easy est un firmware idéal pour les débutants, il permet de réaliser en quelques minutes, de petits projets domotique, que ça soit des objets connectés, ou même un mini serveur domotique autonome.
Les objets réalisés peuvent communiquer en HTTP ou MQTT avec la plupart des serveurs domotique comme JEEDOM DOMOTICZ OPENHAB…etc, comme ils peuvent parler entre eux et échanger des informations et commandes.
Les modules ESP8266 supportés
ESP Easy peut être installé sur presque tous les composants dotés de la puce ESP8266, je cite ici ceux qui disposent d’une liaison USB, ce qui rend l’utilisation plus facile :
Wemos D1 mini
voir sur : Amazon Aliexpress
Wemos D1 mini pro
voir sur : Amazon Aliexpress
NodeMcu V2 ou V3
voir sur : Amazon Aliexpress
Plusieurs capteurs et actionneurs sont pris en charge, par ESP Easy (température, luminosité, mesure de courant, relai…etc.), Pour la liste complète cliquez ici
Parmi ceux que j’ai testé il y a :
–DHT11 (température) : voir sur Amazon Aliexpress
–Relai : voir sur Amazon 1ch Amazon 4ch Aliexpress
–Ecran Oled : voir sur Amazon Aliexpress
–Mouvement : voir sur Amazon Aliexpress
Flasher ESP Easy sur ESP8266
Le site d’ESP Easy nous propose une version stable du firmware (R120) et des versions en cours de développement (Mega), je vous invite d’utiliser la version v2.0 que j’ai déjà testé, et qui va bientôt devenir stable. Pour flasher le firmware, on va utiliser un outil développé par l’équipe ESP Easy mais qui est disponible seulement pour Windows, pour les autres OS on peut passer par l’IDE Arduino (tuto anglais)
Nous allons tout d’abord préparer l’ordinateur à recevoir le module ESP8266, en installant les drivers qui conviennent. Pour les Wemos D1 et NODEMCU, il existe deux type de drivers CH340 et CP2102 à identifier, selon le composant qui se trouve tout près du micro USB :
télécharger et installer le driver CH340 ou CP2102.
Ensuite, pour télécharger la version v2.0 cliquez ici, cherchez une version v2.0, et cliquez sur le zip :
Dé-zippéz l’archive et cliquez sur « FlashESP8266 »
Dans la fenêtre qui s’ouvre :
COM-port : le port où est branché notre modules ESP8266. Il est détecté automatiquement, sinon rendez-vous sur le gestionnaire de périphériques.
Firmware : on trouvera plusieurs versions du firmware selon la quantité de mémoire dont dispose le module, pour les Wemos D1 mini et NodeMcu ils disposent de 4Méga, on choisit donc la version ‘normal’ ‘4096’
Enfin, en clique sur ‘flash’
Flash terminé, redémarrez le module par le bouton ou en retirant et réinsérant le câble USB, on aura l’apparition d’un nouveau SSID wifi ‘ESP_EASY_0’ on s’y connecte en indiquant le mot de passe ‘configesp’
attendez quelques secondes, le navigateur s’ouvre automatiquement et vous dirige sur une page, (si rien ne se passe, tapez 192.168.4.1 dans votre navigateur)
Connectez le module à votre wifi, et attendre le compte à rebours jusqu’à l’apparition de l’adresse ip attribuée par votre routeur. Cliquez ensuite sur ‘proceed to main config’
Explication du Firmware ESP EASY
Nous voilà avec un module ESP8266 embarquant un mini serveur web, si vous avez loupé l’adresse IP de votre module pendant la configuration du wifi, cherchez-la sur votre routeur, tapez-la dans le navigateur, et vous tombez sur une page à 8 onglets :
Onglet ‘Main’
Contient un résumé d’infos
Unit : le numéro du module, quand on a plusieurs modules ESP EASY sur le réseau, il faut les différencier par des numéros, on verra que c’est nécessaire pour une communication MQTT et UDP
Local time : l’heure locale, apparait après ajout du serveur NTP.
Load : la charge système.
IP : l’adresse IP du module sur le réseau local.
GIT version : la version de firmware installé.
Uptime : le temps de fonctionnement depuis le dernier démarrage (en minutes)
Free Mem : la quantité de mémoire disponible
Wifi RSSI : l’intensité du signal wifi.
Node list : ici vous aurez apparaître les autres modules ESP Easy présents sur votre réseau.
Onglet ‘Config’
Unit Name : le nom de votre module ESP EASY, par exemple ‘ESP01’ ou ‘Température_ salon’
Unit Number : numéro à attribuer pour différencier les modules sur le réseau.
Admin Password : mot de passe pour protéger l’accès à la configuration du module.
Wifi Settings
SSID : le wifi principal.
WPA Key : la clé du wifi principal.
Fallback SSID : vous pouvez ajouter un wifi alternatif en cas d’échec de connexion au SSID principal.
Fallback WPA Key : clé du wifi alternatif.
WPA AP Mode key : pour changer le mot de passe par défaut (configesp) de la connexion au point d’accès ‘ESP_EASY’
IP settings
ESP IP : pour donner une IP fixe au module.
ESP GW : IP de votre routeur. Exemple ‘192.168.1.1’
ESP Subnet : masque du réseau, ‘255.255.255.0’
ESP DNS : mettre le Google DNS par exemple 8.8.8.8
Sleep Mode
Le sleep mode est utilisé en cas d’utilisation sur batterie, le module entre en sommeil pour x minutes, se réveille pour relever des valeurs, faire des tâches ou envoyer des informations.
Sleep awake time : Laisser à 0 pour désactiver le sleep mode, ou mettre le nombre de minutes de réveil voulue (je vous recommande de bien lire la documentation sur le sleep mode avant de l’utiliser)
Sleep Delay : le temps de sommeil.
Sleep on connection failure : si cochée, le module entre en someil en cas d’échec de connexion au wifi.
Onglet ‘Controllers’
En cliquant Edit vous aurez à renseigner des informations concernant le contrôleur domotique. ESP Easy permet de communiquer en http et MQTT avec plusieurs logiciel domotique comme Domoticz, Jeedom, Openhab…etc, Il suffit de choisir le protocole souhaité, l’adresse IP et le port.
Onglet ‘Hardware’
GPIO Led : pour suivre l’état du module par le clignotement d’une led. Choisir GPIO 2 avec ‘inversed Led’ cochée pour utiliser la petite led bleu du module.
GPIO SDA et GPIO SDL : pin DATA et CLOCK utilisés par les modules à communication I2C (écran Oled par exemple).
GPIO boot state : pour déterminer un état par défaut (défault, high, low) pour chaque pin.
Onglet ‘Devices’
En cliquant Edit, on pourra ajouter un module supporté par le firmware, renseigner le pin où est connecté, le temps pour chaque relevé, et autres réglages. on verra un exemple concret dans un prochain tutoriel.
Onglet ‘Notifications’
Avec ESP Easy il est possible d’envoyer une notification par email ou faire bipper un buzzer, dans cette onglet on pourra configurer l’email et le pin où est branché le buzzer.
Onglet ‘Tools’
Sur cet onglet on trouve plusieurs outils et réglages avancées, comme on peut envoyer ou tester des commandes.
Ecrire par exemple ‘gpio 15 1’ et cliquer ‘submit’ pour allumer une led branché sur le pin 15 (D8)
System
Reboot : pour redémarrer le module à distance sans avoir à le faire manuellement.
Log : pour lire le journal (log) en temps réel.
Info : informations détaillés sur le module.
Advanced : pour ouvrir les paramètres avancés, j’en parlerais plus bas en détails.
Show JSON : pour voir un aperçu JSON des variables qu’on a, ça permet de faire des requêtes pour récupérer certaines infos.
Pin state buffer : pour voir le statut d’un pin utilisé, ainsi que le plugin qui l’utilise.
Wifi
Connect : se connecter au wifi configuré.
Disconnect : se déconnecter du wifi configuré.
Scan : scaner les réseaux wifi disponible.
Interfaces
I2C : on clique dessus pour scanner les modules I2C branchés à notre module ESP EASY (un écran Oled par exemple).
Settings
Load : permet d’uploader un fichier de configuration qu’on a déjà sauvegarder.
Save : permet de sauvegarder un fichier config.txt contenant toute la configuration du module sauf les identifiants WIFI, utile pour faire une sauvegarde ou partager ce fichier avec quelqu’un.
Factory reset : restaurer le firmware à son état initial.
Firmware
Load : pour mettre à jour ou installer une version du firmware ESP Easy par wifi (OTA).
Filesystem
Flash : permet de voir les fichiers existants dans la mémoire interne.
Paramètres Avancés
Quand on clique sur Advanced sur l’onglet Tools on se retrouve avec une page pleine de paramètres importantes :
Rules : en cochant cette case et en cliquant sur ‘submit’ on aura l’apparition d’un nouvel onglet contenant un éditeur de texte (de code). Avec une syntaxe simplifiée on peut exécuter des tâches suivant le déclenchement d’un événement, permettant ainsi de construire un petit serveur domotique autonome.
Controller settings
MQTT Retain Msg: pour informer le broker de retenir le message publié pendant un certain délai.
Message Delay : le délai de conservation du message par le broker.
NTP settings
Use NTP : à cocher pour activer la gestion du temps par le serveur NTP.
NTP hostname : l’adresse du serveur NTP.
DST settings (Daylight Saving Time)
Permet le réglage d’heure d’été.
Start : le jour du commencement d’heure d’été et l’heure du changement.
End : le jour de fin d’heure d’été et l’heure du changement.
Timezone Offset : décalage de l’heure (ex 60min pour +1h)
DST : à cocher pour activer l’heure d’été.
Log Settings :
Syslog IP : l’adresse IP de Syslog (gestion de log)
Syslog Level : le niveau de log Syslog.
Serial log Level : le niveau de log en port serial.
Web log Level : le niveau de log sur la page web ESP Easy.
Serial settings
Enable Serial port : activer la sortie de messages par serial port.
Baude Rate : baude rate du port serial.
Inter.ESPEasy Network
UDP port : le port UDP permettant la communication entre les modules ESP Easy.
Special and Experimental Settings
Là, aucune idée 🙂 mais je vous dis que se sont des réglages spéciaux et expérimentaux qui vont peut-être disparaître sur la version stable 😉
Mon tuto touche à sa fin, mais ce n’est que le début d’une longue série de tutoriels ESP Easy. J’espère que j’ai apporté une bonne nouvelle pour ceux qui veulent faire de la domotique pas chère sans avoir à coder, et pour ceux qui connaissent déjà ESP Facile 🙂 j’espère que j’ai bien expliqué la nouvelle version du firmware. je vous donne rendez-vous très prochainement pour faire un capteur de température et humidité avec affichage Oled.
N’oubliez pas de suivre OpenDomoTech sur les réseaux sociaux et à bientôt !
Super article. Je me suis acheté un petit kit pour m’amuser un peu, et puis le faire communiquer en MQTT avec du KNX. 2 choses bizarres quand même, impossible de faire connecter le module à mon wifi. Et quand je le branche en USB sur le Mac, plantage direct de la machine qui re-démarre. Je vais chercher voir d’où ça pourrait venir.
Bonjour Cristophe et bienvenue 🙂 avez-vous installer les drivers pour Mac ? le module est flashé sous Windows ? je recommande que vous essayez avec Windows, une fois flashé et connecté au Wifi, vous pouvez continuer toute la config sur Mac.
Super tuto, j’ai une question, au sujet du sleep mode, j’ai raccordé gpio 16 et rst, j’ai testé en mettant 60 et 60 dans les deux pour un temps de sommeil et réveil de 60 sec chacun, et il se réveille bien au bout de 60 sec mais je vois à peine la led bleu clignoté et plus rien, mes valeurs de température ne sont pas envoyés à jeedom. J’aurais oublié quelque chose ?
essaye de sortir du sleep mode manuellement, tu met le jumper sur le ground au lieu du RST, redémarre ton esp8266 en retirant carrément l’alimentation. ensuite tu met 60 sur ‘sleep delay’ et 15 sur ‘awake time’ (60 c déja bcp et peut etre que ça met un bug dans le pgme) sauvegarde. retire l’alimentation, et rebranche le jumper sur RST, et regarde ce que ça donne. sinon il faut etre déja sûr que ça remonte les info à jeedom sans sleep mode
Bonsoir
j’ai flashé l’ESP8266-01 pas de problème
Mais je ne voit pas le réseau wifi ESP_0
pouvez vous m’aider
cordialement
Pierre
bonjour Pierre. ça arrive quand on flashe la mauvaise version version du firmware, essaye de flasher la version DOUT, ou essaye la méthode d’espressif décrite dans mon tuto https://opendomotech.com/flasher-un-sonoff-avec-esp-easy/
Bonsoir Zakaria
merci pour cette réponse rapide
j’ai réussi à voir dans mes réseaux Wifi ESP_0
j’ai paramétré l’onglet Main puis l’onglet Config
puis plus rien ESP_0 à disparu de mes réseaux Wifi
Pourquoi ?
Cordialement
Pierre
si l’ESP est connectée sur ton wifi, c’est normal que le point d’accés ESP_0 disparaisse, est ce que tu as entré tes identifiants wifi?
Bonjour
je me suis connecté sur ESP_0
il m’a affecté une adresse ip 192.168.0.108 conformément à mon DHCP
je me suis connecté au 192.168.0.108 ce qui m’a permis de commencé la configuration
dans la page Config j’ai attribué une adresse fixe 192.168.0.60
A partir de la, plus d’accès au 192.168.0.108 et mème au 192.168.0.108
Quelle erreur de manipulation je fais ?
Cordialement
Pierre
c’est normal plus d’accès à l’ancienne ip, tu tape maintenant l’ip fixe que tu viens de configurer: 192.168.0.60
Bonsoir
merci pour votre aide
Au lieu d’avoir ESP_0 j’avais ESP_9A4FED (fin de l’adresse MAC)
j’ai réussi à changer l’adresse 192.168.0.108 en 192.168.0.60
je peux me connecter au 192.168.0.60 pour la config il me demande un mot de passe que j’ai saisi dans la config
Tout fonctionne
je vais essayé de l’utiliser avec un ds18b20 et jeedom
excusez moi pour certaines fautes d’orthographe
cordialement
Pierre
Bonjour
j’ai beaucoup avancé dans mon projet
j’utilise des ESP8266-01 que je flash avec ESP EASY FLASHER avec des DHT22 et JEEDOM
je n’ai pas eu de problème avec 2 ESP8266-01, lorsque je flahes il me propose comme réseau ESP_0
La configuration se passe sans problème en me connectant avec firefox à l’adresse 192.168.4.1/config
pour les 2 autres ESP8266-01, je procède de la mème façon, après le flash l me propose comme réseau ESP_4BF217 qui est la fin de l’adresse mac de mon ESP en mode Ouvert. si je me connecte, il me met Limite,ouvert et impossible de faire la config
pouvez vous m’aider ?
Cordialement
Pierre Chevalier
Salut Pierre, je n’ai jamais utilisé cet outil, si tu parle de ça https://www.letscontrolit.com/forum/viewtopic.php?t=3934 j’ai jeté un coup d’œil il parait intéressant, vu que tu peux renseigner ta config avant le flash. donc je te recommande de refaire le flash en renseignant ton wifi et son mdp et en fixant une adresse ip (en s’assurant qu’elle est libre sur ton routeur) comme ça tu n’aura pas à se connecter à 192.168.4.1 , tu te connecte directement sur l’adresse ip que tu as renseigné. si ça marche pas tu coches FORCE-DOUT. bonne chance
Bonsoir
merci pour votre réponse rapide
j’essaye toutes les solutions et j’obtiens un message d’erreur
Error Unit do not have an IP
pouvez vous m’aider ?
je voudrais joindre les paramètres et les sorties mais je ne peux pas envoyer le fichier avec les imp écran
Cordialement
Pierre Chevalier