Visualización de la temperatura y humedad en una pantalla LCD con Arduino y el sensor DHT11
En este tutorial aprenderemos a utilizar el sensor de temperatura y humedad DHT11 en conjunto con una pantalla LCD para visualizar los valores obtenidos. Este proyecto es útil para monitorear la temperatura y humedad en un ambiente específico.
Lista de Materiales
- Arduino UNO
- Sensor DHT11
- Pantalla LCD 16×2
- Potenciómetro de 10kOhm
- Protoboard
- Cables jumper
- Resistencia de 220 Ohms
Diagrama de Conexión
Componente | Pin | Conexión |
---|---|---|
Sensor DHT11 | 1 | VCC (5V) |
Sensor DHT11 | 2 | Data (Pin digital 2) |
Sensor DHT11 | 4 | GND |
Pantalla LCD | 1 | GND |
Pantalla LCD | 2 | VCC (5V) |
Pantalla LCD | 3 | Contraste (Potenciómetro de 10kOhm) |
Pantalla LCD | 4 | RS (Pin digital 7) |
Pantalla LCD | 5 | R/W (GND) |
Pantalla LCD | 6 | E (Pin digital 6) |
Pantalla LCD | 11 | D4 (Pin digital 5) |
Pantalla LCD | 12 | D5 (Pin digital 4) |
Pantalla LCD | 13 | D6 (Pin digital 3) |
Pantalla LCD | 14 | D7 (Pin digital 2) |
Pantalla LCD | 15 | A (5V) |
Pantalla LCD | 16 | K (GND) |
Código del Programa
#include#include #define DHTPIN 2 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); LiquidCrystal lcd(7, 6, 5, 4, 3, 2); void setup() { lcd.begin(16, 2); dht.begin(); } void loop() { float h = dht.readHumidity(); float t = dht.readTemperature(); lcd.setCursor(0, 0); lcd.print("Temperatura: "); lcd.print(t); lcd.print(" C"); lcd.setCursor(0, 1); lcd.print("Humedad: "); lcd.print(h); lcd.print(" %"); delay(2000); }
Explicación Paso a Paso del Código
Lo primero que hacemos en el código es importar las librerías necesarias. En este caso, utilizamos la librería DHT para el sensor de temperatura y humedad, y la librería LiquidCrystal para la pantalla LCD. Luego, definimos el pin al cual está conectado el sensor y el tipo de sensor que estamos utilizando.
#include#include #define DHTPIN 2 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
En el método setup()
inicializamos la pantalla LCD y el sensor de temperatura y humedad.
void setup() { lcd.begin(16, 2); dht.begin(); }
Dentro del método loop()
leemos los valores del sensor de temperatura y humedad utilizando los métodos readTemperature()
y readHumidity()
. Estos valores los guardamos en dos variables t
y h
, respectivamente.
void loop() { float h = dht.readHumidity(); float t = dht.readTemperature();
Utilizamos el método setCursor()
de la librería LiquidCrystal para posicionar el cursor en la primera fila de la pantalla y escribir “Temperatura: ” y el valor de la temperatura en grados Celsius.
lcd.setCursor(0, 0); lcd.print("Temperatura: "); lcd.print(t); lcd.print(" C");
Luego, utilizamos el método setCursor()
nuevamente para posicionar el cursor en la segunda fila de la pantalla y escribir “Humedad: ” y el valor de la humedad en porcentaje.
lcd.setCursor(0, 1); lcd.print("Humedad: "); lcd.print(h); lcd.print(" %");
Por último, utilizamos el método delay()
para esperar 2 segundos antes de volver a leer los valores del sensor.
delay(2000); }