Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Arduino UNO: Sensor DHT22 Temperatura y Humedad con Pantalla LCD 16x2 I2C

Componentes y Suministros

Arduino UNO × 1
Sensor de temperatura DHT22 × 1
Módulo LCD 16×2 Blanco sobre Azul con Mochila I2C – 5V × 1
Protoboard grande sin soldar × 1
Batería 9V (genérica) × 1
Conector batería 9V Adafruit con enchufe 5.5mm/2.1mm × 1
Cable USB-A a Mini-USB × 1
Cables jumper Macho/Hembra × 1
Cables jumper Macho/Macho × 1

Sobre el Proyecto

Durante dos años mi hijo (7) quiso tener una serpiente de mascota. Finalmente compró un par de serpientes con un terrario. Para mantenerlas en un ambiente cómodo necesitamos monitorizar temperatura y humedad.

Compramos un sensor analógico de humedad/temperatura y descubrimos que no era tan fácil mantener ambos en buen nivel. Como moría de ganas de empezar un proyecto con mi nuevo Arduino Uno, pareció buena idea usar un sensor de humedad/temperatura y dejar que Arduino automatizara la temperatura y humedad en el terrario. Compré un sensor DHT22 y un display LCD I2C 16x2 y me puse manos a la obra.

Este tutorial es la base del proyecto. No hay automatización alguna; solo el uso del DHT22 y un display LCD I2C.

He visto otro tutorial para este propósito, pero usaba un LCD sin I2C. Si no tienes I2C en tu LCD, consulta este tutorial de ThothLoki.

Hardware Requerido

Librerías Necesarias

Antes de Empezar

Me gusta el LCD 16x2 con I2C montado porque evita el lío de pines que pueden o no necesitar conectarse al Arduino. Solo necesitas 4 cables jumper y listo.

El display tiene una dirección I2C para aceptar comandos o enviar mensajes. El inconveniente es que necesitas averiguar qué dirección usa antes de continuar. No entraré en detalles aquí, pero en el foro de Arduino puedes leer todo al respecto.

En mi caso nuestro dispositivo usa la dirección 0x3F; si el tuyo también la usa, tienes suerte, puedes copiar directamente nuestro código.

Conectar la Protoboard al Arduino

El sensor DHT22 y el LCD 1602 I2C usan alimentación 5V. Conecté el pin 5V del Arduino a la fila roja (+) de la protoboard y la tierra del Arduino a la fila azul (-). Para mantener colores sincronizados, en mi esquema usaré cables rojos para 5V y azules para tierra. En la vida real no usé azul para tierra, sino blanco... supongo que he jugado demasiado con electrónica de coche.

Usaré cable amarillo para Datos, naranja para SDA y gris para SCL. Las dos últimas irán al I2C.

Añadir el Sensor DHT22

Veamos el pinout. El sensor DHT22 (como el DHT11) tiene cuatro pines. Coloco el DHT22 en la protoboard con el frontal hacia fuera. Así el primer pin (5V) queda a la derecha (ver esquemas).

Uso un cable jumper rojo pequeño para conectar el VCC de 5V a la fila (+) de la protoboard. Y un cable jumper azul pequeño para conectar la tierra a la fila (-). Tomé un cable amarillo largo para conectar el segundo pin, el pin de datos, al Arduino. Al ser datos digitales, lo conecté al puerto digital 4. En otros ejemplos verás gente usando el puerto 7; ambos funcionan. Usé el 4 porque anticipé que usaría más puertos de datos y quería reservar el 7 por si acaso. Verás esto en los esquemas.

Arduino UNO: Sensor DHT22 Temperatura y Humedad con Pantalla LCD 16x2 I2C

Añadir el LCD 16x2 I2C

El LCD 16x2 I2C también tiene 4 pines. De izquierda a derecha:

Conecta el primer pin (izquierda) a la fila (-) de la protoboard. Conecta el segundo pin a la fila roja 5V (+). Uso un Arduino Uno que tiene las conexiones I2C en A4 (SDA) y A5 (SCL). Así que conecté el tercer pin a A4 y el cuarto a A5 del Arduino.

Arduino UNO: Sensor DHT22 Temperatura y Humedad con Pantalla LCD 16x2 I2C

El Código

Recuerda que para la pantalla puedes tener diferentes direcciones de conexión. Mi I2C usa dirección 0x3F (ver sección 'Antes de empezar'), así que ten en cuenta que mi código está configurado para esta dirección.

Recuerda las librerías necesarias (Adafruit_Sensor, DHT, NewliquidCrystal). Descárgalas, descomprímelas y colócalas en el directorio libraries de tu proyecto.

Luego sube el código a tu Arduino y comprueba la humedad y temperatura de tu terrario (o armario de servidores, nevera o simplemente tu salón).

Código

hygroThermo.ino C/C++

/* Cómo usar el sensor DHT-22 con Arduino uno
   Sensor de temperatura y humedad
   Más info: https://www.ardumotive.com/how-to-use-dht-22-sensor-en.html
   Dev: Michalis Vasilakis // Date: 1/7/2015 // www.ardumotive.com */

// Librerías
#include <DHT.h>
#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>

// Constantes
#define DHTPIN 4     // pin al que estamos conectados
#define DHTTYPE DHT22 // DHT 22 (AM2302)
DHT dht(DHTPIN, DHTTYPE);

// Inicializar sensor DHT para Arduino normal 16MHz
// SIEMPRE USAR ESTO CON LCD I2C Y DIRECCIÓN 0x3F
#define I2C_ADDR 0x3F
#define BACKLIGHT_PIN 3
#define En_pin 2
#define Rw_pin 1
#define Rs_pin 0
#define D4_pin 4
#define D5_pin 5
#define D6_pin 6
#define D7_pin 7

LiquidCrystal_I2C lcd(I2C_ADDR, En_pin, Rw_pin, Rs_pin, D4_pin, D5_pin, D6_pin, D7_pin);

// Variables
int chk;
float hum;  // Almacena valor humedad
float temp; // Almacena valor temperatura

void setup() {
  Serial.begin(9600);
  dht.begin();
  lcd.begin(16,2);
  lcd.setBacklightPin(BACKLIGHT_PIN, POSITIVE);
  lcd.setBacklight(HIGH);
}

void loop() {
  delay(2000);
  // Leer datos y almacenar en variables hum y temp
  hum = dht.readHumidity();
  temp = dht.readTemperature();

  // Imprimir valores en monitor serie
  Serial.print("Humidity: ");
  Serial.print(hum);
  Serial.print(" %, Temp: ");
  Serial.print(temp);
  Serial.println(" Celsius");

  // Mostrar en LCD
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Temp: ");
  lcd.print(temp);
  lcd.print(" ");
  lcd.print((char)223); // símbolo grado
  lcd.print("C");
  lcd.setCursor(0,1);
  lcd.print("Hum: ");
  lcd.print(hum);
  lcd.print(" %");
  delay(2000); // Espera 2 seg.
}

Esquemáticos

Esquema Fritzing schema_UcHE1qRu2t.fzz

Arduino UNO: Sensor DHT22 Temperatura y Humedad con Pantalla LCD 16x2 I2C

Proceso de manufactura

  1. Integración I2C Fluida entre Arduino y Raspberry Pi 2 para Proyectos IoT con Sensores
  2. Panel de control para Flight Simulator 2020 con Arduino Nano: Pantallas LCD y CDI
  3. Captura Gotas de Agua en Acción con Arduino Nano: Fotografía de Alta Velocidad DIY
  4. Registrador de Temperatura y Humedad con Arduino, DHT11 y Ethernet Shield
  5. Proyecto HMI Interactivo con Nextion, Arduino Mega y Múltiples Sensores
  6. Cómo mostrar imágenes en una pantalla TFT LCD de 1.17 pulgadas con Arduino UNO
  7. Visualiza Temperatura, Humedad y Presión BME280 en Pantalla Táctil Nextion
  8. Osciloscopio DIY con Arduino Nano (10 Hz–50 kHz) y LCD 128×64
  9. Módulo GPS u-blox LEA‑6H 02: Guía de integración con Arduino y Python
  10. Leer Temperatura y Humedad con DHT11 en Blynk – Tutorial Paso a Paso con Arduino
  11. Construye un reloj despertador fiable con RTC DS1302 y Arduino UNO