ESP Easy: firmware ESP8266 pour créer des objets connectés et domotique sans programmation

 

ESP Easy est un firmware Open Source qui permet de programmer les modules ESP8266 sans aucune ligne de code (page officielle du projet). ESP Easy à beaucoup évolué depuis la version 78 utilisée dans l’article précédent qui expliquait comment réaliser un objet connecté avec un ESP8266 et le connecter à Jeedom. ESPEasy peut s’installer directement depuis l’IDE Arduino à partir du code source ou à l’aide d’un petit programme (uniquement disponible sous Windows). ESP Easy embarque un mini serveur web qui permet de configurer le module à distance depuis un navigateur internet. De très nombreux capteurs sont pris en charge par le firmware ESP Easy : DS18B20/DHT11/DHT22 (température et humidité), TCR5000 (compteur de pulsation), BMP085/BMP280/BME280 (baromètre numérique) BH1750 (luminosité), Wiegand/PN532 (RFID), HC-SR05 (distance), IR, ADS1115 (4 entrées analogiques 16 bits I2C), INA219 (mesure de courant)… ainsi que des actionneurs (relais, led, servo, PWM…). ESP Easy intégré également (depuis la version R120) un éditeur de script qui permet de créer de petits scénarios, transformant l’ESP8266 en mini serveur domotique indépendant !

Pour cet article, j’ai utilisé la version R120 du firmware ainsi qu’une Wemos D1 Mini (article de présentation).

Installation du firmware ESPEasy sur un module ESP8266

Vous pouvez récupérer la dernière version stable du firmware sur cette page. La section Download se trouve en bas de page.

 espeasy page telechargement firmware

Une fois décompressé, le répertoire contient les éléments suivants :

  • 3 fichiers binaires en fonction de la taille de la mémoire flash du module de destination (512,1024 ou 4096 Ko)
  • flash.exe, le programme d’installation du firmware
  • Les sources du projet permettant l’installation depuis l’IDE Arduino et découvrir comment fonctionne ESP Easy

liste fichiers est easy

En fonction du module ESP8266 sur lequel vous allez installer ESP Easy, voici la taille de la mémoire disponible

512Ko esp8266 esp-01 module Wifi ESP-01 (bleu)

ESP-201

ESP-12

1024Ko esp8266 esp-01 black noir 1Mo flash ESP-01 (noir)
4096Ko esp8266 Wemos D1 mini ESP-12E qui équipent les cartes NodeMCU ou Wemos D1 Mini par exemple

Quelques cartes de développement ESP8266 compatibles

Sélection de cartes ESP8266 NodeMCU compatibles

Installation du firmware à l’aide du programme flash.exe

Un fois que vous avez récupéré le port COM sur lequel est branché l’ESP8266, la taille de la mémoire, lancez flash.exe

Répondez aux trois questions :

  • Comport : le port com
  • Flash size : la taille de la mémoire flash de l’ESP utilisé
  • Build : indiquez le numéro de la version du firmware. Ici 120

espeasy flashtool paramètres

Validez pour lancer l’installation.

espeasy installation firmware terminee

Premier démarrage d’ESP Easy : configuration WiFi

Après l’installation, le module ESP8266 reboot. ESP Easy embarque un serveur web qui permet d’accéder à l’interface de configuration du module. Au premier démarrage, vous trouverez l’ESP sur votre réseau Wi-Fi. Ouvrez le gestionnaire de connexion Wi-Fi et sélectionnez le réseau ESP_0.

espeasy esp_0

Remarque. Sur certains systèmes (Linux notamment), le mot de passe par défaut configesp peut vous être demandé lorsqu’on se connecte sur ESP_0.

Dans un navigateur internet, ouvrez l’adresse http://192.168.4.1/setup. Sur macOS, la fenêtre de connexion s’ouvre automatiquement après quelques secondes. Choisissez le réseau WiFi auquel l’ESP doit se connecter et indiquez le mot de passe.

espeasy configuration wifi

Appuyez ensuite sur Connect.

espeasy connexion module au reseau

Une fois connecté, l’adresse ip du module est affichée (quelques secondes !). Si vous avez loupé l’adresse, allez sur votre box internet ou routeur pour la retrouver.

espeasy adresse ip esp8266

Découverte de l’interface ESP Easy

L’ESP8266 est prêt à être utilisé. Découvrons maintenant comment ça fonctionne. Dans un navigateur internet, saisissez l’adresse ip de l’ES. L’interface Web d’ESP Easy est constituée de 4 onglets (+ 1 que nous verrons plus tard). Tout n’est pas documenté sur le Wiki du projet mais voici l’essentiel. Un grand nombre de réglages sont réservés à des applications avancées et peut être prévus pour des fonctions à venir (noeuds par exemple).

Page Main : résumé système

  • Load : la charge CPU
  • Uptime : temps en minutes de fonctionnement depuis la mise sous tension
  • WiFI RSSI : qualité de réception du réseau WiFi en dB
  • IP : adresse ip du module
  • GW : adresse ip de la box internet ou du routeur
  • Build : version du firmware
  • Unit : numéro du noeud (de 1 à 31). Attribué dans la page config.
  • STA/AP MAC : Adresses MAC
  • ID : identifiants du chip ESP et de la mémoire flash
  • Flash Size : taille de la mémoire flash
  • Boot cause : Cold boot (démarrage à froid) ou Manual reboot (après un appui sur le bouton reset)

espeasy main page

Noeuds ESP Easy

Pour voir les autres modules ESP sur votre réseau il faut faire plusieurs réglages :

  • Attribuer un Unit nr (entre 1 et 31) pour chaque module
  • Attribuer un port UDP dans la page Tools / Advances / UDP Port

espeasy node list

Page Config : configuration du module

Cette page permet de configurer les paramètres généraux du module :

  • Name : permet de nommer l’ESP. Le nom sera affiché dans la fenêtre du navigateur. Pratique lorsqu’on possède plusieurs objets à base d’ESP Easy
  • Admin Password : permet de protéger l’accès à l’ESP. Il est pris en compte après un reboot (reset) de l’ESP8266.
  • SSID/WPA Key : Identifiant et mot de passe d’accès au réseau WiFi.
  • WPA AP Mode Key : mot de passe pour se connecter depuis un smarphone ou tablette (configesp par défaut)
  • Unit nr : numéro du module ESP entre 1 et 31. Important si vous avez plusieurs modules et que vous utilisez le protocole MQTT.
  • Protocol et champs Controller : choix du protocole de communication (voir plus bas) et paramètres de ce protocole. Si vous ne souhaitez pas communiquer avec un serveur domotique ou distant, choisissez Standalone.
  • Sensor Delay : par défaut 60 secondes. Délai entre 2 mesures (et donc d’envoi au serveur).
  • Sleep Mode : active la mise en sommeil du module ESP8266. Conseillé si votre objet est alimenté sur batterie. On dispose de 30 secondes au démarrage pour accéder à l’interface Web et le désactiver si nécessaire. Pour certains modules il faut souder la broche 16 au Reset.

espeasy main settings

On peut attribuer une adresse ip fixe à l’ESP8266

  • IP : l’adresse ip désirée
  • GW : l’adresse ip du routeur ou de la box internet
  • Subnet  masque de sous réseau
  • DNS : adresse ip du serveur DNS (l’ip de votre routeur en général)

espeasy adresse ip fixe module

Page Hardware Settings

Cette page permet de configurer les GPIO du module et d’attribuer un comportement par défaut pour chaque entrées/sorties :

  • WiFi Status Led : fait clignoter une Led pour suivre l’activité WiFi
  • SDA et SDL : GPIO réservés pour les modules I2C
  • GPIO boot states : permet d’attribuer un état par défaut à chaque GPIO (default, input, Output HIGH, Output LOW)

espeasy hardware settings

Page Tools : réglages avancés et outils

Avant de tester ESP Esay sur un cas concret, passons à la page Tools pour découvrir ce qu’elle nous réserve :

System

  • Reboot : permet de redémarrer le module ESP8266. Pratique pour la maintenance, cela évite de se déplacer pour appuyer sur le bouton reset du module.
  • Log : un journal des événements. On va voir comment modifier le niveau de détail du journal un peu plus loin.

Page Advanced

Cette page contient des réglages avancés mais certains sont très utiles comme vous avez voir :

  • Subscribe/Publish Template : masque pour souscrire/publier sur un broker MQTT. Ce champ est rempli automatiquement lorsque le protocole MQTT est sélectionné
  • Message Delay : fréquence de publication des messages. Par défaut 1000ms (1 seconde). Si vous publiez sur ThingSpeak, augmentez le délai à 15000.
  • Use NTP : permet de récupérer l’heure sur internet
  • NTP Hostname : pour indiquer un serveur de temps. Par défaut c’est pool.ntp.org
  • Timezone Offset : décalage de temps. Pour la France, indiquez 120 (on ajoute 2h)
  • Daylight Saving Time : Mode heure d’été. Pris en compte si NTP est activé
  • Syslog IP : indiquez l’adresse ip d’un serveur syslog
  • Syslog level : niveau de détail des messages syslog
  • UDP port : port de communication entre les ESP. 514 est réservé pour syslog
  • Enable Serial port : active ou désactive la sortie des messages sur le port série
  • Serial log Level : niveau de détail des messages sur le port série
  • Web log Level : idem pour ole journal de l’interface web (bouton Log dans Tools)
    • 0 : aucun log
    • 1 : uniquement les erreurs
    • 2 : erreur + info
    • 3 : erreur + info + debug
    • 4 : erreur + info + debug détaillé
  • Baud Rate : baud rate du port série
  • WD I2C Address : adresse I2C du watchdog
  • Custom CSS : permet de personnaliser la présentation de l’interface Web. Le fichier doit s’appeler esp.css et ne pas dépasser 4 ko. Pour le télécharger, il faut aller dans Tools / Settings / Load
  • Connection Failure Threshold : non documentée mais doit être le nombre d’échec de connexion au réseau WiFi afin d’éviter de vider la batterie. A confirmer.
  • Rules : active l’affichage et l’execution des règles.

espeasy advanced tool page

Wifi

  • Connect : permet de se connecter au réseau WiFi configuré
  • Disconnect : déconnecte le module de réseau jusqu’au prochain reset/démarrage
  • Scan : scan le réseau Wifi

Interfaces

Très pratique, un scanner d’interface I2C qui liste tous les modules reliés à l’ESP. Par exemple ici, un baromètre numérique BMP180.

espeasy i2c scanner

Settings

Permet de sauvegarder la configuration. Le fichier config.txt est télécharger sur votre ordinateur.

Permet de charger une configuration. Deux fichiers sont reconnus :

  • config.txt qui contient tous les paramètres du modules à l’exception des données de sécurité (Clé WPA, mot de passe). Vous pouvez échanger ce fichier sans risque. C’est utile pour faire une sauvegarde ou cloner votre projet.
  • esp.css : permet de personnaliser l’affichage de l’interface Le fichier ne doit pas dépasser 4ko.

Firmware

Permet d’installer sans fil un nouveau firmware. C’est le fichier bin qui se trouve dans le répertoire du firmware. On peut également fabriquer son propre firmware à partir du code source depuis l’IDE Arduino (instructions en anglais ici).

Command

ESP Easy met à notre disposition 35 commandes qui permettent de faire des tests, des opérations de maintenance, etc, directement depuis l’interface WEB. La liste complète des commandes est disponible ici en anglais. On peut même envoyer une commande depuis un ESP vers un autre ESP. Par exemple commander un relai branché sur le GPIO 5. Dans le champ command, saisissez

espeasy advanced tools send command

Sur le second ESP, le relai s’active et le log retrace l’historique des ordres.

espeasy log second esp reception message

Pour désactiver le relai, envoyez

Pour en savoir plus sur le système de règles, lisez ce tutoriel.

Protocoles domotiques supportés

ESP Easy prend en charge plusieurs protocoles domotiques, ce qui vous permettre d’intégrer très facilement de petits objets connectés DIY à votre logiciel préféré ou service en ligne.

Logiciels domotiques supportés nativement

Si vous optez pour MQTT, il est important d’attribuer un numéro (Unit nr) à chaque ESP. De cette façon les messages (commandes) seront correctement envoyés au noeud destinataire.

Domoticz : HTTP ou MQTT

Les protocoles HTTP et MQTT sont supportés. Pour le protocole HTTP, il suffit d’indiquer l’adresse ip du serveur Domoticz et le port (par défaut 8080). Il est possible d’envoyer et recevoir des commandes avec le protocole HTTP.

easy-config-domoticz-http

MQTT ne peut qu’envoyer des données vers Domoticz pour le moment.

easy-config-domoticz-mqtt

OpenHAB : MQTT

OpenHAB n’a pas de broker MQTT installé par défaut. Vous pouvez suivre cet article qui explique comment faire en détail. C’est le protocole le mieux adapté si vous voulez communiquer avec Node-RED par exemple (un exemple d’application).

easy-config-openhab-mqtt

PiDome : MQTT

PiDome est encore un projet très jeune. Il peut encore y avoir des dysfonctionnements.

easy-config-pidome-mqttServices en ligne : EmonCMS, ThingSpeak

Les services en ligne EmonCMS (suivi de consommation énergétique) et ThingSpeaks (acquisition de données pour objets connectés) sont nativement supportés par ES Easy. Vous devez posséder une clé (API-KEY) après inscription gratuite au service. Attention à limiter le délai d’envoi des messages à 15000 (Tools / Advanced) pour ThingSpeak.

easy-config-thingspeak

HTTP Générique et UDP Générique

Si votre logiciel ou service en ligne préféré n’est pas dans la liste, ces deux protocoles permettent de communiquer de façon générique en HTTP ou UDP. Le protocole HTTP Generic est toutefois limité à l’envoi de données (le protocole ne fonctionne pas en réception) pour les types suivants uniquement SENSOR_TYPE_DIMMER, SENSOR_TYPE_LONG, SENSOR_TYPE_DUAL, SENSOR_TYPE_TRIPLE. L’emploi de ce protocole est par conséquent encore très limité. Je vous conseille plutôt de vous rabattre sur MQTT.

C’est le protocole que vous pourrez utiliser pour communiquer avec Jeedom. Lisez cet article qui explique comment créer un affichage déporté à l’aide d’un écran OLED pour afficher la prévision météo par exemple.

jeedom affichage oled ssd1306 esp easy meteo

Les autres logiciels domotiques

Ce n’est pas parce qu’il ne sont pas dans la liste (Jeedom, Home Assistant…) que l’on ne peut pas communiquer avec ESP Easy. Vous pouvez par exemple partir sur une base Domoticz MQTT et personnaliser les topics MQTT dans la page Tools / Advanced.

Par exemple pour Home Assistant, j’ai trouvé cet configuration sur le forum du projet.

Configurer un Device

Maintenant que vous connaissez une grande partie des fonctionnalités d’ESP Easy, nous allons pouvoir configurer un device. Allez sur la page Device. Il est possible de configurer jusqu’à 12 devices. Ils sont regroupés par 4. On passe d’une page à l’autre à l’aide des flèches bleues.

esp-easy-change-page-device

Si vous trouvez que 12 devices ce n’est pas assez, vous pouvez optez pour des capteurs ou actionneurs au standard I2C.

Pour ce tutoriel, nous allons récupérer la mesure de température et de pression atmosphérique renvoyée par un BMP180. Le BMP180 communique avec l’ESP8266 via le protocole I2C. Par défaut, la broche SDA doit être reliée au GPIO-4 (D6 sur la Wemos D1 Mini) et la broche SCL au GPIO-5 (D7 sur la Wemos). Allez dans Tools puis scanner le bus I2C pour trouver l’adresse du capteur. Dans mon cas il se trouve à l’adresse 0x77.

espeasy i2c scanner

Cliquez sur Edit dans la première case.

Dans la liste des Device, choisissez Temperature & Pressure – BMP085. Il y a (presque) toujours une aide en ligne pour le matériel sélectionné. Ensuite :

  • Donnez un nom. Un nom sans espace de préférence (sera nécessaire dans les Rules)
  • Un délai de relevé de mesure. Attention, plus il sera faible plus la consommation sera importante. Pensez à votre batterie.
  • IDX / Var : c’est l’identifiant du dispositif Domoticz. Même si vous n’utilisez pas Domoticz, attribuez un numéro sinon rien ne fonctionnera.
  • Send Data : active ou désactive l’envoi des données
  • Donnez un nom aux values. Un nom court sans espace (sera nécessaire dans les Rules).
  • Cliquez sur Submit pour enregistrer la configuration
Le BMP180 est le remplaçant du BMP085. Son fonctionnement est identique.

esp-easy-configuration-bmp085-bmp180

Il est possible de réaliser des calculs (Formula) sommaires (par exemple une conversion d’unité) pour chaque valeur retournée par le capteur. La variable contenant la valeur à manipuler doit être encadrée par %. Attention toutefois, on est limité aux opérateurs simples (+ ; – ; / ; – ) et il n’est pas possible de récupérer la valeur d’un champ pour l’utiliser dans un autre.

Retournez sur la page des Devices (Close). Vous devriez avoir vos premières mesures. Actualisez la page si ce n’est pas le cas. Si rien ne s’affiche, vérifiez que l’IDX est différent de 0.

espeasy liste device bmp180

Voilà, créer un baromètre numérique et envoyer les mesures en ligne ou sur un serveur domotique, c’est aussi simple que ça !

Matériels pris en charge par ESPEasy

Dans la version R120, ESPEasy prend en charge les matériels suivants.

Attention. Caractéristiques techniques indicatives. Vérifier les caractéristiques de votre matériel avant utilisation.

Capteurs, entrées analogiques ou numériques

tcr5000 Compteur de pulsation

  • TCR5000
dallas-ds18b20 Température

  • Dallas DS18B20 : existe en version étanche de -55°C à +125°C
  • MLX90614 : mesure de température par infrarouge sans contact de -40 à +125°C
BMP180 Baromètre numérique

  • BMP085/BMP180  : pression atmosphérique de 300 à 1100hPa
  • BMP280 : température de -40 à + 85°C, pression atmosphérique de 300 à 1100 hPa
  • BME280 : température de -40 à + 85°C, humidité de 0 à 100%, pression atmosphérique de 300 à 1100 hPa
  • MS5611
bh1750 Intensité luminueuse

  • BH1750 : de 0-65535 lux, convertisseur 16 bits.
  • TSL2561 : de 188 μLux jusqu’à 88000 lux
Broches DHT22 Humidité

 pn532 RFID

hc-sr04 Distance / proximité

bouton-poussoir Micro-interrupteurs (push button)
 esp8266 Wemos D1 mini Entrée analogique de l’ESP8266
ads1115 Carte analogique externe

  • PCF8591 : 4 entrées analogiques 8 bits, I2C
  • ADS1115 : 4 entrées, I2C
mcp23017 Entrées digitales supplémentaires

ir keyes ky-022 Récepteur Infra rouge
gp2y10 Poussières

  • GP2Y10 : particules de taille supérieure à 0,8µm. 0.5V pour 0.1mg/m3.
ina219 Tension et Intensité du courant

Respectez les caractéristiques de votre capteur avant tout branchement. Vous êtes responsable de toute détérioration de votre matériel. Attention, manipuler du courant électrique est dangereux pour votre santé. Ne faites aucun branchement si vous n’avez pas les compétences
  • INA219 : I2C, 0 à 26V, 3.2A max.

Actionneurs, écrans

Sorties numériques ESP8266 : Led, servo, relais
mcp23017 Sorties numériques supplémentaires

pca9685 PWM

  • PCA9685 : I2C, 16 canaux 12 bits
oled ssd1306 ecran i2c Ecrans

Promos sur les capteurs et actionneurs compatibles ESP Easy

-5% Intelligent Électronique broches Flamme Capteur De Détection D'incendie Module D'allumage Source Détecte...
0,37 0,39
Voir l'offre
AliExpress
-15% 10 pcs Tactile Push Button Switch Tact Commutateur pour Arduino 4 P...
0,39 0,46
Voir l'offre
AliExpress
Ultrasons Module HC-SR04 de Mesure De Distance Capteur Capteur
0,85
Voir l'offre
AliExpress
1 PCS GY-302 BH1750 BH1750FVI intensité de la lumière éclairage module 3...
0,90
Voir l'offre
AliExpress
Nouveau 1 PCS Importé DALLAS DS18B20 18B20 18S20 TO-92 IC PUCE Thermomètre...
0,93
Voir l'offre
AliExpress
-4% 1B1 Nouvelle Température et Humidité Relative Capteur DHT11 Module avec Câble
0,98 1,03
Voir l'offre
AliExpress
Luminosité Capteur GY-2561 TSL2561 Module D'éclairage
1,28
Voir l'offre
AliExpress
1 PCS TENSTAR ROBOT GY-68 BMP180 Remplacer BMP085 Barométrique Numérique Capteur de...
1,29
Voir l'offre
AliExpress
-5% 1 Pcs Paquet En Acier Inoxydable DS18b20 Étanche DS18b20 Sonde de Température...
1,31 1,38
Voir l'offre
AliExpress
C302 Livraison gratuite Zéro dérive CJMCU-219 INA219 I2C interface Bi-directionnel courant/puissance surveillance...
1,58
Voir l'offre
AliExpress
5 PCS PCF8574P PCF8574 DIP16 DIP nouveau et original IC livraison gratuite
1,58
Voir l'offre
AliExpress
-5% Nouvelle Interface Série Module IIC I2C MCP23017 SPI MCP23S17 Bidirectionnel 16-Bit I/O...
1,69 1,78
Voir l'offre
AliExpress
-4% PCA9685 16 Canal 12 bits PWM Servo Pilote I2C Interface pour Raspberry...
1,78 1,87
Voir l'offre
AliExpress
-17% PCF8591 Module AD/DA Converter Analog Adapter
2,10 2,55
TENSTAR ROBOT DHT22 Température Numérique et Capteur D'humidité AM2302 Module + PCB...
2,58
Voir l'offre
AliExpress
-7% Industrielle De Haute Précision Si7021 Capteur D'humidité avec Interface I2C
2,68 2,91
Voir l'offre
AliExpress
-4% BME280 Capteur Numérique Température Humidité Capteur de Pression Barométrique Module I2C SPI...
3,06 3,22
Voir l'offre
AliExpress
-17% Micro SD TF Card Memory Shield Module SPI Micro SD Adapter For...
3,24 3,94
-10% 0.96 pouce IIC Série Blanc OLED Module D'affichage 128X64 I2C SSD1306 12864...
3,39 3,77
Voir l'offre
AliExpress
5 Couleur Dessus de Touche 25 Pcs Tactile Bouton-Poussoir Momentané 12*12*7.3 MM...
3,60
Voir l'offre
AliExpress
1 PCS écran LCD2004 + I2C 2004 20x4 2004A bleu HD44780 Caractère...
4,10
Voir l'offre
AliExpress
Hrph Capteur BMP280 Pression Module De Haute PréCision AtmosphéRique Arduino Remplacer BMP180
4,48
Voir l'offre
Amazon.fr
Sharp GP2Y1010AU0F Compact des poussières du capteur capteur optique de fumée de...
5,88
Voir l'offre
AliExpress
GY-63 MS5611-01BA03 Haute-résolution Atmosphérique Hauteur Capteur Module IIC/SPI Communication MS5611
6,85
Voir l'offre
AliExpress
-17% GY-MCU90614-BCC Serial IR Non Contact Infrared Temperature Measurement Module MLX90614-BCC
9,34 11,36

Conclusions

ESP Easy est un firmware très puissant et très simple d’utilisation. Si vous débutez (et même si vous ne débutez pas d’ailleurs), on peut se demander pourquoi utiliser son éditeur de code Arduino. Pour de petits objets connectés (sondes, actionneurs…) destinés à de la domotique, ESP Easy fera des merveilles sans effort. L’autre grande force et son interface Web qui permet de tout faire sans devoir disposer d’un accès physique à l’ESP8266 pour le reprogrammer (la mise à jour dans les airs n’est encore si simple). L’autre grande nouveauté de la R120 et la possibilité de créer des règles (Rules) qui vont permettre de créer de petits automates totalement indépendant, quasiment un mini serveur domotique.

ESP Easy est toutefois limité à la liste des capteurs et actionneurs proposés par le firmware. Si votre matériel n’est pas dans la liste, il faudra un peu bricoler…ou modifier le firmware depuis le code source, mais là on s’éloigne du projet facile à mettre en oeuvre !

Print Friendly, PDF & Email

Inscrivez-vous à la newsletter hebdomadaire

Aucun spam et aucun autre usage ne sera fait de votre email. Vous pouvez vous désinscrire à tout moment.

Comparateur de prix

Bons plans

Les offres suivantes se terminent bientôt. Utilisez le coupon indiqué pour profiter du prix promo

Domotique et objets connectés à faire soi-même