La humedad y la temperatura son parámetros comunes para medir las condiciones ambientales. En este proyecto basado en Arduino, vamos a medir la temperatura y la humedad ambiente y la mostraremos en una pantalla LCD de 16x2. Se utiliza un sensor combinado de temperatura y humedad DHT11 con Arduino uno para desarrollar este termómetro en escala Celsius y un proyecto de medición de humedad en escala porcentual. En uno de mis proyectos anteriores, también desarrollé un termómetro digital usando el sensor de temperatura LM35.
Este proyecto consta de tres secciones: una detecta la humedad y la temperatura mediante el uso del sensor de humedad y temperatura DHT11. La segunda sección lee la salida del módulo DHTsensor y extrae los valores de temperatura y humedad en un número adecuado en porcentaje y escala Celsius. Y la tercera parte del sistema muestra la humedad y la temperatura en la pantalla LCD.
El trabajo de este proyecto se basa en la comunicación serie de un solo cable. Primero arduino envía una señal de inicio al módulo DHT y luego DHT da una señal de respuesta que contiene datos de temperatura y humedad. Arduino recolecta y extrae en dos partes, una es la humedad y la segunda es la temperatura y luego las envía a una pantalla LCD de 16x2.
Aquí en este proyecto hemos utilizado un módulo sensor llamado DHT11. Este módulo presenta un complejo de humedad y temperatura con una salida de señal digital calibrada, lo que significa que el módulo sensor DHT11 es un módulo combinado para detectar la humedad y la temperatura que proporciona una señal de salida digital calibrada. DHT11 nos da un valor muy preciso de humedad y temperatura y asegura una alta confiabilidad y estabilidad a largo plazo. Este sensor tiene un componente de medición de humedad de tipo resistivo y un componente de medición de temperatura de tipo NTC con un microcontrolador de 8 bits incorporado que tiene una respuesta rápida y rentable y está disponible en un paquete de una sola fila de 4 pines.
El módulo DHT11 funciona con comunicación en serie, es decir, comunicación de un solo cable. Este módulo envía datos en forma de tren de pulsos de un período de tiempo específico. Antes de enviar datos a arduino, necesita algún comando de inicialización con un retraso de tiempo. Y todo el tiempo del proceso es de aproximadamente 4 ms. Una transmisión de datos completa es de 40 bits y el formato de datos de este proceso se da a continuación:
Datos de RH integral de 8 bits + datos de RH decimal de 8 bits + datos T integral de 8 bits + datos T decimal de 8 bits + suma de comprobación de 8 bits.
Proceso completo
En primer lugar, arduino envía una señal de inicio alta a baja a DHT11 con un retraso de 18 µs para garantizar la detección de DHT. Y luego arduino levanta la línea de datos y espera de 20 a 40 µs para la respuesta de DHT. Una vez que el DHT detecta la señal de inicio, enviará una señal de respuesta de nivel de voltaje bajo a arduino con un retardo de tiempo de aproximadamente 80 µs. Y luego el controlador DHT levanta la línea de datos y la mantiene durante 80 µs para que DHT disponga el envío de datos.
Cuando el bus de datos está en un nivel de voltaje bajo, significa que DHT11 está enviando una señal de respuesta. Una vez hecho esto, DHT vuelve a hacer que la línea de datos se levante durante 80 µs para preparar la transmisión de datos.
El formato de datos que envía DHT a arduino para cada bit comienza con un nivel de voltaje bajo de 50 µs y la longitud de la señal de nivel de voltaje alto determina si el bit de datos es "0" o "1".
Una cosa importante es asegurarse de subir el valor de la resistencia porque si colocamos el sensor DHT a una distancia de <20 metros, se recomienda una resistencia de subida de 5k. Si coloca DHT a más de 20 metros, utilice una resistencia de extracción del valor apropiado.
Diagrama de circuito y explicación
Se utiliza una pantalla de cristal líquido para mostrar la temperatura y la humedad que está conectada directamente a arduino en modo de 4 bits. Los pines de LCD, a saber, RS, EN, D4, D5, D6 y D7 están conectados al pin digital arduino número 2, 3, 4, 5, 6 y 7. Y un módulo sensor DHT11 también está conectado al pin digital 12 de arduino con un Resistencia pull-up de 5k.
Descripción de programación
En programación, utilizaremos bibliotecas preconstruidas para el sensor DHT11 y el módulo de pantalla LCD.
Luego definimos los pines para el sensor LCD y DHT e inicializamos todas las cosas en la configuración. Luego, en un bucle usando la función dht lee el sensor DHT y luego usando algunas funciones dht extraemos la humedad y la temperatura y las mostramos en la pantalla LCD.
Aquí, el símbolo de grado se crea utilizando el método de carácter personalizado.