El sensor DHT11:
El sensor DHT11 és el component o dispositiu d’entrada que ens permet fer la mesura de temperatura i humitat relativa.

El sensor DHT11 proporcionarà el senyal d’entrada digital a l’Arduino.
Les seves característiques principals són:
Mesura de temperatura | De 0ºC a 50ºC (±2ºC a 25ºC) |
Mesura d’humitat relativa | Mesura entre el 20% i el 80% (±5ºC entre 0ºC i 50ºC) |
Alimentació | Entre 3,5V – 5V |
Pel que fa a l’entrada de senyal a l’Arduino:
Sabem que la temperatura i la humitat són magnituds físiques i per tant senyals analògics, ara bé, el sensor DHT11 farà la conversió d’analògic a digital i en conseqüència nosaltres llegirem un senyal digital. Per als més curiosos la transformació es fa de la següent manera: la trama de dades per a transmetre la informació és de 40 bits ordenada com segueix:
- Primer grup de 8 bits: correspon a la part entera de la temperatura.
- Segon grup de 8 bits: correspon a la part decimal de la temperatura.
- Tercer grup de 8 bits: correspon a la part entera de la humitat relativa.
- Quart grup de 8 bits: correspon a la part decimal de la humitat relativa.
- Cinquè grup de 8 bits: els anomenats bits de paritat. Serveixen per confirmar que no hi ha dades corruptes. (Es comprova que la suma dels 4 primers grups dóna com a resultat els bits de paritat).

Connexionat del sensor DHT11:
El sensor DHT11 té tres pins de connexió disponibles, es connectaran:
SENSOR DHT11 | CONNEXIONS EN LA PLACA O LA PROTOBOARD MINI |
Pin marcat amb una S (senyal) | Pin digital, per exemple el número 9 de la placa, (Llegirà el senyal). |
Pin marcat amb el signe (-) negatiu | GND fila de negatiu en la protoboard mini |
Pin central sense marcar. (Correspon al positivo) | 5V fila de positiu en la protoboard mini |

És important esmentar que el sensor que mostrem a la foto superior que és amb el que treballarem ve muntat en una placa PCB la qual porta incorporada una resistència pull-up integrada.
En el cas que disposem del sensor dht sense placa PCB:

caldrà incorporar al muntatge aquesta resistència (normalment de 5 a 10 kΩ) entre el positiu i el pin de senyal S (PinOutput).
En el nostre projecte de l’Estació meteorològica utilitzem el sensor DHT11 amb placa PCB perquè és molt pràctic per estalviar-nos espai i simplificar el muntatge.
Programació del sensor dht11 amb Arduino:
Hem de instal·lar la llibreria DHT.h perquè funcioni correctament.
Però abans d’això què és una llibreria? És un arxiu de codi que incorporem al nostre programa i ens permet noves funcionalitats.
Això ens permetrà fer funcionar aquest component.
Com les afegim?
- Anem a: Eines> Gestiona les biblioteques…
- Apareix el Gestor de biblioteques.
- Escrivim en la recerca “DHT sensor library”. La busquem i procedim a instal·lar-la. Pot ser ens apareixerà un quadre de diàleg demanant-nos permís per instal·lar altres biblioteques relacionades necessàries, en aquest cas, premem intalar a tot (Install all).
Ara anem amb un exemple en el qual llegirem la humitat relativa i la temperatura i la mostrarem a la pantalla de l’ordinador pel monitor sèrie de l’IDE d’Arduino:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
/* InputMakers Programa que mostra per pantalla, la temperatura i l'humitat relativa mitjançant el sensor DHT11. Instruccions: Connectar el pin de senyal del Sensor DHT11 a l'entrada digital 9. Necessari descarregar la llibreria DHT per poder utilitzar aquest sensor. */ #include "DHT.h" // Incloem la llibreria del sensor DHT. #define DHTPIN 9 // Definim el pin digital on connectem el sensor, en aquest cas al pin digital 9. #define DHTTYPE DHT11 // Definim el tipus de sensor. DHT dht(DHTPIN, DHTTYPE); // Inicialitzem el sensor DHT11. void setup() { Serial.begin(9600); // Inicialitzem el port sèrie. dht.begin(); // Inicialitzem el sensor DHT11. } void loop() { int h = dht.readHumidity(); // Definim la variable entera h i llegim l´humitat. int t = dht.readTemperature(); // Definim la variable entera t i llegim la temperatura. /* Comprovem que la lectura s'ha fet correctament mitjançant la funció isnan () Aquesta retorna un 1 si el valor no és numèric. El símbol || correspon a l'operador OR. Donarà error si es compleix una de les dues condicions. */ if (isnan(h) || isnan(t)) { Serial.println("Error en la lectura del sensor DHT11"); return; } Serial.print("Humitat: "); Serial.print(h); Serial.print(" % \t"); Serial.print("Temperatura: "); Serial.print(t); Serial.println(" C"); delay(2000); } |
Executem el programa i efectivament a l’activar el Monitor sèrie de l’IDE d’Arduino ens mostra els resultats esperats.

En properes entrades al bloc estudiarem com mostrar aquestes dades per una pantalla LCD com la de l’estació meteorològica.
A continuació trobareu el projecte del “Estació meterològica” mencionat anteriorment, amb el qual podràs ampliar els teus coneixements sobre el sensor de temperatura i humitat relativa DHT11 així com de la pantalla LCd i Arduino. Fes una ullada!
IMPORTANT: OFERIM GRANS DESCOMPTES PER CENTRES EDUCATIUS! SI ERES UN CENTRE EDUCATIU DEMANA PRESSUPOST PERSONALITZAT AL SEGÜENT ENLLAÇ
Estación meteorológica
✅ Iníciate en el mundo de la robótica con Arduino gracias a este completo kit con el que podrás medir la temperatura y humedad relativa de tu casa.
✅ Monta tu Estación Meteorológica de forma fácil y sencilla siguiendo las instrucciones del manual que encontrarás en el apartado Descargas de nuestra página web. El Manual incluye: Explicación detallada de los componentes de la Estación Meteorológica (sensor de temperatura dht11, pantalla LCD, placa protoboard mini…), los detalles del montaje, el esquema del circuito electrónico y la programación del sistema. *Con la compra de este kit también recibirás el manual automáticamente en tu correo electrónico.
✅ Aprende robótica, electrónica y programación de forma intuitiva y simple a través de este kit. Monta tu Estación Meteorológica y disfruta de una tarde divertida.
✅ Perfecto para niños con la supervisión de un adulto a partir de los 11 años, adolescentes y adultos interesados en aprender robótica, electrónica y programación con Arduino desde cero. 100% compatible con Arduino. Se incluye pila de 9V.
✅ Diviértete montando tu Estación Meteorológica y utilízala en tu casa, en la oficina o estudio.
Descripció
Si tienes interés en comprar este kit de robótica, estación meteorológica con Arduino tal vez te interese echar un vistazo al manual online con la explicación de los componentes, el esquema de montaje y la programación. Al realizar la compra lo recibirás en formato pdf. MANUAL ONLINE: INTRODUCCIÓN: La estación meteorológica es un kit de robótica que sirve para conocer la temperatura y la humedad relativa del ambiente. Un sensor mide dichos datos, la placa compatible con Arduino los procesa y se muestran por pantalla en tiempo real. Con la Estación Metereológica de Inputmakers vas a aprender sobre:- La placa compatible con Arduino.
- La placa protoboard mini.
- El sensor de temperatura y humedad relativa Modelo DHT11.
- La pantalla LCD con módulo Adaptador I2C.
- Montaje de circuitos.
- Programación.
- DESCRIPCIÓN DEL PROYECTO Y SUS COMPONENTES:
- Placa compatible con Arduino con cable USB.
- Placa protoboard mini.
- Cables de conexión macho-macho (2 unidades) y macho-hembra (7 unidades).
- Sensor DHT11.
- Pantalla LCD con módulo I2C.
- Pila de 9 V.
- Conector para pila.
- Piezas de cartón.

- 1. LA PLACA COMPATIBLE CON ARDUINO:
- Un microcontrolador.
- Pines digitales: 14 entradas/salidas digitales que llamaremos pines. Cada uno de estos pines pueden configurarse como entrada o como salida. Solo los 6 que van acompañados del símbolo ~ pueden utilizarse como salidas PWM (Modulación por ancho de pulso). Dentro de lo pines digitales podemos encontrar en la posición 0 el pin RX SERIAL IN (recepción) y en la posición 1 el pin TX SERIAL OUT (transmisión).
- 6 entradas analógicas: pines destinados a leer señales analógicas.
- Power header.
- Conector de alimentación externa: acepta tensiones entre 7 y 12 V,
- Conector USB (5V).

- 2. PLACA PROTOBOARD MINI:

- 3. SENSOR DE TEMPERATURA Y HUMEDAD RELATIVA:

Medida de temperatura | De 0ºC a 50ºC (±2ºC a 25ºC) |
Medida de humedad relativa | Mide entre el 20% y el 80% (±5ºC entre 0ºC y 50ºC) |
Alimentación | Entre 3,5V – 5V |
- Primer grupo de 8 bits: corresponde a la parte entera de la temperatura.
- Segundo grupo de 8 bits: corresponde a la parte decimal de la temperatura.
- Tercer grupo de 8 bits: corresponde a la parte entera de la humedad relativa.
- Cuarto grupo de 8 bits: corresponde a la parte decimal de la humedad relativa.
- Quinto grupo de 8 bits: los llamados bits de paridad. Sirven para confirmar que no hay datos corruptos. (Se comprueba que la suma de los 4 primeros grupos da como resultado los bits de paridad).


- Jumper backlight: permite oscurecer la pantalla o dejarla con el color verde de fondo.
- Un potenciómetro para ajustar el contraste de la pantalla.
- Los pines de conexión: Vcc (5 V), GND, SDA y SCL.




MÓDULO I2C | CONEXIONES EN LA PLACA O LA PROTOBOARD MINI |
GND (pin de conexión a tierra o negativo) | GND fila de negativo en la protoboard mini |
Vcc (pin para alimentación) | 5V fila de positivo en al protoboard mini |
SDA (serial data: conexión por donde se transmite la información) | Pin analógico 4 (A4) de la placa |
SCL (serial clock: define la velocidad de comunicación) | Pin analógico 5 (A5) de la placa |
CHIP PFC8574 | DIRECCIÓN (ADDRESS) |
PFC8574T | 0x27 |
PFC8574AT | 0x3f |
SENSOR DHT11 | CONEXIONES EN LA PLACA O LA PROTOBOARD MINI |
Pin marcado con una S (señal) | Pin digital número 9 de la placa (Leerá la señal). |
Pin marcado con el signo (-) negativo | GND fila de negativo en la protoboard mini |
Pin central sin marcar. (Corresponde al positivo) | 5V fila de positivo en la protoboard mini |


- Descarga el programa Arduino IDE (software libre y gratuito) de la página oficial de Arduino e instálalo en tu ordenador.
- Una vez instalado correctamente el programa, tenemos que instalar diferentes librerías para que funcione correctamente.
- Conecta la placa al ordenador con el cable USB.
- Comprueba que tenemos seleccionado el modelo de la placa Arduino/Genuino Uno.
- Comprueba que la placa está conectada al puerto USB. Herramientas> Puerto: usbserial (se conecta por defecto).
- Comprueba que en el programa pones la Dirección (address) correcta correspondiente al modelo del chip de tu módulo I2C.
- 0x27 si tienes el modelo PCF8574T
- 0x3f si tienes el modelo PCF8574A
- Escribe el código de programación (lo tienes a continuación) en el IDE de Arduino.
- Presionamos el icono VERIFICAR para comprobar que el programa no contiene ningún error en el código. Si la verificación es correcta y no tenemos ningún error, pulsamos en el icono SUBIR.
- Una vez subido el programa a la placa, podemos desconectarla del cable USB y alimentarla con la pila de 9V.
- La primera parte en la que básicamente se van a incluir librerías necesarias para ejecutar el programa y se van a definir variables.
- La segunda parte, el void setup, aquí definimos si los pines de Arduino van a corresponder a variables de entrada o salida (con el comando pinMode) y inicializamos elementos del sistema como sensores, pantallas…
- La tercera parte, el void loop, implementamos las órdenes necesarias para que el programa realice lo que queramos.
Aquí tienes el programa:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
/* InputMakers Proyecto Estación meteorológica. Programa para mostrar en la pantalla LCD, la temperatura y la humedad relativa mediante el sensor DHT11. Instrucciones: Conectar el pin de señal del Sensor DHT11 a la entrada digital 9. Necesario descargar la librería DHT para poder utilizar este sensor. Recuerda que utilizaremos una pantalla LCD controlada mediante un Módulo Serial I2C */ #include <Wire.h> // Incluimos la librería Wire.h que establece la comunicación con el protocolo I2C. #include <LiquidCrystal_I2C.h> // Incluimos la librería para usar la pantalla LCD con el módulo I2C. LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Establece la dirección/conexión de la pantalla LCD y el módulo I2C con el Arduino (Set the LCD I2C address). Si no funciona, revisa estas adress: 0x3f (chip PCF8574AT) o 0x27 (chip PCF8574T). #include "DHT.h" // Incluimos la librería del sensor DHT. #define DHTPIN 9 // Definimos el pin digital donde conectamos el sensor, en este caso al pin digital 9. #define DHTTYPE DHT11 // Definimos el tipo de sensor. DHT dht(DHTPIN, DHTTYPE); // Inicializamos el sensor DHT11. void setup() { lcd.begin(16,2); // Inicializamos el display con 16 caracteres y 2 líneas. dht.begin(); // Inicializamos el sensor DHT. } void loop() { int h = dht.readHumidity(); // Definimos la variable entera h y leemos la humedad. int t = dht.readTemperature(); // Definimos la variable entera t y leemos la temperatura. lcd.clear(); // Elimina todos los símbolos de la LCD. lcd.setCursor(0,0); // Posiciona la primera letra en el segmento 0 de línea 1 (Se empieza a contar desde 0). lcd.print("Humedad Relativa "); // Imprime por pantalla Humedad Relativa. lcd.setCursor(6,1); // Posiciona la primera letra en el segmento 6 de línea 2 (Se empieza a contar desde 0). lcd.print(h); // Imprime la humedad en pantalla. lcd.print(" %"); // Imprime en pantalla %. delay (2500); // Pausa el programa 2,5 segundos. lcd.clear(); // Elimina todos los símbolos de la LCD. lcd.setCursor(3,0); // Posiciona la primera letra en el segmento 3 de línea 1 (Se empieza a contar desde 0). lcd.print("Temperatura "); // Imprime por pantalla Temperatura. lcd.setCursor(6,1); // Posiciona la primera letra en el segmento 6 de línea 2 (Se empieza a contar desde 0). lcd.print(t); // Imprime la temperatura en pantalla. lcd.print(" C"); // Imprime en pantalla C. delay (2500); // Pausa el programa 2,5 segundos. lcd.clear(); // Elimina todos los símbolos de la LCD. lcd.setCursor(0,0); // Posiciona la primera letra en el segmento 0 de línea 1 (Se empieza a contar desde 0). lcd.print("Lecturas:"); // Imprime en pantalla Lecturas. delay (2500); // Pausa el programa 2,5 segundos. } |
- La placa compatible con Arduino.
- La placa protoboard mini.
- El sensor de temperatura y humedad relativa Modelo DHT11.
- La pantalla LCD con módulo Adaptador I2C.
- Entradas analógicas.
- Montaje de circuitos.
- Programación en el IDE de Arduino.
3 ressenyes per Estación meteorológica
Productes relacionats
Si t’ha agradat comparteix pel grup de WhatsApp de el departament de Tecnologia! :))
Salutacions de l’equip de InputMakers i segueix sempre aprenent!
Carlos –
Para la asignatura de Tecnología está de 10 y un servicio impecable. Lo recomiendo.
Jose Luis G. –
Muy chulo para tenerlo por casa en el escritorio. Se lo regalamos a mi hijo de 16 años que le gusta la robótica y lo montó sin problemas.
Carla Martínez –
Muy bueno para principiantes con Arduino, le doy cinco estrellas.