DHT11 y DHT22 son dos modelos de una misma familia de sensores, que permiten realizar la medición simultánea de temperatura y humedad usando ademas un único hilo para comunicar los datos vía serie, para lo cual ambos disponen de un procesador interno que realiza el proceso de medición, proporcionando la medición mediante una señal digital, por lo que resulta muy sencillo obtener la medición desde un microprocesador como Arduino o ESP8266.
Ambos son similares ( DHT11 presenta una carcasa azul , mientras que el sensor DHT22 es blanco) compartiendo además los mismos pines disponiendo de 4 patillas, de las cuales usaremos sólo 3: Vcc, Output y GND. Como peculiaridad ,la salida la conectaremos a una entrada digital , pero necesitaremos poner una resistencia de 10K entre Vcc y el Pin Output.
El DHT11 puede medir temperaturas entre 0 a 50, con una precisión de 2ºC, humedad entre 20 a 80%, con precisión del 5% y con una a frecuencia de muestreo de 1 muestras por segundo (1 Hz)
- Medición de temperatura entre -40 a 125, con una precisión de 0.5ºC
- Medición de humedad entre 0 a 100%, con precisión del 2-5%.
- Frecuencia de muestreo de 2 muestras por segundo (2 Hz)
Destacar que este tipo de sensores de temperatura ( y, aún más, los sensores de humedad) , son sensores con elevada inercia y tiempos de respuesta elevados. Es decir, al “lentos” para reflejar los cambios en la medición.
Conectar el DHT11 o el DHT22 a un Arduino o ESP82366 es sencillo, simplemente alimentamos desde Arduino al sensor a través de los pines GND y Vcc del mismo. Por otro lado, conectamos la salida Output a una entrada digital de Arduino. Necesitaremos poner una resistencia de 10K entre Vcc y el Pin Output.
El esquema eléctrico queda como la siguiente imagen
Los sensores DHT11 y DHT22 usan su propio sistema de comunicación bidireccional mediante un único hilo , empleando señales temporizadas por lo que en general, lo normal es que empleemos una librería existente para simplificar el proceso.Por ejemplo podemos usar la librería de Adafruit disponible en este enlace.
Una vez descargada e instalada la librería por ejemplo podemos capturar la información de un sensor DHT11 con este código :
Conexión de un DHTXX a un ESP8266
Para resultados mas profesionales puede usar un DHT22 ( es el usado en el ejemplo ) , pero como hemos comentado el DHT11 para fines experimentales es también aceptable .
Las simples conexiones la puede utilizar una placa de pruebas, y cables de puente o directamente con cablecillos para realizar las conexiones de la siguiente manera:
Para los pines del sensor, usaremos el siguiente cableado:
Start (Sensor) | Fin (Junta) | Color del cable |
---|---|---|
VDD (Pin 27F) | 3V (Pin 8A) | cable rojo |
DATOS (Pin 28F) | GPIO 2 (Pin 9A) | Cable blanco |
GND (Pin 30F) | GND (Pin 7J) | Cable negro |
- Esta modelo de placa , como vemos, no necesita resistencia entra la salida binaria y vcc
- Para obtener más información de esta placa , consulte: configuración del sensor DHT22 y especificación Sparkfun ESP8266 Thing Dev
Por ultimo utilice un cable USB Micro USB a Tipo A para conectar Sparkfun ESP8266 Thing Dev a su ordenador
Crear un centro de IoT
- Inicie sesión en el portal de Azure .
- Seleccione Crear un recurso > Internet de las cosas > IoT Hub .
- En el panel de hub de IoT , ingrese la siguiente información para su hub de IoT:
- Nombre : crea un nombre para tu hub de IoT. Si el nombre que ingresa es válido, aparece una marca de verificación verde.
- Nivel de precios y escala : para este tutorial, seleccione el nivel F1 – Gratuito .
- Grupo de recursos : cree un grupo de recursos para alojar el concentrador de IoT o use uno existente.
- Ubicación : Seleccione la ubicación más cercana para usted.
- Fijar al tablero : marque esta opción para acceder fácilmente a su hub de IoT desde el tablero.
- Haga clic en Crear . Su hub de IoT puede tardar unos minutos en crearse. Puede controlar el progreso en el panel de notificaciones .
Ahora que ha creado un concentrador de IoT, ubique la información importante que usa para conectar dispositivos y aplicaciones a su hub de IoT.
- Después de crear su concentrador de IoT, haga clic en él en el tablero. Tome nota del nombre de host y luego haga clic en Directivas de acceso compartido .
- En el panel Políticas de acceso compartido , haga clic en la política iothubowner , y luego copie y anote la cadena de conexión de su centro IoT.
Registre un dispositivo en el hub de IoT para su dispositivo
- En el portal de Azure , abra su concentrador de IoT.
- Haga clic en Explorador de dispositivos .
- En el panel Explorador de dispositivos, haga clic en Agregar para agregar un dispositivo a su centro de IdC.
- Luego ingrese la ID del nuevo dispositivo en:ID del dispositivo ( Debe saber que los ID de dispositivo son sensibles a mayúsculas y minúsculas)
- Tipo de autenticación : Seleccione la clave simétrica
- Generar claves automáticamente : seleccione esta casilla de verificación.
- Conecte el dispositivo al Hub de IoT : haga clic en Habilitar .
- Haga clic en Guardar .
- Después de que se crea el dispositivo, abra el dispositivo en el panel Explorador de dispositivos .
- Tome nota de la clave principal de la cadena de conexión.
Reúna los datos del sensor y envíelos a su centro de IoT
En el ejemplo se implementa y ejecuta una aplicación de muestra en Sparkfun ESP8266 Thing Dev. La aplicación parpadea el LED en Sparkfun ESP8266 Thing Dev y envía los datos de temperatura y humedad recopilados del sensor DHT22 a su hub de IoT.
Obtenga la aplicación de muestra de GitHub
La aplicación de ejemplo está alojada en GitHub. Clone el repositorio de muestras que contiene la aplicación de muestra de GitHub. Para clonar el repositorio de muestras, siga estos pasos:
- Descargue e instale el programa Git ,por ejemplo desde https://gitforwindows.org/
- Abra un símbolo del sistema o una ventana de terminal.
- Vaya a una carpeta donde desea que se almacene la aplicación de muestra.
- Ejecute el Git
- Ahora desde el interfaz del Git en modo comando ejecute
git clone https://github.com/Azure-Samples/iot-hub-SparkFun-ThingDev-client-app.git
Instale ahora el paquete para el ESP8266 en Arduino IDE:
- Abra la carpeta donde se almacena la aplicación de muestra que descargo desde el comando git clone.
- Abra el archivo app.ino en la carpeta de la aplicación en Arduino IDE.
- En el IDE de Arduino, haga clic en Archivo > Preferencias .
- En el cuadro de diálogo Preferencias , haga clic en el icono que se encuentra junto al cuadro de texto Direcciones URL del administrador de tarjetas adicionales .
- En la ventana emergente, ingrese la siguiente URL
http://arduino.esp8266.com/stable/package_esp8266com_index.json
- Haga luego haga clic en Aceptar .
- En el cuadro de diálogo Preferencias , haga clic en Aceptar .
- Haga clic en Herramientas > Placa > Administrador de placas , y luego busque esp8266. Se debe instalar ESP8266 con una versión de 2.2.0 o posterior.En caso del ESP12E DEVKIT V2, seleccione NodeMCU 1.0(ESP-12E Module)
Instalación de las bibliotecas necesarias
- En el IDE de Arduino, haga clic en Programa > Incluir libreria> Gestionar librerias .
- Busque los siguientes nombres de biblioteca una por una:
AzureIoTHub
AzureIoTUtility
AzureIoTProtocol_MQTT
ArduinoJson
DHT sensor library
Adafruit Unified Sensor
- Para cada una de las bibliotecas que encuentre, haga clic en Instalar .
Implementar la aplicación de muestra para ESP8266
- En el IDE de Arduino, haga clic en Herramienta > Puerto , y luego haga clic en el puerto serie que le presente el interfaz de Arduino para el ESP8266(por ejemplo «COM3» )
- Haga clic en Programa > Subir para crear e implementar la aplicación de muestra en ESP8266 .
Ingrese sus credenciales
Después de que la carga se complete con éxito, siga los pasos para ingresar sus credenciales:
- En el IDE de Arduino, haga clic en Herramientas > Monitor en serie .
- En la ventana del monitor de serie, observe las dos listas desplegables en la esquina inferior derecha.
- Seleccione Sin final de línea para la lista desplegable de la izquierda.
- Seleccione 115200 baudios para la lista desplegable de la derecha.
- En el cuadro de entrada ubicado en la parte superior de la ventana del monitor serie, ingrese la siguiente información si se le solicita que los proporcione y luego haga clic en Enviar .
- Wi-Fi SSID
- Contraseña de wifi
- Cadena de conexión del dispositivo
Nota:La información de credenciales se almacena en la EEPROM del ESP8266 Si hace clic en el botón de reinicio en la placa ESP8266 , la aplicación de muestra le pregunta si desea borrar la información. Ingrese Y
para borrar la información y se le pedirá que proporcione la información nuevamente.
Verifique que la aplicación de muestra se esté ejecutando correctamente
Si ve la siguiente salida de la ventana del monitor serie y el LED parpadeante en la placa ESP8266 la aplicación de muestra se está ejecutando correctamente.
Nota:Si está utilizando otras placas ESP8266, puede seguir estos pasos para conectarlo a su hub de IoT. Según la placa ESP8266 que esté utilizando, es posible que necesite reconfigurar el LED_PIN
. Por ejemplo, si está usando ESP8266 de AI-Thinker, puede cambiarlo de 0
a 2
.
Fuente https://docs.microsoft.com/en-gb/azure/iot-hub/iot-hub-sparkfun-esp8266-thing-dev-get-started
6 respuestas a “Envío de datos a la nube de Azure desde ESP8266 usando DHT11 o DHT22”