dimanche 4 novembre 2018

ESP8266 et afficheur LCD 16 X 2

Lorsque vous créez un objet connecté au moyen d'un module ESP8266, 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.


Préparation de l'IDE Arduino

Nous allons programmer l'ESP8266 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 (voir cet article pour plus d'informations).

Connexions

L'afficheur LCD occupe 6 broches de l'ESP8266, sans compter l'alimentation (nous pouvons donc oublier toute possibilité d'utiliser un module ESP-01). 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): 3,3 V
Broche 2 de l'afficheur (VDD): GND
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

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

1 commentaire:

  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

Related Posts Plugin for WordPress, Blogger...