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

Sensor de temperatura DHT11 / DHT22

Componentes y suministros

Sensor de temperatura y humedad DHT11 (4 pines)
× 1
Raspberry Pi 2 Modelo B
× 1
Arduino UNO
× 1
Cable de puente macho a macho
× 3
Breadboard (genérico)
× 1
Resistencia de 4.7K Ω
× 1
Cobbler Breakout Kit
× 1

Aplicaciones y servicios en línea

Microsoft Windows 10 IoT Core
Arduino IDE
Raspberry Pi Raspbian
Microsoft Visual Studio 2015
WinSCP
PuTTY

Acerca de este proyecto

Introducción

Antecedentes

El DHT11 es un sensor de temperatura y humedad de 4 clavijas (una clavija no se usa) capaz de medir entre 20% y 90% de humedad relativa y entre 0 y 50 ° C. El sensor puede funcionar entre 3 y 5,5 V CC y se comunica mediante su propio protocolo OneWire patentado. Este protocolo requiere una sincronización muy precisa para obtener los datos del sensor. Los bits BAJO y ALTO se codifican en el cable por el tiempo que la señal es ALTA. El tiempo total para tomar una lectura es como máximo de 23,4 ms. Esto incluye un retraso de 18 ms necesario para iniciar la transferencia de datos y una ventana de hasta 5,4 ms para los datos. Las señales individuales pueden ser tan cortas como 20 μs y tan largas como 80 μs.

Cuando Windows 10 IoT Core estuvo disponible por primera vez, tomé mi Raspberry Pi 2 y mi sensor DHT11 y lo probé en C #. Rápidamente descubrí que no iba a funcionar. El problema con C # en Windows 10 IoT Core es que simplemente no va a ser lo suficientemente rápido (al menos no ahora).

Publiqué en el foro de Microsoft y tuve algunos intercambios con otros desarrolladores que tenían la misma lucha. Finalmente encontré una respuesta de Microsoft sobre el protocolo OneWire en Windows 10 IoT Core que decía:

Después de un tiempo recibí una respuesta a mi publicación que decía:

Bueno, eso será genial y estoy realmente emocionado con la próxima capacidad, pero ¿quién puede esperar? Recientemente vi que Microsoft publicó una muestra sobre cómo admitir un protocolo OneWire usando DHT11 como sensor de muestra y usando C ++ en Windows 10 IoT Core. Vi esto como una oportunidad para llevarlo a C #.

Este proyecto trata de convertir esa muestra en una biblioteca que se puede usar en C #. Agradezco a la persona que escribió la biblioteca para ayudar a que este popular sensor sea útil en Windows 10 IoT Core y, con suerte, con esta biblioteca será aún más útil.

Biblioteca

La biblioteca que creé es una simple refactorización del código publicado originalmente por Microsoft, por lo que no me atribuyo el trabajo realizado para obtener la lectura del sensor.

La biblioteca presenta una clase simple llamada Dht11 en el espacio de nombres Sensors.Dht . Crear un nuevo objeto en C # es simple.

Primero abra el pin GPIO que tiene el pin del sensor DHT11 conectado.

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

Luego, pase este pin al constructor del Dht11 class y especifique el modo GPIO Pin Drive. Esto le permite decidir si agregará su propia resistencia pull-up.

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

Para obtener una lectura del dispositivo, use GetReadingAsync método.

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

Hay una sobrecarga que permite especificar el valor máximo de reintento. El valor predeterminado es 20. Esto especifica cuántos intentos se deben hacer para leer el sensor antes de darse por vencido y devolver una lectura fallida.

El DhtReading la estructura se define como:

  estructura de valor público DhtReading {bool TimedOut; bool IsValid; temperatura doble; doble humedad; int RetryCount;};  

Observaciones

Aunque el sensor funciona en C ++, todavía no obtiene una lectura cada vez. Por lo tanto, la necesidad de una opción de reintento en la clase (esto es en realidad parte del ejemplo de Microsoft). Pensé que sería mejor comparar esto con otras plataformas para ver cómo funciona. Probé el código en la Raspberry Pi 2 con Raspbian y en un Arduino Uno. El código que usé para ambos se ha incluido en el repositorio de GitHub.

El video incluido en este proyecto demostrará y comparará el resultado de cada una de estas plataformas.

Comenzando

Ensamble el circuito para Raspberry Pi 2

Use esta guía para ensamblar el circuito mientras usa el diagrama ubicado cerca de la parte inferior de la página como guía (tenga en cuenta que el color de los cables es opcional y ha sido seleccionado para ayudar a que el circuito sea fácil de seguir cuando se construya).

  • Coloque el zapatero en forma de T en el extremo izquierdo de la tabla de tamaño medio + (donde los números comienzan en 1). Los dos pines más a la izquierda estarán en E1 y F1 a bordo. Los dos pines más a la derecha estarán en E20 y F20
  • Coloque la resistencia de 4,7 K Ω entre A4 y 3V3
  • Conecte un cable de puente macho a macho naranja entre B4 y F28
  • Conecte un cable de puente rojo macho a macho entre F29 y 3V3
  • Conecte un cable de puente macho a macho negro entre F30 y GND
  • Coloque los sensores DHT11 en J30 (-), J29 (+) Y J28 (s)
  • Enchufe el cable plano en el zapatero y la Raspberry Pi

Ensamble el circuito para Arduino

Use esta guía para ensamblar el circuito mientras usa el diagrama ubicado cerca de la parte inferior de la página como guía (tenga en cuenta que el color de los cables es opcional y ha sido seleccionado para ayudar a que el circuito sea fácil de seguir cuando se construya).

  • Coloque la resistencia de 4,7 K Ω entre E12 y E13
  • Conecte un cable de puente macho a macho blanco entre D13 y Pin 5 en el Arduino
  • Conecte un cable de puente rojo macho a macho entre D12 y el 5V pin en el Arduino
  • Conecte un cable de puente macho a macho negro entre D11 y GND en el Arduino
  • Coloque los sensores DHT11 en A11 (-), A12 (+) y A13 (s)
  • Conecte el cable USB de su computadora a su Arduino

A continuación se muestran fotos de los circuitos que construí.

Inicio de la aplicación para Raspberry Pi

Elija Depurar, Configuración ARM y Máquina remota. Ahora haga clic con el botón derecho en el proyecto, seleccione Propiedad y luego haga clic en Etiqueta de depuración. A continuación, coloque la dirección IP de Raspberry Pi 2 en el campo Máquina remota y desmarque Usar autenticación.

Presione F5 . La aplicación se implementará en el dispositivo, lo que puede tardar unos minutos la primera vez.

Inicio de la aplicación para Arduino

El boceto de este proyecto está disponible en GitHub en un archivo llamado Dht11_Speed ​​ . Inicie el IDE de Arduino y abra el boceto. Sube el boceto al Arduino ( Ctrl U ) Y luego inicie Serial Monitor ( Ctrl Shift M )

Si no está seguro de cómo hacer esto o es nuevo en este entorno, el video a continuación le mostrará cómo hacerlo.

Inicio de la aplicación para Raspbian

El código C para Raspberry Pi está disponible en GitHub para este proyecto en un archivo llamado Dht11.c . La fuente debe copiarse en Raspberry Pi y luego compilarse allí. Me gusta usar WinSCP para copiar archivos. Si no tienes esta aplicación te recomiendo que la descargues e instales ahora. El código fuente utiliza cableadoPi, que debe instalarse antes de compilar la aplicación.

El comando para compilar el código en la Raspberry Pi es:

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

Para ejecutar la aplicación, ingrese el comando:

  sudo ./Dht11_Speed ​​1000 10  

Donde 1000 especifica un retraso de 1000 ms (1 segundo) y 10 es el número de muestras para leer.

El video demostrará con más detalle cómo copiar el código y cómo compilarlo en la Raspberry Pi con Raspbian. Para aprender cómo cargar Raspbian en su Raspberry Pi, vaya a https://www.raspberrypi.org/downloads/raspbian/.

Video

El siguiente video es una demostración de la aplicación:

Vea este video en You Tube usando el modo Teatro para obtener la mejor calidad.

Código

Código fuente de Visual Studio 2015 C # / C ++
https://github.com/porrey/dht.git

Esquemas

Dht11_RPi2.fzz Dht11_Arduino.fzz

Proceso de manufactura

  1. DS18B20 Sensor de temperatura
  2. Registrador de temperatura Raspberry Pi
  3. Biblioteca Python del sensor de temperatura TMP006 con Raspberry pi,
  4. Sensor de temperatura Python y Raspberry Pi
  5. Sensor de temperatura de 1 cable DS1820 en Raspberry Pi (GPIO directamente)
  6. Sensor de termómetro digital de 1 cable Raspberry Pi (DS18B20)
  7. Sensor de temperatura y luz Raspberry Pi
  8. Sensor de temperatura Raspberry Pi
  9. Proyecto de IoT basado en Raspberry PI que conecta el sensor DHT11
  10. Sensor de temperatura del rodamiento | detector
  11. Medición de temperatura del sensor infrarrojo