ESP Easy R120. Ecran d’affichage OLED SSD1306 pour Jeedom actualisé par requête HTTP

Partager sur facebook
Partager sur twitter
Partager sur linkedin
Partager sur pinterest
Partager sur email
Partager sur telegram

Dans le tutoriel précédent, nous avons vu comment intégrer dans Jeedom (récupérer des données et envoyer des commandes) de petits objets connectés Wi-Fi développés à l’aide du framework ESP Easy pour les modules ESP8266. 

 

Article actualisé le 21 avril 2020

Nous allons réaliser un petit affichage déporté à l’aide d’un écran OLED SSD1306 et un module ESP8266 LoLin D1 Mini (ou n’importe quel autre module NodeMCU). Les données à afficher sur l’écran seront envoyées depuis Jeedom via une requête HTTP. Le firmware ESP Easy permet

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. Suivez ce tutoriel qui explique étape par étape comment installer et configurer le firmware ESPEasy R120 sur un module ESP8266. 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).

Matériel utilisé

Pour ce tutoriel, nous allons nous contenter d’utiliser un écran OLED mais rien ne vous empêche de combiner avec d’autres éléments, par exemple un capteur de température DHT22, un baromètre BME280 ou un détecteur de particules dans l’atmosphère pour réaliser un analyseur de qualité de l’air miniature par exemple.

esp8266 Wemos D1 mini LoLin WeMos D1 Mini (compact et économique) ou n’importe quel autre ESP8266 ESP-12
chargeur raspbery pi 3 5v 3000ma Alimentation 5/3A micro-usb
oled ssd1306 ecran i2c Ecran OLED monochrome 168×64 pixels 0.96″

SSD1306

wemos d1 mini oled shield Ecran OLED officiel Wemos. Compact à empiler sur la D1 Mini.

environ 4,40€

dht22 sensor arduino DHT22
jumper dupont Jumper Dupont (optionnel)
breadboard Breadboard (optionnel)

Tous les shields compatibles avec la LoLin d1 Mini

Circuit

L’écran OLED se connecte sur le bus I2C. Par défaut ce sont les broches GPIO4 (SDA, D2 de l’ESP8266) et GPIO5 (SCL, D1 de l’EP8266) qui sont utilisées. Le montage est identique au tutoriel précédent.

espeasy + dht22 + ssd1306 + bmp180

Configuration de l’écran OLED sur ESP Easy R120

Un fois connecté à ESP Easy, nous allons utiliser le protocole HTTP Generic pour communiquer avec Jeedom. Allez sur la page Config et renseignez les champs en fonction de votre configuration :

  • Protocol choisir Generic HTTP
  • Locate Controller choisir Use IP address
  • Controller IP indiquer l’adresse IP de la box Jeedom
  • Controller Port indiquer 8121
  • Enregistrer avec submit

jeedom esp easy protocol generic

Si vous avez besoin d’envoyer des données à Jeedom, allez sur la page Tools puis sur Advanced. Dans le champ Publish Template collez

device=%sysname%&taskid=%id%&cmd=%valname%&value=%value%

jeedom esp easy publish template

Enregistrer avec submit.

Installation des plugins script et weather sur Jeedom

Pour les besoins du tutoriel, j’ai utilisé le module météo (gratuit) pour disposer d’informations intéressantes à afficher sur l’écran OLED.

jeedom plugin meteo

Une fois installé, activez le. Vous aurez besoin d’une clé API gratuite pour un usage personnel (et limité) sur openweathermap.org. Une fois cette clé récupérée, allez sur la page de configuration du plugin et enregistrez la dans le champ correspondant. Enregistrez la configuration.

jeedom cle api openweathermap

Retournez sur la page du plugin météo et ajoutez (+) un nouveau lieu. OpenWeatherMap va renvoyer à Jeedom les prévisions pour la ville indiquée dans le champ Ville. Vous pouvez faire un test en complétant puis en saisissant cette URL dans un navigateur internet

http://api.openweathermap.org/data/2.5/weather?q=paris,fr&appid=CLE_API

Ce qui vous donnera par exemple (au format JSON)

{"coord":{"lon":2.35,"lat":48.85},"weather":[{"id":701,"main":"Mist","description":"mist","icon":"50d"},{"id":741,"main":"Fog","description":"fog","icon":"50d"}],"base":"stations","main":{"temp":273.48,"pressure":1029,"humidity":98,"temp_min":272.15,"temp_max":274.15},"visibility":4000,"wind":{"speed":2.6,"deg":240},"clouds":{"all":90},"dt":1483457400,"sys":{"type":1,"id":5615,"message":0.005,"country":"FR","sunrise":1483429423,"sunset":1483459649},"id":2988507,"name":"Paris","cod":200}

 jeedom lieu meteo

Nous allons pouvoir récupérer la valeur de nombreuses informations envoyées par OpenWeatherMap, mais on pourra envoyer sur l’écran la valeur de n’importe quelle autre variable. Cliquez sur l’engrenage (en mode expert) pour afficher la liste des variables disponibles pour le plugin météo.

jeedom variables disponibles affichage oled espeasy

Nous allons utiliser le plugin Script disponible gratuitement sur le Market pour piloter directement l’affichage OLED.

jeedom plugin script espeasy http requete

Activez le plugin à la fin de l’installation et retournez sur la page du plugin.

Script pour afficher sur un écran OLED des informations depuis Jeedom

Maintenant, on va pouvoir commencer les choses sérieuses. Cliquez sur le + pour créer un nouveau script. Donnez lui un nom, un objet parent et activez le. Dans le cas d’un afficheur, on souhaite que le contenu soit mis à jour régulièrement. C’est très simple à configurer. Appuyez le ? à droite du champ Auto-actualisation (cron).

jeedom auto-actualisation

Une boite de dialogue s’ouvre. Dans la liste de sélection “A exécuter”, choisissez Répétitivement. Puis choisissez la fréquence désirée dans la liste every (minute, heure, jour, semaine; mois, année). Validez

jeedom frequence actualisation affichage oled

Allez maintenant à l’onglet Commande et ajoutez un nouvelle commande.

Comment afficher du texte sur l’écran OLED avec ESP Easy à l’aide d’une requête HTTP ?

ESP Easy permet de récupérer des requêtes HTTP (envoyées depuis un navigateur ou un serveur domotique par exemple). Le requête est se situe après le slash (/) et commence par ?cmd=.

Ici, on va créer une commande OLED qui permettra de déclencher l’actualisation de affichage sur l’écran SSD1306. On passe en paramètre l’index de la colonne (une par caractère), la ligne et enfin le texte à afficher. Par contre, le plugin ESP Easy ne permet pas indiquer la taille de l’affichage.

Pour cela, il faudra développer votre propre plugin en suivant ce tutoriel

A LIRE AUSSI :
Transformer du code Arduino en plugin ESP Easy Mega pour ESP8266 / ESP32

Pour résumer, la requête HTTP est de la forme suivante :

http://<ESP IP address>/control?cmd=oled,<row>,<col>,<text>
  • row position de la ligne où afficher le texte
  • col position de la colonne où afficher le texte
  • text texte à afficher

Limitations :

  • Il faut d’abord vider l’écran clear avant d’envoyer un nouveau texte (sinon les anciens caractères persistent)
  • Le texte sera affiché jusqu’au prochaine rafraichissement Delay

Autres commandes disponibles :

  • Allumer l’écran : http://<ESP IP address>/control?cmd=oledcmd,on
  • Eteindre l’écran : http://<ESP IP address>/control?cmd=oledcmd,off
  • Vider l’écran : http://<ESP IP address>/control?cmd=oledcmd,clear

Configurer le script Jeedom

Ajoutez une nouvelle commande. On va commencer par créer une commande qui envoi la commande clear pour vider l’affichage. Voici comment configurer la commande :

  • Nom : nom de la commande
  • Type de script : HTTP
  • Laisser Info
  • Type d’information : autre
  • Commande : saisissez http://192.168.1.21/control?cmd=oledcmd,clear
  • Cochez (optionnel) Retour vide et Pas d’erreurs

jeedom script clear oled display esp easy

Ensuite, ajoutez une commande par ligne d’affichage. Par exemple, nous allons commencer par afficher un titre

jeedom script titre oled display esp easyPuis la température, l’humidité et la prévision du jour. Pour récupérer le contenu d’un variable, on doit le mettre entre #. Vous pouvez encadrer la valeur par une chaine de caractères. Attention toutefois à ne pas dépasser 15 caractères au total.

jeedom script temperature oled display esp easy

Enregistrez le script. Celui-ci est exécuté après chaque enregistrement. L’affichage de l’écran OLED s’actualise donc immédiatement puis suivant la fréquence configurée précédemment.

Voilà, vous pouvez maintenant créer très facilement de petites afficheurs connectés à Jeedom sur lesquels vous pouvez afficher ce que vous voulez (météo, consigne d’un thermostat, consommation électrique…).

jeedom affichage oled ssd1306 esp easy meteo

 

Avez-vous aimé cet article ?
[Total: 0 Moyenne: 0]
Partager sur facebook
Partager sur twitter
Partager sur linkedin
Partager sur pinterest
Partager sur email
Partager sur telegram

Vous avez aimé ce projet ? Ne manquez plus aucun projet en vous abonnant à notre lettre d’information hebdomadaire!

quel modèle esp8266 choisir
Quel modèle d'ESP8266EX choisir en 2020 ?
guide choix esp32 development board
Quel ESP32 choisir en 2020 ?

Vous rencontrez un problème avec ce sujet ?

Peut-être que quelqu’un a déjà trouvé la solution, visitez le forum avant de poser votre question

7 commentaires sur l'article "ESP Easy R120. Ecran d’affichage OLED SSD1306 pour Jeedom actualisé par requête HTTP"
  1. Bonjour,

    Existe-t-il des ESP Ethernet ?
    Merci
    Thomas

  2. Génial ce tuto, mais pour ma part j’utilise Domoticz existe il un équivalent pour faire la même chose !

    • Bonjour Sébastien et merci beaucoup. Oui c’est certainement possible, je termine la série d’article sur la programmation des ESP8266 comme serveur web et je regarde. Ce sera un bon exemple d’application. A très bientôt.

  3. Merci beaucoup pour ce tuto, ça règle mon problème d’affichage de variable !!!
    Efficacité et rapidité, ne changez rien !
    Je vous souhaite mes meilleurs vœux, et de nombreux tutos à venir 🙂

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

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