Termómetro e Higrómetro con Arduino, DHT11 y LCD 16×2. Parte 1

Arduino UNO dht11 LCD 16x02

Recientemente, en el curso de Nuevas Tecnologías que he impartido en el Fablab Sevilla junto a Juan Carlos Pérez, al explicar Arduino y realizar una práctica con el sensor de humedad y temperatura DHT11, se me ocurrió montarme una pistola medidora con sus baterías autonómas y su pantalla, para poder realizar mediciones puntuales sobre el terreno.

La idea, como siempre, es hacerlo al mínimo coste posible, así que ahí vamos con la lista de la compra:

Arduino UNO compatible -> 3,5 €
Sensor de temperatura y humedad DHT11 -> 1,25 €
Display 16×2 -> 1,75 €
Interfaz 1602 I2C para LCD -> 1,5 €

TOTAL: 8 €*
*Faltaría el soporte de baterías, las baterías, cargador, interruptor…. que lo veremos en post sucesivos…

image

El primer paso es soldar la interfaz al módulo LCD. Son 16 pines, viene preparado para ello. Yo he añadido un poco de cinta de doble cara entre la interfaz y el LCD, para aislar de posibles cortos.

image

Con unos latiguillos conectamos el DHT11 y la interfaz. La interfaz la conectaremos a los pines SCL y SDA por un lado y GND y 5V por otro, para alimentarla. El DHT 11 al pin 2, a Vin o 3,3v y a GND. Ojo! Lo estamos conectando a Vin porque estamso alimentando por USB (de momento), cuando llegue el momento de colocar baterías externas veremos si Vin nos sigue siendo valido o no.

Ahora debemos descargar 2 librerías, la del sensor DHT11 y la del LCD del gran Paco Malpartida.

Descargar librería DHT11 desde 3DRC
Descargar librería LCD de F Malpartida desde 3DRC Descargar desde repositorio de F Malpartida

– Si teneis problemas para conectar el Arduino al PC y lo detecta como USB 2.0 dando error, es porque al ser clon no usa un chip FTDI, sino un CH3400. Teneis que instalar este driver.

Una vez instaladas las librerías y conectados sensor e Interfaz I2C, le cargamos este código:

#include <DHT.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

#define DHTPIN 2 //Seleccionamos el pin en el que se conectará el sensor
#define DHTTYPE DHT11 //Se selecciona el DHT11
DHT dht(DHTPIN, DHTTYPE); //Se inicia una variable que será usada por Arduino para comunicarse con el sensor
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Seleccionamos la direccion del LCD I2C

void setup() {
Serial.begin(9600); //Se inicia la comunicación serial
dht.begin(); //Se inicia el sensor
lcd.begin(16,2); // inicializamos el lcd 16×2
}

void loop() {
float h = dht.readHumidity(); //Se lee la humedad
float t = dht.readTemperature(); //Se lee la temperatura

//Se imprimen las variables sobre el lcd
lcd.setCursor(0,0); //Start at character 0 on line 0
lcd.print(«Humedad: «);
lcd.print(h);
lcd.println(«% «);

lcd.setCursor(0,1); //Start at character 0 on line 1
lcd.print(«Temp: «);
lcd.print(t);
lcd.println(«*C   «);
}

y funcionando. En próximas entradas colocaremos las baterías y subiré el diseño de la carcasa para imprimirla.

Habréis observado que no hay decimales, sino valores 00. Es porque el DHT11 nos devuelve enteros. Tendremos que irnos al DHT22 y cambiar una línea en el código (#define DHTTYPE DHT22) para obtener mediciones más precisas y decimales. El precio, unos 6€.

2 comentarios sobre “Termómetro e Higrómetro con Arduino, DHT11 y LCD 16×2. Parte 1”

  1. Fantástico aporte Miguel Angel, nos vendría genial en el trabajo.Nos tienes todos en espera del material que hemos pedido por internet para empezar a fabricar nuestros «juguetes».
    Muchas gracias por el fantástico curso que diste y por tu generosidad , disfrutamos muchísimo y arduino se ha convertido en nuestro tema de moda.

    1. Santi! perdona que se me pasó el comentario. Gracias a vosotros! A ver si me paso un día a veros y me enseñáis vuestro trabajo. Un saludo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Antibots cansinos * Time limit is exhausted. Please reload CAPTCHA.