Tabla de contenido:

Termómetro digital ESP8266 con pantalla LCD: 7 pasos
Termómetro digital ESP8266 con pantalla LCD: 7 pasos

Video: Termómetro digital ESP8266 con pantalla LCD: 7 pasos

Video: Termómetro digital ESP8266 con pantalla LCD: 7 pasos
Video: 🟢Conectar una pantalla LCD al ESP32 2024, Mes de julio
Anonim
Image
Image
Módulo gráfico LCD 128x128 RGB TFT ILI 9163C
Módulo gráfico LCD 128x128 RGB TFT ILI 9163C

Hoy, le mostraré cómo usar una pantalla LCD TFT en el ESP8266 NodeMCU para mostrar datos de temperatura y humedad para un entorno dado en tiempo real. Hago un ejemplo del uso de la pantalla con DHT22, que es el indicador de temperatura y humedad. En este video, específicamente, utilizo una pantalla compacta para nuestro termómetro digital, que es gráfica y permite monitorear el sistema en sí. El objetivo de hoy, por tanto, es aprender sobre el manejo de la pantalla de cristal líquido utilizando el ESP8266.

Paso 1: Módulo gráfico LCD 128x128 RGB TFT ILI 9163C

La pantalla que usamos en este proyecto es de 128x128 píxeles. El 0, 0 está en la esquina superior izquierda, y este modelo tiene funciones de impresión de texto e impresión de gráficos, de las que trataremos más adelante.

Paso 2: Sensor de temperatura y humedad AM2302 DHT22

Sensor de temperatura y humedad AM2302 DHT22
Sensor de temperatura y humedad AM2302 DHT22

Usaremos el AM2302 DHT22 en nuestro montaje, que es un sensor que me gusta mucho, ya que es muy preciso.

Paso 3: circuito

Circuito
Circuito

En el proyecto, tenemos un ESP8266 que ya está programado y utiliza la alimentación USB. El DHT22 está conectado a los datos y la resistencia pull-up al ESP8266, que controla la pantalla LCD.

Paso 4: Montaje

Montaje
Montaje

Aquí tenemos el diagrama eléctrico de nuestro ensamblaje, que muestra el NodeMCU, el sensor y la pantalla. Recuerde que esta es una pantalla en serie, i2c, que es más fácil de usar porque tiene más pines.

Paso 5: biblioteca

Biblioteca
Biblioteca
Biblioteca
Biblioteca

Dado que vamos a programar la pantalla con el lenguaje Arduino C, necesitamos la biblioteca DHT22, así como la pantalla LCD.

Primero, agregue la siguiente biblioteca de "biblioteca de sensores DHT" para la comunicación con el sensor de humedad y temperatura.

Simplemente acceda a "Sketch >> Incluir bibliotecas >> Administrar bibliotecas …"

Ahora, agregue la siguiente biblioteca, "Adafruit-GFX-Library-master".

Simplemente acceda a "Sketch >> Incluir bibliotecas >> Administrar bibliotecas …"

Además, agregue la biblioteca "TFT_ILI9163C" para la comunicación con el módulo gráfico LCD.

Acceda al enlace ((((((https://github.com/sumotoy/TFT_ILI9163C))))) y descargue la biblioteca.

Descomprima el archivo y péguelo en la carpeta de bibliotecas del IDE de Arduino.

C: / Archivos de programa (x86) / Arduino / bibliotecas

Paso 6: Código

Primero agreguemos las bibliotecas que se usarán en nuestro código.

#include // usada para se comunicar com o módulo LCD # include // usada para se comunicar com o sensor de umidade e temperatura

Definiciones

Veremos a continuación las variables que usaremos durante el programa, y la instancia de los objetos.

#define DHTPIN D6 // pino que conectaremos o sensor DHT22 # define DHTTYPE DHT22 // DHT22 é o tipo de sensor que utilizaremos (importante para o construtor) DHT dht (DHTPIN, DHTTYPE); // construtor do objeto que utilizaremos para se comunicar com o sensor // Definiciones de color #define BLACK 0x0000 #define BLUE 0x001F #define RED 0xF800 #define GREEN 0x07E0 #define CYAN 0x07FF #define MAGENTA 0xF81F #define YELLOW 0xFFEITE0 #define # 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 se comunicar com o módulo LCD

Configuración

En la función setup () inicializamos la variable "dht", que se encarga de la comunicación con el sensor de humedad y temperatura, también inicializaremos la variable "display" que se utiliza para comunicarse con el módulo LCD.

También configuraremos el objeto para empezar a dibujar en pantalla.

configuración vacía (vacío) {dht.begin (); // inicialización para comunicar com o sensor display.begin (); // inicialización para comunicar el módulo LCD display.clearScreen (); // limpa una tela, eliminando todos los desenhos display.fillScreen (BLACK); // pinta una tela toda de preto display.setTextSize (2); // configura o tamanho do texto com o tamanho 2 display.setTextColor (VERDE); // configura un cor do texto como verde display.setCursor (5, 10); // posiciona o cursor para venir a escribir a partir de (x, y) display.print ("TEMPERATUR"); // escreve em tela display.setCursor (22, 70); // reposiciona o cursor display.print ("UMIDADE"); // escreve em tela display.setTextColor (BLANCO); // configura un cor do texto como branco (a partir de agora) delay (1000); // espera de 1 segundo}

Círculo

En la función loop (), recuperaremos la humedad y las temperaturas leídas por el sensor y escritas en la pantalla en la ubicación específica. En cada intervalo de 5 segundos, el valor se lee del sensor y se escribe en la pantalla.

bucle vacío () {int h = dht.readHumidity (); // faz a leitura da umidade do sensor int t = dht.readTemperature (); // faz a leitura da temperatura do sensor // as 2 lineas seguintes using o método “fillRect”, são for 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, NEGRO); // fillRect (x, y, ancho, alto, color); display.fillRect (5, 92, 120, 20, NEGRO); display.setCursor (40, 35); // reposiciona el cursor para escrever display.print (t); // rescatar una temperatura en la pantalla de la pantalla.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); // reposiciona el cursor para escrever display.print (h); // crear una umidade em tela display.print ("%"); // escreve o símbolo de "porcentagem" para indicar un retraso de umidade (5000); }

Paso 7: algunas otras funciones interesantes

// Gira el contenido de la pantalla (parámetros 0, 1, 2 o 3)

display.setRotation (uint8_t);

// Invierte los colores de la pantalla (hace un negativo)

display.invertDisplay (booleano);

// Dibuja un solo píxel en la pantalla en la posición (x, y)

display.drawPixel (x, y, color);

// Dibuja una línea vertical en posición

display.drawFastVLine (x, y, ancho, color);

// Dibuja una línea vertical en la posición especificada

display.drawFastHLine (x, y, ancho, color);

// Dibuja una línea horizontal en la posición especificada

display.drawRect (x, y, ancho, alto, color);

// Dibuja un círculo en la posición especificada

display.drawCircle (x, y, radio, color);

Recomendado: