Sommario:

Termometro digitale ESP8266 con display LCD: 7 passaggi
Termometro digitale ESP8266 con display LCD: 7 passaggi

Video: Termometro digitale ESP8266 con display LCD: 7 passaggi

Video: Termometro digitale ESP8266 con display LCD: 7 passaggi
Video: Using the DS18B20 thermometer on the web server and OLED | ds18b20 temperature sensor Arduino 2024, Novembre
Anonim
Image
Image
Modulo Grafico LCD 128x128 RGB TFT ILI 9163C
Modulo Grafico LCD 128x128 RGB TFT ILI 9163C

Oggi ti mostrerò come utilizzare un display LCD TFT su ESP8266 NodeMCU per visualizzare i dati di temperatura e umidità per un determinato ambiente in tempo reale. Faccio un esempio di utilizzo del display con DHT22, che è il misuratore di temperatura e umidità. In questo video, nello specifico, utilizzo un display compatto per il nostro termometro digitale, che è grafico e permette il monitoraggio sul sistema stesso. L'obiettivo di oggi, quindi, è quello di conoscere la gestione del display a cristalli liquidi utilizzando l'ESP8266.

Fase 1: Modulo grafico LCD 128x128 RGB TFT ILI 9163C

Il display che utilizziamo in questo progetto è 128x128 pixel. Lo 0, 0 si trova nell'angolo in alto a sinistra e questo modello ha sia funzioni di stampa del testo che di stampa grafica, di cui parleremo più avanti.

Passaggio 2: sensore di umidità e temperatura AM2302 DHT22

Sensore di umidità e temperatura AM2302 DHT22
Sensore di umidità e temperatura AM2302 DHT22

Useremo l'AM2302 DHT22 nel nostro assemblaggio, che è un sensore che mi piace molto, in quanto è molto preciso.

Passaggio 3: circuito

Circuito
Circuito

Nel progetto, abbiamo un ESP8266 già programmato e che utilizza l'alimentazione USB. Il DHT22 è collegato ai dati e la resistenza di pull-up all'ESP8266, che controlla il display LCD.

Passaggio 4: assemblaggio

Assemblea
Assemblea

Qui abbiamo lo schema elettrico del nostro assieme, che mostra il NodeMCU, il sensore e il display. Ricorda che questo è un display seriale, i2c, che è più facile da usare perché ha più pin.

Passaggio 5: libreria

Biblioteca
Biblioteca
Biblioteca
Biblioteca

Dato che andremo a programmare il display con il linguaggio Arduino C, abbiamo bisogno della libreria DHT22, oltre che del display LCD.

Innanzitutto, aggiungere la seguente libreria "Libreria di sensori DHT" per la comunicazione con il sensore di umidità e temperatura.

Accedi semplicemente a "Schizzo >> Includi librerie >> Gestisci librerie …"

Ora aggiungi la seguente libreria, "Adafruit-GFX-Library-master".

Accedi semplicemente a "Schizzo >> Includi librerie >> Gestisci librerie …"

Inoltre, aggiungere la libreria "TFT_ILI9163C" per la comunicazione con il modulo grafico LCD.

Accedi al link ((((((https://github.com/sumotoy/TFT_ILI9163C))))) e scarica la libreria.

Decomprimi il file e incollalo nella cartella delle librerie dell'IDE di Arduino.

C: / Programmi (x86) / Arduino / librerie

Passaggio 6: codice

Per prima cosa aggiungiamo le librerie che verranno utilizzate nel nostro codice.

#include //utilizada para se comunicar com o módulo LCD#include //utilizada para se comunicar com o sensor de umiditàde e temperatura

Definizioni

Vedremo di seguito le variabili che utilizzeremo durante il programma, e l'istanza degli oggetti.

#define DHTPIN D6 // pino que conectaremos o sensor DHT22#define DHTTYPE DHT22 // DHT22 é o tipo do sensor que utilizaremos (importante para o construtor) DHT dht(DHTPIN, DHTTYPE); // construtor do objeto que utilizaremos para se comunicar com o sensor // Color definitions #define BLACK 0x0000 #define BLUE 0x001F #define RED 0xF800 #define GREEN 0x07E0 #define CYAN 0x07FF #define MAGENTA 0xF81F #define YELLOW 0xFFE0FF #define WHITE 0x define _CS D1 // Pino che collega o CS fa il modulo LCD #define _DC D4 // Pino che collega o RS fa il modulo LCD TFT_ILI9163C display = TFT_ILI9163C(_CS, _DC); // construtor do objeto que utilizaremos para se comunicar com o módulo LCD

Impostare

Nella funzione setup(), inizializziamo la variabile "dht", che è responsabile della comunicazione con il sensore di umidità e temperatura. Inoltre, inizializzeremo la variabile "display" che viene utilizzata per comunicare con il modulo LCD.

Configurare anche l'oggetto per iniziare a disegnare sullo schermo.

void setup(void) { dht.begin(); // Inizializzazione per comunicare con il sensore display.begin(); // Inizializzazione per comunicare con il modulo LCD display.clearScreen(); // limpa a tela, rimuovendo tutti i dettagli display.fillScreen(BLACK); // pinta a tela toda de preto display.setTextSize(2); // configura o tamanho do texto com o tamanho 2 display.setTextColor(GREEN); // configura a cor do texto como 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 cursore display.print("UMIDADE"); // escreve la tela display.setTextColor(WHITE); // configura a cor do texto como branco (a partir de agora) delay(1000); // espera de 1 secondo }

Ciclo continuo

Nella funzione loop(), recupereremo l'umidità e le temperature lette dal sensore e scritte sullo schermo nella posizione specifica. Ad ogni intervallo di 5 secondi, il valore viene letto dal sensore e scritto sullo schermo.

void loop(){ int h = dht.readHumidity(); // faz a leitura da umidode do sensor int t = dht.readTemperature(); // faz a leitura da temperatura do sensor //as 2 linhas seguintes utilizando o método “fillRect”, são para fazer a limpeza do local onde escreveremos a umidode e a temperatura, apagares o valor atual para escrever novamente aggiornato. display.fillRect(5, 32, 120, 20, NERO); // fillRect(x, y, larghezza, altezza, colore); display.fillRect(5, 92, 120, 20, NERO); display.setCursor(40, 35); // riposiziona il cursore per 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” para indicar que é graus Celcius display.setCursor(40, 95); // riposiziona il cursore per escrever display.print(h); // escreve un umidode em tela display.print("%"); // escreve o símbolo de “porcentagem” para indicar a umidode delay(5000); }

Passaggio 7: alcune altre funzioni interessanti

// Ruota il contenuto dello schermo (parametri 0, 1, 2 o 3)

display.setRotation (uint8_t);

// Inverte i colori del display (fa un negativo)

display.invertDisplay (booleano);

// Disegna un singolo pixel sullo schermo nella posizione (x, y)

display.drawPixel (x, y, colore);

// Disegna una linea verticale in posizione

display.drawFastVLine (x, y, larghezza, colore);

// Disegna una linea verticale nella posizione specificata

display.drawFastHLine (x, y, larghezza, colore);

// Disegna una linea orizzontale nella posizione specificata

display.drawRect (x, y, larghezza, altezza, colore);

// Disegna un cerchio nella posizione specificata

display.drawCircle (x, y, raggio, colore);

Consigliato: