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

MKR1000 con DHT22: Monitorización de Temperatura y Humedad en Tiempo Real a Azure

Componentes y suministros

Componente Cantidad
Arduino MKR1000 1
Sensor de temperatura y humedad DHT22 1

Aplicaciones y servicios en línea

Sobre este proyecto

Paul DeCarlo tiene un excelente artículo enviando datos meteorológicos desde un Particle Photon a Microsoft Azure. Quería replicarlo con el nuevo Arduino MKR1000.

El Photon usa un webhook para enviar datos desde la nube de Particle a Azure. Como el MKR1000 soporta HTTPS nativamente, los datos pueden enviarse directamente a Azure. Esta guía conecta tu MKR1000 a Azure y reutiliza gran parte del código del lado servidor del proyecto Microsoft Connect the Dots.

Hardware

Se usa un sensor DHT22 para medir temperatura y humedad. También se puede adaptar el código para DHT11. Cableado en protoboard:

MKR1000 con DHT22: Monitorización de Temperatura y Humedad en Tiempo Real a Azure

Más info: Tutorial DHT de Adafruit.

Arduino IDE

  1. Abre Arduino IDE.
  2. Gestor de tarjetas: instala Arduino SAMD Boards (incluye MKR1000).
  3. Gestor de librerías: instala WiFi101, DHT sensor library, ArduinoJson, RTCZero.

HTTPS y certificados

El MKR1000 soporta HTTPS, pero hay que cargar manualmente los certificados TLS de los sitios a visitar (memoria limitada). Proceso en dos pasos:

  1. Carga el sketch Firmware Updater (incluido en librería WiFi101) en la placa.
  2. Descarga WiFi101 Firmware Updater, descomprime y ejecuta winc1500-uploader-gui.exe.
  3. El certificado HTTPS para Azure Event Hubs se emite a servicebus.windows.net. Ingresa ctd-ns.servicebus.windows.net en el campo de texto, elige tu puerto COM y sube los certificados.

MKR1000 con DHT22: Monitorización de Temperatura y Humedad en Tiempo Real a Azure

Sketch de Arduino

  1. Clona o descarga el sketch desde GitHub.
  2. Edita la pestaña ssid y cambia ssid[] y password[] a tu red Wi-Fi.
  3. Sube el sketch al MKR1000.
  4. Si hay errores, instala las librerías faltantes desde el Gestor de librerías.
  5. Abre el Monitor Serie (Herramientas → Monitor Serie) y verifica que se envían datos a Azure.

MKR1000 con DHT22: Monitorización de Temperatura y Humedad en Tiempo Real a Azure

El sketch reutiliza un Event Hub del proyecto Connect the Dots, así que puedes usar la web app existente para ver los datos: connectthedotsdx.azurewebsites.net. Verás datos del MKR1000 mezclados con otros sensores. Si varios usan este código, cambia displayname o guid en la función createJSON.

MKR1000 con DHT22: Monitorización de Temperatura y Humedad en Tiempo Real a Azure

Crear tu propio Event Hub

Para tener tus datos aislados, crea tu propio Event Hub. Necesitas Visual Studio y suscripción Azure (prueba gratuita disponible).

  1. Clona el proyecto Connect the Dots: git clone https://github.com/Azure/connectthedots.git
  2. Usa el proyecto AzurePrep (en connectthedots\Azure\AzurePrep) para crear recursos automáticamente. Ábrelo en Visual Studio y ejecuta en Release Mode.
  3. Inicia sesión en Azure, concede permisos y responde preguntas en terminal. Elige nombre de recursos (ej. ctddc = ctd + iniciales).
  4. Ejecuta el target CreateWebConfig en AzurePrep para generar web.config en el Escritorio.
  5. Copia web.config a connectthedots\Azure\WebSite\ConnectTheDotsWebSite.
  6. Abre la solución ConnectTheDotsWebsite en Visual Studio, añade web.config al proyecto (Click derecho → Add → Existing Item).
  7. Ejecuta el proyecto en Microsoft Edge. No verás datos hasta actualizar el sketch del MKR1000.

MKR1000 con DHT22: Monitorización de Temperatura y Humedad en Tiempo Real a Azure

Generar clave SAS para el sketch:

  1. Descarga Event Hubs Signature Generator (RedDog.ServiceBus.EventHubs.SignatureGenerator).
  2. Rellena: Namespace (ej. ctddc-ns), Hub name (ehdevices), Publisher y Sender key name (D1), Token TTL (525,600 min = 1 año).
  3. En Azure Portal (portal antiguo): Busca Event Hubs → Tu namespace → ehdevices → Configure → Copia la Primary Key para D1.
  4. Pega la key en el generador y pulsa Generate. Copia la firma generada.

MKR1000 con DHT22: Monitorización de Temperatura y Humedad en Tiempo Real a Azure

MKR1000 con DHT22: Monitorización de Temperatura y Humedad en Tiempo Real a Azure

MKR1000 con DHT22: Monitorización de Temperatura y Humedad en Tiempo Real a Azure

MKR1000 con DHT22: Monitorización de Temperatura y Humedad en Tiempo Real a Azure

Actualizar sketch con tus credenciales:

char hostname[] = "ctddc-ns.servicebus.windows.net";
char authSAS[] = "SharedAccessSignature sr=ctddc-ns.servicebus.windows.net%2fehdevices%2fpublishers%2fD1%2fmessages%3fapi-version%3d2014-05&sig=...&se=...";

Guarda y sube al MKR1000. Verifica en Monitor Serie y en la web app (Edge) que aparecen tus datos.

MKR1000 con DHT22: Monitorización de Temperatura y Humedad en Tiempo Real a Azure

MKR1000 con DHT22: Monitorización de Temperatura y Humedad en Tiempo Real a Azure

IoT Hub (alternativa moderna)

Azure IoT Hub es más reciente que Event Hub y soporta mensajería dispositivo-nube y nube-dispositivo.

  1. Crea un IoT Hub en Azure Portal.
  2. Descarga Device Explorer (SetupDeviceExplorer.msi).
  3. En Azure Portal, abre tu IoT Hub → Icono llave → iothubowner → Copia connection string (primary key).
  4. Abre Device Explorer, pega connection string, Update.
  5. Pestaña Management → Create → Device ID: D1 → Create.
  6. Selecciona fila D1 → SAS Token → Generate → Copia token (solo la parte tras SharedAccessSignature=).

MKR1000 con DHT22: Monitorización de Temperatura y Humedad en Tiempo Real a Azure

MKR1000 con DHT22: Monitorización de Temperatura y Humedad en Tiempo Real a Azure

MKR1000 con DHT22: Monitorización de Temperatura y Humedad en Tiempo Real a Azure

MKR1000 con DHT22: Monitorización de Temperatura y Humedad en Tiempo Real a Azure

MKR1000 con DHT22: Monitorización de Temperatura y Humedad en Tiempo Real a Azure

Modificar sketch para IoT Hub:

char hostname[] = "tuiothub.azure-devices.net";
char authSAS[] = "SharedAccessSignature sr=tuiothub.azure-devices.net%2fdevices%2fD1&sig=...&se=...";
String deviceName = "D1";
String uri = "/devices/" + deviceName + "/messages/events?api-version=2016-02-03";

Cambia la comprobación de respuesta HTTP: Event Hub devuelve 201, IoT Hub devuelve 204.

// Cambia:
if (response.startsWith("HTTP/1.1 201"))
// Por:
if (response.startsWith("HTTP/1.1 204"))

Sube el sketch. En Device Explorer, pestaña Data → Monitor para ver datos llegando al Event Hub.

MKR1000 con DHT22: Monitorización de Temperatura y Humedad en Tiempo Real a Azure

Este proyecto usa HTTP POST para dispositivo-nube. Existen librerías Azure IoT para Arduino, pero aún no son muy "Arduino-like". Si necesitas nube-dispositivo, revisa el post de Mohan Palanisamy sobre envío de IoT Hub a MKR1000.

Recuerda apagar/borrar recursos Azure que no uses para evitar cargos. El proyecto AzurePrep incluye ClearResources para limpiar.

Código y herramientas

Esquemáticos

Foto del cableado (no hay pieza MKR1000 en Fritzing). Ver detalles en el texto.

MKR1000 con DHT22: Monitorización de Temperatura y Humedad en Tiempo Real a Azure

Proceso de manufactura

  1. Construye un sistema aeropónico automatizado con Raspberry Pi y sensor de humedad
  2. Verifica y calibra tu sensor de humedad para mediciones precisas
  3. Proyecto Sensor DHT11 Temperatura y Humedad con Indicadores LED y Altavoz Piezo
  4. Registrador de Temperatura y Humedad con Arduino, DHT11 y Ethernet Shield
  5. Monitor de Temperatura y Reloj en Tiempo Real con Arduino Due y Pantalla TFT 3.2"
  6. Construye una Torre de Sensores con Arduino Cloud: Temperatura, Movimiento y Gas
  7. Visualiza Temperatura, Humedad y Presión BME280 en Pantalla Táctil Nextion
  8. Leer Temperatura y Humedad con DHT11 en Blynk – Tutorial Paso a Paso con Arduino
  9. Sensores para Arduino: Tipos, Aplicaciones y Proyectos Reales
  10. Sensores de Humedad: Funcionamiento y Aplicaciones Clave
  11. Sensor DHT11: Funcionamiento y Aplicaciones Principales