La combinación de Arduino con sensores de temperatura y humedad ofrece una manera efectiva de monitorear y visualizar datos ambientales en tiempo real. En este tutorial, te guiaremos a través de la creación de un sensor de temperatura y humedad utilizando un sensor DHT11 o DHT22 y cómo mostrar los datos en dos display LED de 7 segmentos de 3 dígitos, uno para la temperatura y otro para la humedad. Este proyecto es perfecto para principiantes y proporciona una introducción emocionante a la electrónica y la programación con Arduino.
Materiales Necesarios
Antes de comenzar, asegúrate de tener los siguientes materiales a mano (click en cada uno para ver el producto en Amazon):
- Arduino (cualquier modelo compatible).
- Sensor de temperatura y humedad DHT11 o DHT22.
- Dos display LED de 7 segmentos de 3 dígitos (común ánodo o común cátodo, dependiendo del modelo).
- Resistencias de 220 ohmios (para limitar la corriente en los display LED).
- Cables de conexión.
- Protoboard o placa de pruebas.
- Fuente de alimentación USB para el Arduino.
- Una computadora con el software Arduino IDE instalado.
O también puedes adquirir un Kit de inicio Arduino, que contenga todos estos componentes, entre los mostrados a continuación:
Paso 1: Conexión del Sensor DHT
Comienza conectando el sensor DHT a tu Arduino. Por lo general, el sensor DHT tiene tres pines: VCC (alimentación), DAT (datos) y GND (tierra). Conéctalos de la siguiente manera:
- VCC del sensor DHT a 5V del Arduino.
- DAT del sensor DHT al pin digital 2 del Arduino.
- GND del sensor DHT a GND del Arduino.
Paso 2: Conexión de los Displays LED de 7 Segmentos
Conectar dos displays LED de 7 segmentos de 3 dígitos al Arduino es un proceso importante en este proyecto. Asegúrate de seguir estos pasos:
- Identifica los Pines de los Displays: Primero, identifica los pines en los display LED de 7 segmentos de 3 dígitos. Dependiendo del modelo (común ánodo o común cátodo), los pines pueden variar. Consulta la hoja de datos del display o la documentación del fabricante para confirmar la disposición de pines.
- Conexión a Arduino: Usaremos un display LED para la temperatura y otro para la humedad. Conéctalos de la siguiente manera:
- Conecta el pin de cátodo común (común ánodo o común cátodo, dependiendo del modelo) del primer display al GND del Arduino.
- Conecta el pin de cátodo común del segundo display al GND del Arduino.
- Conecta los pines de ánodo de los dígitos de cada display a pines digitales del Arduino, como el pin 2, 3 y 4 para un display y el pin 5, 6 y 7 para el otro.
- Conecta los pines de segmentos «a», «b», «c», «d», «e», «f» y «g» de ambos displays a pines digitales del Arduino según corresponda.
- Resistencias: Coloca una resistencia de 220 ohmios en serie con cada pin de segmento de los displays LED (pines «a» a «g») para limitar la corriente.
Paso 3: Código Arduino
A continuación, te presentamos el código Arduino para leer los datos del sensor DHT y mostrar la temperatura en un display y la humedad en el otro display LED de 7 segmentos de 3 dígitos. Asegúrate de haber instalado las bibliotecas necesarias («DHT.h» y «SevSeg.h») antes de cargar el programa en tu Arduino. El código realiza la lectura del sensor, convierte los datos y muestra la información en los displays.
#include <DHT.h> #include <SevSeg.h> #define DHTPIN 2 // Pin de datos del sensor DHT #define DHTTYPE DHT11 // Tipo de sensor DHT (DHT11 o DHT22) DHT dht(DHTPIN, DHTTYPE); SevSeg tempDisplay; // Inicializa el objeto SevSeg para la temperatura SevSeg humDisplay; // Inicializa el objeto SevSeg para la humedad void setup() { dht.begin(); // Mapeo de los pines del display de temperatura realizado en la protoboard tempDisplay.begin(COMMON_ANODE, 3, 2, 1, 4, 5, 6, 7, 8, 9); tempDisplay.setBrightness(90); // Ajusta el brillo del display de temperatura // Mapeo de los pines del display de humedad realizado en la protoboard humDisplay.begin(COMMON_ANODE, 12, 11, 10, 13, 14, 15, 16, 17, 18); humDisplay.setBrightness(90); // Ajusta el brillo del display de humedad } void loop() { float tempC = dht.readTemperature(); float humidity = dht.readHumidity(); // Muestra la temperatura en el display int temp = int(tempC); // Convierte la temperatura a entero tempDisplay.setNumber(temp, 1); tempDisplay.refreshDisplay(); // Muestra la humedad en el display int hum = int(humidity); // Convierte la humedad a entero humDisplay.setNumber(hum, 1); humDisplay.refreshDisplay(); delay(5000); // Espera 5 segundos }
Paso 4: Prueba y Ajustes
Carga el programa en tu Arduino y asegúrate de que todo esté funcionando correctamente. Observa la temperatura y la humedad mostradas en los displays LED de 7 segmentos de 3 dígitos. Puedes ajustar el código para mostrar los valores en el formato que prefieras, incluso mostrar un decimal en la temperatura, o agregar características adicionales, como la conversión de unidades o la calibración del sensor.
Con este proyecto, has creado un sensor de temperatura y humedad con Arduino y has aprendido a visualizar los datos en dos displays LED de 7 segmentos de 3 dígitos, uno para la temperatura y otro para la humedad. Esta es solo una de las muchas aplicaciones que puedes explorar con Arduino, sensores y dispositivos de visualización. ¡Diviértete experimentando y expandiendo tus habilidades en electrónica y programación!