Creación de un Sensor de Temperatura y Humedad con Arduino y Visualización en Display LED de 7 Segmentos

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):

  1. Arduino (cualquier modelo compatible).
  2. Sensor de temperatura y humedad DHT11 o DHT22.
  3. Dos display LED de 7 segmentos de 3 dígitos (común ánodo o común cátodo, dependiendo del modelo).
  4. Resistencias de 220 ohmios (para limitar la corriente en los display LED).
  5. Cables de conexión.
  6. Protoboard o placa de pruebas.
  7. Fuente de alimentación USB para el Arduino.
  8. 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:

  1. 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.
  2. 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.
  3. 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!