Taula de continguts:

Termòmetre digital ESP8266 amb pantalla LCD: 7 passos
Termòmetre digital ESP8266 amb pantalla LCD: 7 passos

Vídeo: Termòmetre digital ESP8266 amb pantalla LCD: 7 passos

Vídeo: Termòmetre digital ESP8266 amb pantalla LCD: 7 passos
Vídeo: How to make a LED digital counter using 7- Segment Display 2024, Juliol
Anonim
Image
Image
Mòdul gràfic LCD 128x128 RGB TFT ILI 9163C
Mòdul gràfic LCD 128x128 RGB TFT ILI 9163C

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

Sensor d’humitat i temperatura AM2302 DHT22
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

Circuit
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

muntatge
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

Biblioteca
Biblioteca
Biblioteca
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);

Recomanat: