dimanche 4 novembre 2018

ESP8266 ou ESP32 et afficheur LCD 16 X 2

Lorsque vous créez un objet connecté au moyen d'un  ESP8266 ou d'un ESP32, il est parfois utile que votre dispositif soit en mesure d'afficher un court message de façon autonome, ne serait-ce que pour indiquer que sa tentative de connexion au réseau WiFi n'a pas fonctionné, pour afficher son adresse IP, etc.

C'est pourquoi je vous présente aujourd'hui un court article sur le contrôle d'un afficheur à cristaux liquides 16 X 2 basé sur le contrôleur Hitachi HD44780, au moyen d'un module ESP8266 ou ESP32.


Préparation de l'IDE Arduino

Nous allons programmer l'ESP au moyen de l'IDE Arduino. Les fichiers nécessaires à la programmation de ce module doivent donc avoir été ajoutés au moyen du gestionnaire de cartes du logiciel; pour plus d'informations à ce sujet, voir voir cet article pour l'ESP8266 ou celui-ci pour l'ESP32.

Connexions

L'afficheur LCD occupe 6 broches de l'ESP, sans compter l'alimentation. Assurez-vous d'utiliser un afficheur qui accepte de fonctionner à un niveau logique de 3,3 V, car ce n'est pas toujours le cas.  De plus, si vous programmez le module avec un convertisseur USB-série, il est très important qu'il s'agisse d'un modèle fonctionnant sous 3,3 V, et non 5 V.

Les 16 broches de l'afficheur LCD sont connectées de la façon suivante:
  • Broche 1 de l'afficheur (VSS): GND
  • Broche 2 de l'afficheur (VDD): 3,3 V
  • Broche 3 de l'afficheur (contraste): potentiomètre variant de 0 à 3,3 V.
  • Broche 4 de l'afficheur (RS): broche GPIO4 de l'ESP8266
  • Broche 5 de l'afficheur (RW): GND
  • Broche 6 de l'afficheur (E): GPIO05 de l'ESP8266
  • Broches 7, 8, 9 et 10 de l'afficheur (D0, D1, D2, D3): pas connectées
  • Broche 11 de l'afficheur (D4): GPIO12 de l'ESP8266
  • Broche 12 de l'afficheur (D5): GPIO13 de l'ESP8266
  • Broche 13 de l'afficheur (D6): GPIO14 de l'ESP8266
  • Broche 14 de l'afficheur (D7): GPIO15 de l'ESP8266
  • Broche 15 de l'afficheur (rétroéclairage): 3,3 V
  • Broche 16 de l'afficheur: GND
Ce qui donne ce résultat avec ma carte de développement ESP32:

...et celui-ci avec une carte Wemo D1 Mini:


De plus, si vous utilisez un module ESP8266 qui n'est pas intégré à une carte de développement (genre NodeMCU ou Wemos), vous devrez, comme d'habitude, brancher ses broches VCC, RST et CH_PD (enable) à 3,3 V, et brancher ses broches GND et GPIO0 à GND. La broche TXD de l'ESP8266 se branche sur le RX du convertisseur USB-série, et la broche RXD de l'ESP8266 se branche sur le TX du convertisseur USB-série.



Sketch minimal

Bonne nouvelle: si vous avez déjà utilisé ce type d'afficheur avec une carte Arduino, ce sera exactement la même chose, puisque la bibliothèque LiquidCrystal fournie avec l'IDE Arduino est pleinement compatible avec l'ESP8266.

Voici un premier sketch qui ne fait que le strict minimum: afficher un message sur l'afficheur LCD.




Affichage d'un message éditable par une page web

Essayons maintenant un mini-projet qui utilisera un peu mieux les caractéristiques de l'ESP8266 / ESP32: le message qui sera affiché par le LCD pourra être modifié à distance au moyen d'une page web.



Au démarrage du sketch, l'ESP8266 se connecte au réseau WiFi et son adresse IP s'affiche dans le moniteur série de l'IDE Arduino.  Il s'agit de coller cette adresse IP dans le navigateur web d'un appareil (ordinateur ou téléphone) branché au même réseau local pour faire apparaître une page web générée par l'ESP8266.


Vous écrivez un message dans les champs de texte de la page web (un champ pour chaque ligne du LCD) et, lorsque vous cliquez sur le bouton "Appliquer", le message s'affiche sur le LCD.

Yves Pelletier   (TwitterFacebook)

3 commentaires:

  1. L'exemple est intéressant, mais pour le coup, il est à mon avis plus interessant d'utiliser un 16x2 avec un module I2C au dos. Ca vaut quelques centimes de plus, mais ça permet d'économiser de précieuses broches pour d'autres usages !

    RépondreSupprimer
  2. Pourrais je avoir une photo du câblage sur fritzing avec la breadboard ?

    RépondreSupprimer