Buenos días, bienvenidos de nuevo a un tutorial de Practicando Arduino, esta vez vamos a ver un simple ejemplo de como usar el sensor DHT11, el cual recoge la temperatura y la humedad. Es un sensor muy barato, pero no muy preciso y no representa temperatura negativas y solo nos dará valores enteros, sus intervalos son de temperaturas de 0 a 50ºC con un margen de error de 2ºC y de humedad del 20% al 95% con un margen de error del 5%. Para usarlo sin riesgos necesitamos una resistencia pull-up en el pin S, en mi caso mi sensor la trae incluida por lo que no la necesito, os pongo una foto del que si la necesita (con 4 patillas) y luego del mío (no la necesita).
Para realizar este proyecto necesitamos bajarnos la librería DHT
Que necesitamos:
1 Placa Arduino Uno
1 Protoboard (opcional)
1 Sensor DHT11
Cables para realizar las conexiones
Tenemos, en cualquier caso, 3 patillas válidas, S (signal), – (GND) y 5V, es obvio donde se conecta cada una.
Voy a poner el esquema como si tuviera el sensor sin módulo (el que necesita la resistencia pull-upp).
#include "DHT.h" #define DHTPIN 14 //Pin analógico 0 #define DHTTYPE DHT11 //tipo de sensor DHT dht(DHTPIN, DHTTYPE); //indicamos el pin y tipo de sensor float humedad, temperatura; void setup() { Serial.begin(9600); //iniciamos comunicación serie dht.begin(); //iniciamos captura de datos del sensor } void loop() { float temperatura = dht.readTemperature(); //guardamos la temperatura float humedad = dht.readHumidity(); //guardamos la humedad if (isnan(temperatura) || isnan(humedad)) { //comprobamos que este correcto Serial.println(" Sensor desconectado"); } else { Serial.println(temperatura); //mostramos temperatura Serial.println(humedad); //mostramos humedad delay(1200); } }
Esta vez no voy a poner video porque el resultado final se muestra en el monitor serie, pero debería mostrar 2 lines por ciclo, una con la temperatura y otra con la humedad.
Respecto al código, muy simple, especificamos el pin y tipo de sensor que vamos a usar, en el void setup() iniciamos la comunicación serie con el pc y la captura de datos del sensor. En el void loop() capturamos la temperatura y la humedad y comprobamos que sean valores correctos, si lo son los mostramos y esperamos 1,2 segundos para no saturar al sensor con peticiones de información, como mínimo habría que esperar 1 segundo.