7.8 Reto A08. Sensor de temperatura y humedad DHT11
En esta actividad vamos a leer los valores de temperatura y humedad utilizando el sensor DHT11. Este sensor mide temperaturas en un rango de acción de 0ºC a +50ºC con un error de +/- 2ºC y la humedad relativa entre 20% y 90% con un error de +/-5%. No es un sensor con una gran sensibilidad, pero cumple nuestros objetivos sobradamente.
El sensor de temperatura es un termistor tipo NTC. Un termistor es un tipo de resistencia (componente electrónico) cuyo valor varía en función de la temperatura de una forma más acusada que una resistencia común.
Su funcionamiento se basa en la variación de la resistividad que presenta un semiconductor con la temperatura.
El término proviene del inglés “thermistor", el cual es un acrónimo de las palabras Thermally Sensitive Resistor (resistencia sensible a la temperatura). Existen dos tipos fundamentales de termistores:
- Los que tienen un coeficiente de temperatura negativo (en inglés Negative Temperature Coefficient o NTC), los cuales decrementan su resistencia a medida que aumenta la temperatura.
- Los que tienen un coeficiente de temperatura positivo (en inglés Positive Temperature Coefficient o PTC), los cuales incrementan su resistencia a medida que aumenta la temperatura.
La placa Imagina TDR STEAM dispone de un sensor DHT11 conectado al pin D4. En un principio podríamos pensar que se trataría de un sensor analógico o que tuviera dos entradas, una para la temperatura y otra para la humedad. Pero las propias características de diseño del sensor, hace que se puedan realizar todas las lecturas por un solo puerto digital.
En ArduinoBlocks en el menú de sensores tenemos el bloque específico para programar este sensor:
7.8.1
A08.1. Zona de confort con DHT11. DHT11
Reto A08.1. Zona de confort con DHT11.
Puede definirse confort térmico, o más propiamente comodidad higrotérmica, como la ausencia de malestar térmico. En fisiología, se dice que hay confort higrotérmico cuando no tienen que intervenir los mecanismos termorreguladores del cuerpo para una actividad sedentaria y con una indumentaria ligera. Esta situación puede registrarse mediante índices que no deben ser sobrepasados para que no se pongan en funcionamiento los sistemas termorreguladores (metabolismo, sudoración y otros).
Según la imagen adjunta vamos a marcar unos puntos de temperatura y humedad en los que estaremos dentro de la zona de confort térmico, dentro de una zona de medio confort y fuera de la zona de confort.
Usando el Led RGB vamos a indicar esas zonas:
- Led RGB en ROJO; fuera de la zona de confort.
- Led RGB en NARANJA; dentro de la zona media.
- Led RGB en VERDE; en la zona de confort.
A grandes rasgos estos serían los valores de las tres zonas:
- Zona ROJA:
- Humedad por debajo del 20% y superior al 85%.**
- Temperatura por debajo de 16ºC o superior a 26,5ºC.**
- Zona NARANJA:
- Humedad entre el 20% y el 40% y entre el 65% y el 85%.**
- Temperatura entre los 16ºC y los 18ºC o entre los 24 y los 26,5ºC.**
- Zona VERDE:
- Humedad entre 40% y el 65%.
- Temperatura entre 18ºC y 24ºC.
Para no complicar en exceso el programa de ejemplo, vamos a quedarnos sólo con la zona verde, es decir, el LED brillará en VERDE dentro de los parámetros de la Zona VERDE, para el resto el Led estará parpadeando en color ROJO.
Para realizar este programa necesitaremos varios de los bloques del menú de Lógica. Necesitaremos evaluar una condición Lógica y utilizar conjunciones y disyunciones.
YY:😗*se cumple si los dos operandos son verdaderos.***OO:😗*se cumple si alguno de los dos operandos es verdadero.
Antes de evaluar las condiciones debemos establecer las dos variables; la variable Temperatura y la variable Humedad. Recuerda que en el menú desplegable del sensor DHT-11 debes elegir la Temperatura o la Humedad.
Usando 3 bloques de conjunciones debes crear el siguiente bloque:
Después ir metiendo las condiciones en cada uno de ellos:
Y ve uniendo todo hasta conseguir esta condición final:
Por último, debes crear una función, que la puedes llamar ALARMA. Para apagar el led RGB es ponerlo de color negro.
Y con todo esto, el programa final quedaría así:
Actividad de ampliación: realiza un programa con las tres zonas por colores. Ten cuidado con las zonas donde se unen los rangos, ya que si el valor es justo (por ejemplo 40) deberás poner el símbolo >= o <=. También puedes mostrar los valores de humedad y temperatura por el puerto serie.