Monitor Portátil de Temperatura y Humedad con Arduino y LCD 16x2
Componentes y materiales
| Arduino UNO R3 (o cualquier 5V) | 1 |
| Sensor DHT11 temperatura y humedad (4 pines) | 1 |
| Pantalla LCD 16x2 con retroiluminación RGB (Adafruit) | 1 |
| Resistencia 10 kΩ | 1 |
| Potenciómetro 10 kΩ (contraste LCD) | 1 |
| Power Bank (alimentación portátil) | 1 |
| Pulsador táctil 12 mm (encendido retroiluminación) | 1 |
| Cable USB A-B | 1 |
| Cables jumper | 1 |
| Protoboard | 1 |
Sobre el proyecto
Monitor portátil de temperatura y humedad con visualización en tiempo real en LCD 16x2. Alimentado por power bank, ideal para detectar corrientes de aire, calibrar ventilación o simplemente monitorizar ambiente. Incluye botón para activar/desactivar la retroiluminación y ahorrar batería.
Conexiones (resumen)
| Componente | Pin | Conexión |
|---|---|---|
| Arduino | GND | Riel negativo protoboard |
| 5V | Riel positivo protoboard | |
| DHT11 | Pin 1 (VCC) | 5V + resistencia 10k a Pin 2 (pull-up) |
| Pin 2 (DATA) | Arduino D8 + misma resistencia 10k | |
| Pin 3 | Sin conexión | |
| Pin 4 (GND) | GND | |
| LCD 16x2 (estándar HD44780) | 1 (VSS) | GND |
| 2 (VDD) | 5V | |
| 3 (VO) | Cursor potenciómetro 10k (extremos 5V/GND) | |
| 4 (RS) | Arduino D12 | |
| 5 (RW) | GND | |
| 6 (EN) | Arduino D11 | |
| 7-10 (D0-D3) | Sin conexión (modo 4 bits) | |
| 11 (D4) | Arduino D5 | |
| 12 (D5) | Arduino D4 | |
| 13 (D6) | Arduino D3 | |
| 14 (D7) | Arduino D2 | |
| 15 (A/LED+) | 5V | |
| 16 (K/LED-) | Pulsador → GND (botón activa retroiluminación) |
Nota: El LCD usado en el original tenía pinout invertido en pines 15/16. Verifique su módulo con datasheet. El esquema Fritzing adjunto usa pinout estándar.
Librerías necesarias
LiquidCrystal.h(incluida en Arduino IDE)DHT sensor libraryde Adafruit: GitHub
Código
// Monitor Temp/Humedad DHT11 + LCD 16x2
#include <LiquidCrystal.h>
#include "DHT.h"
#define DHTPIN 8
#define DHTTYPE DHT11
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // RS, EN, D4, D5, D6, D7
DHT dht(DHTPIN, DHTTYPE);
void setup() {
lcd.begin(16, 2);
dht.begin();
lcd.print("Temp: Humidity:");
}
void loop() {
delay(500); // DHT11: mínimo 1-2s entre lecturas; 500ms es agresivo, subir a 2000ms en producción
lcd.setCursor(0, 1);
float h = dht.readHumidity();
float f = dht.readTemperature(true); // true = Fahrenheit
if (isnan(h) || isnan(f)) {
lcd.print("ERROR");
return;
}
lcd.print(f); // temperatura en °F
lcd.setCursor(7, 1);
lcd.print(h); // humedad %
}
Mejoras sugeridas
- Aumentar
delay(2000)para respetar especificación DHT11 (1 Hz máx). - Añadir unidad "°F" y "%" en pantalla.
- Implementar bajo consumo (sleep) para mayor duración con power bank.
- Opcional: registrar datos en tarjeta SD con timestamp (RTC).
- Cambiar a DHT22 para mayor precisión y rango.
Esquema Fritzing
Ver sección Schematics: dos imágenes PNG con conexiones en protoboard y esquema lógico.
Proceso de manufactura
- Construye un sistema aeropónico automatizado con Raspberry Pi y sensor de humedad
- Construye un Juego Giroscópico en Tiempo Real con Arduino Nano y Sensor MPU-6050
- Sistema de Sensor de Temperatura Multiposición para Integración en Hogar Inteligente
- Sensor K30 CO₂: Monitorización en tiempo real de la calidad del aire interior
- Sensor de obstáculos IR casero con Arduino – Tutorial fácil con LED IR y fotodiodo
- Integración del sensor de huella capacitivo DFRobot (ID809) con Arduino o ESP8266
- Crear un medidor IoT web con Arduino, Yaler e IFTTT
- Levitación magnética repulsiva con Arduino: Circuito simple y guía DIY
- Registrador de Datos de Alto Rendimiento para Globo Meteorológico con Arduino
- Estación Meteorológica Portátil Arduino por $10 – Nano, DHT22, BMP180 y LCD
- Construye un reloj despertador fiable con RTC DS1302 y Arduino UNO