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

Kit Sensor Temperatura y Humedad DHT11 y DHT22 para Raspberry Pi y Arduino

Componentes y Suministros

Sensor DHT11 Temperatura y Humedad (4 pines) × 1
Raspberry Pi 2 Modelo B × 1
Arduino UNO × 1
Cables jumper macho-macho × 3
Protoboard (genérica) × 1
Resistencia 4.7 kΩ × 1
Kit Cobbler Breakout (para Raspberry Pi) × 1

Aplicaciones y Servicios en Línea

Sobre el Proyecto

Introducción

El DHT11 es un sensor de temperatura y humedad de 4 pines (uno sin usar) capaz de medir 20–90 % HR y 0–50 °C. Funciona entre 3 y 5.5 V CC y comunica mediante su protocolo propietario OneWire, que requiere temporización muy precisa: los bits LOW/HIGH se codifican por la duración del pulso HIGH. La lectura completa toma ≤ 23.4 ms (incluyendo 18 ms de arranque y ≤ 5.4 ms de datos). Los pulsos individuales duran 20–80 µs.

Cuando salió Windows 10 IoT Core, probé el DHT11 en C# en Raspberry Pi 2 y no funcionó: C# en IoT Core no es lo bastante rápido (al menos en ese momento). En el foro de Microsoft encontré a otros desarrolladores con el mismo problema. Microsoft respondió que el soporte OneWire llegaría en futuras versiones, pero no quise esperar. Luego vi un ejemplo oficial de Microsoft usando C++ en IoT Core con DHT11 como sensor de muestra. Decidí adaptar ese ejemplo a una biblioteca C#.

Este proyecto convierte ese ejemplo en una biblioteca utilizable en C#. Agradezco al autor original que hizo posible usar este sensor popular en Windows 10 IoT Core.

Biblioteca

La biblioteca es un simple refactor del código original de Microsoft; no me atribuyo el mérito de la lectura del sensor.

Ofrece una clase Dht11 en el espacio de nombres Sensors.Dht. Crear un objeto en C# es sencillo:

using Sensors.Dht;
GpioPin pin = GpioController.GetDefault().OpenPin(4, GpioSharingMode.Exclusive);

Luego se pasa el pin al constructor de Dht11 especificando el modo de drive del pin GPIO (permite decidir si añades tu propia resistencia pull-up):

Dht11 dht11 = new Dht11(_pin, GpioPinDriveMode.Input);

Para obtener una lectura se usa el método GetReadingAsync:

DhtReading reading = await dht11.GetReadingAsync().AsTask();

Existe una sobrecarga para especificar el máximo de reintentos (por defecto 20), es decir, cuántos intentos hacer antes de devolver lectura fallida.

La estructura DhtReading se define así:

public value struct DhtReading {
    bool TimedOut;
    bool IsValid;
    double Temperature;
    double Humidity;
    int RetryCount;
};

Observaciones

Incluso en C++ el sensor no siempre devuelve lectura, de ahí la opción de reintento (parte del ejemplo de Microsoft). Para comparar rendimiento, probé código en Raspberry Pi 2 con Raspbian y en Arduino Uno. El código para ambas plataformas está en el repositorio GitHub. El video del proyecto demuestra y compara la salida de cada plataforma.

Primeros Pasos

Montar el Circuito para Raspberry Pi 2

Use la guía siguiente junto con el diagrama al final de la página (los colores de los cables son orientativos).

Montar el Circuito para Arduino

Fotos de los circuitos montados:

Kit Sensor Temperatura y Humedad DHT11 y DHT22 para Raspberry Pi y Arduino
Kit Sensor Temperatura y Humedad DHT11 y DHT22 para Raspberry Pi y Arduino
Kit Sensor Temperatura y Humedad DHT11 y DHT22 para Raspberry Pi y Arduino
Kit Sensor Temperatura y Humedad DHT11 y DHT22 para Raspberry Pi y Arduino
Kit Sensor Temperatura y Humedad DHT11 y DHT22 para Raspberry Pi y Arduino
Kit Sensor Temperatura y Humedad DHT11 y DHT22 para Raspberry Pi y Arduino
Kit Sensor Temperatura y Humedad DHT11 y DHT22 para Raspberry Pi y Arduino
Kit Sensor Temperatura y Humedad DHT11 y DHT22 para Raspberry Pi y Arduino
Kit Sensor Temperatura y Humedad DHT11 y DHT22 para Raspberry Pi y Arduino

Iniciar la Aplicación en Raspberry Pi (Windows 10 IoT Core)

Elija configuración Debug, ARM y Remote Machine. Clic derecho en el proyecto → Propiedades → pestaña Debug. Ingrese la IP de la Raspberry Pi 2 en "Remote machine" y desmarque "Use authentication". Pulse F5. El despliegue inicial puede tardar unos minutos.

Iniciar la Aplicación en Arduino

El sketch está en GitHub como Dht11_Speed. Abra Arduino IDE, cargue el sketch, súbalo al Arduino (Ctrl+U) y abra el Monitor Serie (Ctrl+Shift+M). El video muestra el proceso en detalle.

Iniciar la Aplicación en Raspbian

El código C para Raspberry Pi está en GitHub como Dht11.c. Copie el fuente a la Pi y compílelo allí. Uso WinSCP para transferir archivos. El código usa wiringPi, que debe instalarse antes de compilar.

Comando de compilación:

gcc -o Dht11_Speed Dht11_Speed.c -L/usr/local/lib -lwiringPi -std=c99 -lm

Para ejecutar:

sudo ./Dht11_Speed 1000 10

Donde 1000 = retardo 1000 ms (1 s) y 10 = número de muestras a leer. El video muestra en detalle cómo copiar y compilar en Raspberry Pi con Raspbian. Para instalar Raspbian: raspberrypi.org/downloads/raspbian/.

Video

Video demostrativo de la aplicación (ver en YouTube en modo Teatro para mejor calidad).

Código

Código Fuente C#/C++ para Visual Studio 2015

https://github.com/porrey/dht.git

Esquemas

Archivos Fritzing e imágenes de esquemas:
Dht11_RPi2.fzz, Dht11_Arduino.fzz y capturas de pantalla de los circuitos.

Proceso de manufactura

  1. Construya un registrador de temperatura con Raspberry Pi y sensor I2C de 5 $
  2. Sensor infrarrojo TMP006 con Raspberry Pi: librería Python y guía de configuración
  3. Construya un sensor de temperatura remoto con Raspberry Pi y Python – Guía paso a paso
  4. Cómo conectar un sensor de temperatura DS1820 One‑Wire a Raspberry Pi usando GPIO
  5. Cómo Conectar un Termómetro Digital DS18B20 One‑Wire a Raspberry Pi – Guía Paso a Paso
  6. Construya un Sistema de Monitorización de Temperatura y Luz Multi‑Sensor con Raspberry Pi y DS18B20
  7. Monitor de temperatura casero con Raspberry Pi, MCP9808, InfluxDB y Grafana
  8. Conectar Raspberry Pi 3 a sensor DHT11 y subir datos a cloud ThingsIo.ai
  9. Detección precisa de temperatura por infrarrojos para procesos sensibles al color
  10. Sensor de temperatura de rodamientos de precisión: detección y monitorización exactas
  11. Sensor de Temperatura DS18B20 – Termómetro Digital 1-Wire Preciso para Uso Industrial y Consumo