Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
Hoje, vou mostrar como usar um display TFT LCD no ESP8266 NodeMCU para exibir dados de temperatura e umidade para um determinado ambiente em tempo real. Eu faço um exemplo de uso do display com DHT22, que é o medidor de temperatura e umidade. Neste vídeo, especificamente, utilizo um display compacto para nosso termômetro digital, que é gráfico e permite o monitoramento do próprio sistema. O objetivo de hoje, portanto, é aprender sobre o manuseio da tela de cristal líquido usando o ESP8266.
Etapa 1: Módulo gráfico LCD 128x128 RGB TFT ILI 9163C
A tela que usamos neste projeto é de 128x128 pixels. O 0, 0 está no canto superior esquerdo e este modelo tem funções de impressão de texto e impressão de gráfico, das quais trataremos mais tarde.
Etapa 2: Sensor de umidade e temperatura AM2302 DHT22
Usaremos o AM2302 DHT22 em nossa montagem, que é um sensor que gosto muito, pois é muito preciso.
Etapa 3: circuito
No projeto, temos um ESP8266 que já vem programado e usando a alimentação USB. O DHT22 é conectado aos Dados e o resistor pull-up ao ESP8266, que controla o display LCD.
Etapa 4: Montagem
Aqui, temos o diagrama elétrico de nossa montagem, que mostra o NodeMCU, o sensor e o display. Lembre-se de que este é um display serial, i2c, que é mais fácil de usar porque tem mais pinos.
Etapa 5: Biblioteca
Como vamos programar o display com a linguagem Arduino C, precisamos da biblioteca DHT22, bem como do LCD.
Primeiro, adicione a seguinte biblioteca "Biblioteca de sensores DHT" para comunicação com o sensor de umidade e temperatura.
Basta acessar "Sketch >> Incluir Bibliotecas >> Gerenciar Bibliotecas…"
Agora, adicione a seguinte biblioteca, Adafruit-GFX-Library-master.”
Basta acessar "Sketch >> Incluir Bibliotecas >> Gerenciar Bibliotecas…"
Além disso, adicione a biblioteca "TFT_ILI9163C" para comunicação com o módulo gráfico LCD.
Acesse o link ((((((https://github.com/sumotoy/TFT_ILI9163C))))) e baixe a biblioteca.
Descompacte o arquivo e cole-o na pasta de bibliotecas do Arduino IDE.
C: / Arquivos de programas (x86) / Arduino / bibliotecas
Etapa 6: Código
Primeiro, vamos adicionar as bibliotecas que serão usadas em nosso código.
# incluir // usar para se comunicar com o módulo LCD # incluir // usar para se comunicar com o sensor de umidade e temperatura
Definições
Veremos a seguir as variáveis que usaremos durante o programa e a instância dos objetos.
#define DHTPIN D6 // pino que conectaremos o sensor DHT22 # define DHTTYPE DHT22 // DHT22 é o tipo de sensor que usaremos (importante para o construtor) DHT dht (DHTPIN, DHTTYPE); // construtor do objeto que usaremos para comunicar com o sensor // Definições de cores #define BLACK 0x0000 #define BLUE 0x001F #define RED 0xF800 #define GREEN 0x07E0 #define CYAN 0x07FF #define MAGENTA 0xF81F #define AMARELO 0xFFE0 #define WHITE 0xFFE0 #define WHITE 0xFFE0 # define _CS D1 // pino que conectaremos o CS do módulo LCD #define _DC D4 // pino que conectaremos o RS do módulo LCD TFT_ILI9163C display = TFT_ILI9163C (_ CS, _DC); // construtor do objeto que utilizaremos para comunicar com o módulo LCD
Configurar
Na função setup (), inicializamos a variável “dht”, que é responsável pela comunicação com o sensor de umidade e temperatura, e também inicializaremos a variável “display” que é utilizada para comunicação com o módulo LCD.
Também iremos configurar o objeto para começar a desenhar na tela.
configuração de void (void) {dht.begin (); // inicialização para se comunicar com o sensor display.begin (); // inicialização para se comunicar com o módulo LCD display.clearScreen (); // limpa uma tela, removendo todos os desenhos display.fillScreen (BLACK); // tela inteira 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"); // senha em tela display.setCursor (22, 70); // reposiciona o cursor display.print ("UMIDADE"); // link em tela display.setTextColor (WHITE); // configura um cor do texto como branco (a partir de agora) delay (1000); // espera de 1 segundo}
Ciclo
Na função loop (), vamos recuperar a umidade e as temperaturas lidas pelo sensor e escritas na tela no local específico. A cada intervalo de 5 segundos, o valor é lido do sensor e escrito na tela.
void loop () {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 seguindo o método “fillRect”, são para fazer a limpeza do local onde escreveremos a umidade e a temperatura, apagaremos o valor atual para escrever novamente atualizado. display.fillRect (5, 32, 120, 20, PRETO); // fillRect (x, y, largura, altura, cor); display.fillRect (5, 92, 120, 20, PRETO); display.setCursor (40, 35); // reposiciona o cursor para escrever display.print (t); // recupera a temperatura em tela display.print ((char) 247); // registra 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); // reposiciona o cursor para escrever display.print (h); // disse a umidade em tela display.print ("%"); // registrado o símbolo de “porcentagem” para indicar um atraso de umidade (5000); }
Etapa 7: algumas outras funções interessantes
// Roda o conteúdo da tela (parâmetros 0, 1, 2 ou 3)
display.setRotation (uint8_t);
// Inverte as cores de exibição (torna um negativo)
display.invertDisplay (boolean);
// Desenha um único pixel na tela na posição (x, y)
display.drawPixel (x, y, cor);
// Desenha uma linha vertical na posição
display.drawFastVLine (x, y, largura, cor);
// Desenha uma linha vertical na posição especificada
display.drawFastHLine (x, y, largura, cor);
// Desenha uma linha horizontal na posição especificada
display.drawRect (x, y, largura, altura, cor);
// Desenha um círculo na posição especificada
display.drawCircle (x, y, raio, cor);