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 !

angry_worker

 

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

WEMOS D1 MINI

voir sur :   Amazon    Aliexpress

Wemos D1 mini pro

WEMOS D1 MINI pro

voir sur :   Amazon    Aliexpress

NodeMcu V2 ou V3

nodemcu v2

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 :

ch340-cp2102

 

télécharger et installer le driver CH340 ou CP2102.

 

ch340

 

Ensuite, pour télécharger la version v2.0 cliquez ici, cherchez une version v2.0, et cliquez sur le zip :

 

esp easy

 

Dé-zippéz l’archive et cliquez sur « FlashESP8266 »

 

esp-easy-flash

 

Dans la fenêtre qui s’ouvre :

 

esp-easy-flashtool

 

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.

 

com_port

 

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-esp-easy

 

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’

 

point_d'acces

 

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’

 

esp-easy-wifi

 

espconfig0

 

configesp1

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

configesp2

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’

configesp3

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’

configesp5

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’

configesp6

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.

configesp8

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.

configesp9

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)

configesp10

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 :

configesp11

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 !