Taula de continguts:
2025 Autora: John Day | [email protected]. Última modificació: 2025-01-13 06:57
Avui us mostraré com utilitzar una pantalla LCD TFT a l’ESP8266 NodeMCU per mostrar dades de temperatura i humitat d’un entorn determinat en temps real. Faig un exemple d’utilitzar la pantalla amb DHT22, que és l’indicador de temperatura i humitat. En aquest vídeo, concretament, faig servir una pantalla compacta per al termòmetre digital, que és gràfica i permet monitoritzar el propi sistema. L’objectiu d’avui, per tant, és conèixer el maneig de la pantalla de cristalls líquids mitjançant l’ESP8266.
Pas 1: mòdul gràfic LCD 128x128 RGB TFT ILI 9163C
La pantalla que fem servir en aquest projecte és de 128x128 píxels. El 0, 0 es troba a l'extrem superior esquerre i aquest model té funcions d'impressió de text i d'impressió gràfica, que tractarem més endavant.
Pas 2: sensor d'humitat i temperatura AM2302 DHT22
Utilitzarem l’AM2302 DHT22 al nostre muntatge, que és un sensor que m’agrada molt, ja que és molt precís.
Pas 3: Circuit
Al projecte, tenim un ESP8266 que ja està programat i que utilitza l'alimentació USB. El DHT22 està connectat a les dades i la resistència d'explotació a l'ESP8266, que controla la pantalla LCD.
Pas 4: Muntatge
Aquí tenim l’esquema elèctric del nostre muntatge, que mostra el NodeMCU, el sensor i la pantalla. Recordeu que es tracta d’una pantalla sèrie, i2c, que és més fàcil d’utilitzar perquè té més pins.
Pas 5: Biblioteca
Com que programarem la pantalla amb llenguatge Arduino C, necessitem la biblioteca DHT22, així com la pantalla LCD.
En primer lloc, afegiu la següent biblioteca "Biblioteca de sensors DHT" per a la comunicació amb el sensor d'humitat i temperatura.
Simplement accediu a "Sketch >> Inclou biblioteques >> Gestiona biblioteques …"
Ara, afegiu la biblioteca següent, "Adafruit-GFX-Library-master".
Simplement accediu a "Sketch >> Inclou biblioteques >> Gestiona biblioteques …"
A més, afegiu la biblioteca "TFT_ILI9163C" per a la comunicació amb el mòdul gràfic LCD.
Accediu a l'enllaç (((((((https://github.com/sumotoy/TFT_ILI9163C))))) i descarregueu la biblioteca.
Descomprimiu el fitxer i enganxeu-lo a la carpeta de biblioteques de l'IDE Arduino.
C: / Program Files (x86) / Arduino / libraries
Pas 6: Codi
Primer afegim les biblioteques que s’utilitzaran al nostre codi.
#include // utilizada para comunicar con módulo LCD # include // utilizada para comunicar con o sensor de humidade y temperatura
Definicions
A continuació veurem les variables que utilitzarem durant el programa i la instància dels objectes.
. // construtor do objectio that useem for comunicar com o sensor // Definicions de color #define BLACK 0x0000 #define BLUE 0x001F #define RED 0xF800 #define GREEN 0x07E0 #define CYAN 0x07FF #define MAGENTA 0xF81F #define YELLOW 0xFFE0 #FF # WHITE 0x define _CS D1 // pino que connectaremos o CS do módulo LCD #define _DC D4 // pino que connectaremos o RS do módulo LCD TFT_ILI9163C display = TFT_ILI9163C (_ CS, _DC); // construtor do objectio that useem for se comunicar com o módulo LCD
Configuració
A la funció setup (), inicialitzem la variable "dht", que s'encarrega de la comunicació amb el sensor d'humitat i la temperatura. També inicialitzarem la variable "pantalla" que s'utilitza per comunicar-se amb el mòdul LCD.
També configurarem l’objecte per començar a dibuixar a la pantalla.
void setup (void) {dht.begin (); // inicialització per a comunicar-se amb sensor display.begin (); // inicialització per a comunicar-se amb el mòdul LCD display.clearScreen (); // limpa a tela, eliminant tots els dissenys display.fillScreen (BLACK); // pinta a tela tota de preto display.setTextSize (2); // configura o tamanho do text com o tamanho 2 display.setTextColor (GREEN); // configura a cor do text com a verde display.setCursor (5, 10); // posiciona o cursor para começar a escrita a partir do (x, y) display.print ("TEMPERATUR"); // escreve em tela display.setCursor (22, 70); // reposiciona o cursor display.print ("UMIDADE"); // escreve em tela display.setTextColor (BLANC); // configura a cor do text com a branco (a partir de agora) delay (1000); // espera de 1 segon}
Bucle
A la funció loop (), recuperarem la humitat i les temperatures llegides pel sensor i escrites a la pantalla al lloc específic. A cada interval de 5 segons, el valor es llegeix des del sensor i s’escriu a la pantalla.
bucle buit () {int h = dht.readHumidity (); // faz a leitura da umidade do sensor int t = dht.readTemperature (); // faz a leitura da temperatura do sensor // as 2 linhas following using o method “fillRect”, são para fazer a limpeza do local on escreveremos a umidade e a temperatura, apagaremos o valor atual para escrever novamente atualizado. display.fillRect (5, 32, 120, 20, NEGRE); // fillRect (x, y, amplada, alçada, color); display.fillRect (5, 92, 120, 20, NEGRE); display.setCursor (40, 35); // reposiciona o cursor para escrever display.print (t); // escreve a temperatura em tela display.print ((char) 247); // escreve o símbolo de grau ° através de código display.print ("C"); // coloca o “C” per indicar que és més gran Celcius display.setCursor (40, 95); // reposiciona o cursor para escrever display.print (h); // escreve a umidade em tela display.print ("%"); // escreve o símbolo de “porcentagem” para indicar a umidade delay (5000); }
Pas 7: algunes altres funcions interessants
// Gira el contingut de la pantalla (paràmetres 0, 1, 2 o 3)
display.setRotation (uint8_t);
// Inverteix els colors de la pantalla (fa que sigui negatiu)
display.invertDisplay (booleà);
// Dibuixa un sol píxel a la pantalla en posició (x, y)
display.drawPixel (x, y, color);
// Dibuixa una línia vertical en posició
display.drawFastVLine (x, y, amplada, color);
// Dibuixa una línia vertical a la posició especificada
display.drawFastHLine (x, y, amplada, color);
// Dibuixa una línia horitzontal a la posició especificada
display.drawRect (x, y, amplada, alçada, color);
// Dibuixa un cercle a la posició especificada
display.drawCircle (x, y, radi, color);