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

Breakout compacto DHT de temperatura y humedad para Raspberry Pi – ATtiny85 y DHT22/DHT11

Componentes de hardware: Atmel ATTiny85 × 1, Sensor de temperatura DHT22 × 1, Sensor de temperatura y humedad DHT11 × 1, Programador Tiny AVR de SparkFun × 1, Resistencia Adafruit 4.7K Ω × 3, Resistencia Adafruit 10K Ω × 1, Resistencia Adafruit 100 Ω × 1, LED azul difuso 3mm Adafruit × 1, Interruptor táctil Adafruit × 1, Header macho break-away 0.1″ 36-pin 1 pieza @ longitud 6, 1 pieza @ longitud 2 (total 8 pines) × 1, Jumper genérico (0.1″) × 1, Arduino UNO & Genuino UNO Opcional – usado para depuración y pruebas. × 1

Aplicaciones de software y servicios en línea: Microsoft Visual Studio 2015, Microsoft Windows 10 IoT Core, Arduino IDE

HISTORIA

Introducción

Los sensores DHT11 y DHT22 son populares para temperatura y humedad debido a su precisión a muy bajo coste. Un problema con ellos es que funcionan sobre un protocolo one-wire propietario que requiere temporización precisa. Estos sensores han demostrado ser difíciles de leer en placas con sistemas operativos no en tiempo real.

Hace tiempo, publiqué un artículo titulado “DHT11 /DHT22 Temperature Sensor” demostrando cómo usar el código de ejemplo C++ de Microsoft desde C# para leer estos sensores. La librería conseguía una lectura pero tuve que añadir lógica de reintento para hacerlo más fiable. Esto funcionó para la mayoría pero algunas personas tuvieron problemas para que funcionara consistentemente.

Dado el nivel de interés en usar estos sensores en Raspberry Pi ejecutando Windows 10 IoT Core, decidí crear una segunda opción que proporcione un método muy fiable de leer estos sensores manteniendo un bajo coste.

Visión general

El enfoque presentado aquí es conectar el sensor DHT a un ATtiny85 económico y configurarlo como dispositivo esclavo I2C. Esto se logra usando la librería TinyWireS y creando un conjunto de registros que pueden leerse y escribirse para interactuar con el dispositivo.

El dispositivo soporta las siguientes funciones:

El código fuente

Hay tres conjuntos de código en este proyecto. El firmware principal para la placa, un sketch maestro de Arduino usado para probar y demostrar la placa conectada a un Arduino Uno, y la aplicación Windows 10 IoT que demuestra cómo usar el dispositivo desde la Raspberry Pi. Todo el código está disponible en el repositorio GitHub enlazado.

El dispositivo/circuito

El circuito es pequeño y usa solo unos pocos componentes económicos. El ATtiny85 puede comprarse en varios vendedores. Recomiendo conseguir unos cuantos ya que tienen muchos propósitos útiles.

El circuito tiene un header de seis pines que permite conectarlo a otro circuito o directamente a la Raspberry Pi. Los pines se definen como sigue:

También hay un header de dos pines donde se puede añadir un jumper para habilitar, o quitar para deshabilitar el LED a bordo.

Al utilizar esto en un proyecto mayor, el circuito del DHT Tiny puede fusionarse o embeberse en el circuito existente del proyecto. En ese caso, los pines del header y el LED son opcionales.

El circuito también puede construirse en una placa separada y conectarse a su Raspberry Pi con unos pocos cables o un cable de conexión.

Programar el ATtiny85

Cargue el sketch llamado DHT_Tiny_Breakout.ino en el ATtiny85 usando su programador AVR. Si no tiene programador, puede usar un Arduino Uno (o placa similar). Consulte uno o más de los artículos listados a continuación para ayuda.

Uso el programador SparkFun Tiny AVR para cargar mi ATtiny85.

Ejecuto mi chip a 16 MHz. Vea mi artículo titulado “ATtiny @ 16MHz” para instrucciones sobre cómo hacerlo.

Al usar el ATtiny85, el sketch esclavo requiere la librería TinyWireS instalada en su carpeta de librerías. Esta librería puede descargarse desde https://github.com/rambo/TinyWire.

Montar el circuito en breadboard

El primer paso es poner el DHT Tiny en marcha en un breadboard. Usando un breadboard de medio tamaño, construya el circuito siguiendo el esquema y diagramas de breadboard incluidos en el proyecto.

Aquí hay un par de consejos para facilitarlo:

A continuación se muestran algunas imágenes de la versión breadboard de mi DHT Tiny.

Conectar el Arduino Uno

Si está interesado en una prueba rápida, una demostración, o tiene problemas para que funcione con su Raspberry Pi, puede conectar el DHT Tiny a un Arduino Uno (o dispositivo similar).

Cargue y ejecute el sketch llamado DHT_Tiny_Master.ino. Este sketch mostrará salida en el Monitor Serie.

Al conectar I2C entre las dos placas es importante tener resistencias pull-up en las líneas SDA y SCL. En este circuito, hay dos resistencias de 4.7K Ω conectadas entre los pines y 5V.

A continuación se muestran algunas imágenes del DHT Tiny en breadboard conectado al Arduino Uno.

Conectar a la Raspberry Pi

Si está interesado en una prueba rápida, una demostración, o tiene problemas para que funcione con su Raspberry Pi, puede conectar el DHT Tiny a un Arduino Uno (o dispositivo similar).

Al conectar I2C entre las dos placas es importante tener resistencias pull-up en las líneas SDA y SCL. En este circuito, hay dos resistencias de 4.7K Ω conectadas entre los pines y 3V3.

¡MUY IMPORTANTE! La placa DHT Tiny será alimentada por el pin 5V de la Raspberry Pi, pero las resistencias pull-up deben conectarse al pin 3V3 de la Raspberry Pi (3V3 está en pines 1 y 17).

A continuación se muestran algunas imágenes del DHT Tiny en breadboard conectado a la Raspberry Pi 3.

Ejecutar la aplicación Windows 10

Obtenga el código del repositorio GitHub enlazado al final del proyecto y descomprímalo en su ordenador. Abra el código fuente de la Aplicación Universal en Visual Studio 2015 y despliéguelo en la Raspberry Pi y láncelo desde la consola de administración o ejecútelo en modo depuración desde Visual Studio.

Si es la primera vez que ejecuta código desde Visual Studio para una aplicación Windows 10 IoT Core, eche un vistazo a estos artículos de Microsoft:

Eche un vistazo a la demostración en vídeo a continuación para ver la aplicación corriendo en una Raspberry Pi 3 conectada al DHT Tiny.

Destacados de la aplicación

La aplicación UWP de Windows 10 es una aplicación de demostración que muestra todas las características del DHT Tiny. El código muestra la temperatura actual, humedad y otros valores de registros del dispositivo. La UI también proporciona una forma de cambiar la configuración del dispositivo incluyendo la dirección del dispositivo.

Librería DHT Tiny

El código de ejemplo usa una librería escrita para interactuar con el DHT Tiny. Esta librería está lista para usar y puede incluirse directamente en todas sus aplicaciones.

Obtener la librería desde NuGet

Si no quiere incluir el proyecto directamente en su aplicación, simplemente descargue la librería DHT Tiny desde NuGet usando el comando que se muestra a continuación. Abra la Consola del Administrador de Paquetes en Visual Studio y escriba el comando.

PM> Install-Package IoT.DhtTiny

Escanear el bus I2C en busca del dispositivo

La librería DHT Tiny incluye un método que buscará en el bus I2C cualquier dispositivo DHT Tiny y devolverá una lista de direcciones. Esta lista puede usarse para inicializar uno o más de los dispositivos encontrados. Esto es especialmente útil si cambió la dirección del dispositivo pero no recuerda a qué la configuró. Nota: el método callback es opcional.

// ***
// *** Enumerar dispositivos DHT Tiny en el bus i2c.
// ***
IEnumerable<byte> address = await DhtTiny.FindAllDhtTinyAsync(this.FindAllDhtTinyCallback);
// ***
// *** Método callback
// ***
private void FindAllDhtTinyCallback(I2cScanEventArgs e) {
    int percentComplete = (int)((double)e.CurrentIndex / (double)e.Total * 100.0d);
    this.Status = string.Format("Locating devices [0x{0:X2}] [{1}%] [Found = {2:##0}]...", e.CurrentAddress, percentComplete, e.Items.Count());
}

Esquemáticos del DHT Tiny Breakout para Raspberry Pi

Demostración de software

Este vídeo demuestra tanto la Aplicación Universal corriendo en una Raspberry Pi 3 conectada al DHT Tiny en un breadboard.

[VÍDEO PRÓXIMAMENTE]

Crear el dispositivo final

La forma más fácil y rentable de crear la placa es usar una placa de prototipo PCB como la Perma-Proto Quarter-sized Breadboard PCB de Adafruit. La imagen de abajo muestra el breakout usando esta placa de prototipo. Nota: usé una Dremel para quitar las secciones de rail de alimentación de la placa.

Ver más: DHT Tiny Breakout para Raspberry Pi

Proceso de manufactura

  1. Monitorización profesional de temperatura con Raspberry Pi y DS18B20
  2. Construcción de una estación meteorológica exterior con Raspberry Pi 2 y ADS‑WS1
  3. Mida Sensores Analógicos en Raspberry Pi sin ADC Nativo
  4. Conectar sensor ultrasónico HC-SR04 a Raspberry Pi: guía práctica
  5. Los mejores accesorios para aprovechar al máximo tu Raspberry Pi
  6. Usar ADC MCP3008 para leer sensores analógicos con Raspberry Pi
  7. SIGHT: Gafas Inteligentes para Capacitar a Personas Ciegas
  8. SparkFun Qwiic HAT para Raspberry Pi – Guía Completa de Conexión
  9. Instalación de Windows 10 IoT Core en Raspberry Pi 3 Model B+: Guía Paso a Paso
  10. Construya su propio robot Raspberry Pi con el kit MonkMakes RRB2 – Guía detallada
  11. PiCy: Construya su propio mini robot alimentado por Raspberry Pi