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

Débuter avec ESP Easy R120, firmware ESP8266 pour créer des objets connectés sans programmation

install espeasy esp8266 esp01 nodemcu

Installer ESP Easy (uniquement R120) sur un ESP8266 (NodeMCU)

ESP Easy R120 (version stable) est un firmware Open Source qui permet de créer des objets connectés (IoT) ou des accessoires domotiques à l’aide d’un module ESP8266 sans aucune ligne de code (page officielle du projet). ESPEasy peut s’installer directement depuis l’IDE Arduino à partir du code source ou à l’aide d’un petit programme (uniquement disponible sous Windows).

 

Tutoriel actualisé le 26 mai 2020

ESP Easy embarque un mini serveur web qui permet de configurer le module à distance. De très nombreux capteurs sont pris en charge : 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 !

Cet article a été rédigé avec la version R120 du firmware sur un ESP8266 LoLin D1 Mini

ESP Easy (R120) ou ESP Easy Mega, attention à la confusion !

Il existe 2 branches (versions) d’ESP Easy ce qui peut entraîner une certaine confusion lorsqu’on débute.

ESP Easy est la version stable (R120) que l’on peut récupérer sur cette page. L’installation à partir de la compilation du code source est difficile (impossible) avec les versions récente de l’IDE Arduino. En cas de problème, utilisez l’utilitaire ESP Tools d’Espressif. Tout est expliqué étape par étape dans ce tutoriel.

ESP Easy Mega est la version en cours de développement disponible ici. Elle embarque plus de plugins, une nouvelle interface et supporte (quelques) cartes de développement ESP32. Pour en savoir plus, vous pouvez lire cet article de présentation. Attention, pour fonctionner votre carte ESP8266 doit au moins disposer d’1MB de mémoire flash (attention à bien choisir votre module ESP-01).

Quel module ESP8266 choisir ?

On peut installer le firmware sur la quasi totalité des modules ESP8266. La seule limitation est la quantité de mémoire flash. Le problème ne se pose plus vraiment aujourd’hui, mais il peut encore y avoir des fabricants qui utilisent d’anciens stocks de SoC ESP8266.

Module ESP8266 ESP-01 avec 2 GPIO

Idéal pour fabriquer des relais connectés ou des minis objets connectés (sonde de température, suivi de la qualité de l’air). Attention, certains modèles obsolètes (512MB de mémoire flash) sont encore commercialisés !

512K Modules obsolètes : ESP-01 (bleu), ESP-201 ou ESP-12
1024K ESP-01 noir. Conseillé
4096K ESP-12E qui équipent les cartes NodeMCU ou LoLin D1 Mini par exemple

Voici une sélection de modules ESP01 équipés d’au moins 1MB de mémoire flash

Plus économique dans un pack

Il est possible de programmer l’ESP01 à l’aide de l’interface UART (port série) du module. Il est toutefois beaucoup plus facile et plus rapide d’utiliser un adaptateur FTDI (convertisseur série vers USB) ou un programmateur USB. Il existe également des supports dédiés au module ESP01.

Attention, il est nécessaire de réaliser un câblage spécifique pour mettre le module ESP-01 est en mode bootload à chaque fois qu’on désire téléverser un programme.

 

Module FTDI USB

Pour les cartes ESP8266 qui ne disposent par de convertisseur USB vers port série (assez rare)

Module ESP8266 générique

LoLin WeMos d1 mini, conseillée pour débuter

En plus d’être très accessibles (environ 2,5€), Wemos a développé de nombreux shields (cartes d’extensions) qui viennent s’empiler ou s’assembler sur une base double ou triple. La liste de tous les shields disponibles est actualisée ici.

Voir plus de shields

Installer le firmware ESPEasy R120 sur un ESP8266

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

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

Flash du firmware à l’aide du programme esptool.exe (sur Windows uniquement)

C’est la méthode la plus simple pour débuter. On utilise le petit programme esptool.exe qui se trouve à la racine du répertoire. Il permet de flasher (téléverser) le binaire (image pré-compilée) du firmware qui correspondant à la taille de la mémoire du module ESP8266.

La première chose à faire est de récupérer le port COM sur lequel est branché l’ESP8266. Pour cela, vous pouvez vous aider de l’IDE Arduino. Vous aurez également besoin de connaître la quantité de mémoire flash dont dispose le module. Voici quelques indications si vous ne connaissez pas la quantité de mémoire flash dont dispose votre module :

Une fois que vous avez toutes les infos, lancez esptool.exe

Répondez aux trois questions :

Validez pour lancer l’installation.

Personnaliser et compiler les sources avec l’IDE Arduino

Cette méthode pose malheureusement des problèmes avec le code source de la version R120. Si vous devez compiler le code source (pour ajouter un plugin), utilisez PlatformIO

Personnaliser et compiler les sources avec PlatformIO

Vous rencontrez des erreurs de compilation avec l’IDE Arduino, essayez l’IDE PlatformIO. Suivez ce tutoriel.

Installation à l’aide du script esptools.py (tout système d’exploitation)

Espressif a développé un script python nommé esptools.py (code source sur GitHub) qui permet de téléverser (entre autre) un firmware vers les modules ESP8266 (et ESP32). Cette solution alternative fonctionne sur tous les systèmes d’exploitation et notamment macOS, et Linux (y compris Raspbian).

Si vous rencontrez des problèmes de compilation avec l’IDE Arduino ou PlatformIO, n’hésitez pas à suivre les étapes de ce tutoriel.

Premier démarrage d’ESP Easy : connexion au réseau 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.

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.

Appuyez ensuite sur Connect.

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.

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

Noeuds ESP Easy

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


Page Config : configuration du module

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

On peut attribuer une adresse ip fixe à l’ESP8266

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 :

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

Page Advanced

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

 

 

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.

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 :

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

sendto 2,gpio,5,1

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

Pour désactiver le relai, envoyez

sendto 2,gpio,5,1

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.

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

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).

PiDome : MQTT

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

Services 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.

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.

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.

- platform: mqtt
  name: "Switch"
  state_topic: "WemosD1/gpio/5/state"
  command_topic: "WemosD1/gpio/5/set"
  payload_on: "1.0"
  payload_off: "0.0"
  optimistic: true
  qos: 0
  retain: true
  value_template: '{{ value.x }}'

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.

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.

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 :

Le BMP180 est le remplaçant du BMP085. Son fonctionnement est identique.

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.

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

Voici un aperçu des actionneurs et capteurs supporté par la version R120 (sans plugin additionnel).

Tous les shields compatibles avec la LoLin d1 Mini

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

Capteurs, entrées analogiques ou numériques

Compteur de pulsation
  • TCR5000
Capteur de 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
Baromètre numérique
  • BMP085/BMP180  : température de -40 à + 85°C, pression atmosphérique de 300 à 1100hPa
  • BME280 : température de -40 à + 85°C, humidité de 0 à 100%, pression atmosphérique de 300 à 1100 hPa
  • BMP280 : température de -40 à + 85°C, pression atmosphérique de 300 à 1100 hPa
  • MS5611
Capteur de luminosité
  • BH1750 : de 0-65535 lux, convertisseur 16 bits.
  • TSL2561 : de 188 μLux jusqu’à 88000 lux
Capteur d’humidité
  RFID
Mesure de distance
Interrupteurs
Entrée analogique de l’ESP8266
Carte analogique externe
Entrées digitales supplémentaires
Récepteur Infra rouge
Poussières
  • GP2Y10 : particules de taille supérieure à 0,8µm. 0.5V pour 0.1mg/m3.
Tension et Intensité

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
Sorties numériques supplémentaires
PWM
  • PCA9685 : I2C, 16 canaux 12 bits
Ecrans

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 !

Tutoriels ESPEasy

Prêt à vous lancer dans le développement de vos propres accessoires domotiques, voici une série de tutoriels et de projets à découvrir sur le blog

Et vous, vous utilisez ESP Easy pour faire quoi ?
  • Proposer une autre réponse
Poll Options are limited because JavaScript is disabled in your browser.
  • Environnement : température, humidité, baromètre, poussière, lumière, gaz 31%, 190 votes
    190 votes 31%
    190 votes - 31% de tous les votes
  • Piloter : relai, servo-moteur, pompe, électro-vanne... 27%, 167 votes
    167 votes 27%
    167 votes - 27% de tous les votes
  • Mesure : courant, compteur, distance... 9%, 56 votes
    56 votes 9%
    56 votes - 9% de tous les votes
  • Affichage : OLED, LCD, LED 9%, 54 votes
    54 votes 9%
    54 votes - 9% de tous les votes
  • Alarme : mouvement, RFID, contacteur 8%, 46 votes
    46 votes 8%
    46 votes - 8% de tous les votes
  • Plusieurs choses à la fois : température, comptage, commande relais, relevé d'état* 7%, 41 vote
    41 vote 7%
    41 vote - 7% de tous les votes
  • Thermostat 4%, 26 votes
    26 votes 4%
    26 votes - 4% de tous les votes
  • Comment connecter un petit récepteur 433mhz pour sonde XH300 imagintronix, réalisé à l'aide d'un pic12F1822 qui communique via le bus i2c* 1%, 8 votes
    8 votes 1%
    8 votes - 1% de tous les votes
  • RFLiNK* 1%, 7 votes
    7 votes 1%
    7 votes - 1% de tous les votes
  • Notifier : MP3, vibreur 1%, 6 votes
    6 votes 1%
    6 votes - 1% de tous les votes
  • Anémomètre* 1%, 5 votes
    5 votes 1%
    5 votes - 1% de tous les votes
  • Puissance thermique* 0%, 3 votes
    3 votes
    3 votes - 0% de tous les votes
Total Votes: 609
Voters: 249
20 décembre 2018
*- ajouté par un visiteur
×
Vous avez déjà voté
  • Proposer une autre réponse
×
Vous avez déjà voté
Avez-vous aimé cet article ?
[Total: 2 Moyenne: 5]
Quitter la version mobile