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
- Microsoft Azure
- Arduino IDE
- Microsoft Visual Studio 2015 (Community)
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:
- Pin 1 del DHT22 → 3.3V del MKR1000
- Pin 2 del DHT22 → Pin 6 del MKR1000 (datos), con resistencia pull-up de 10 kΩ a 3.3V
- Pin 3 del DHT22 → No conectado (o GND según modelo)
- Pin 4 del DHT22 → GND

Más info: Tutorial DHT de Adafruit.
Arduino IDE
- Abre Arduino IDE.
- Gestor de tarjetas: instala Arduino SAMD Boards (incluye MKR1000).
- 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:
- Carga el sketch Firmware Updater (incluido en librería WiFi101) en la placa.
- Descarga WiFi101 Firmware Updater, descomprime y ejecuta
winc1500-uploader-gui.exe. - El certificado HTTPS para Azure Event Hubs se emite a
servicebus.windows.net. Ingresactd-ns.servicebus.windows.neten el campo de texto, elige tu puerto COM y sube los certificados.

Sketch de Arduino
- Clona o descarga el sketch desde GitHub.
- Edita la pestaña
ssidy cambiassid[]ypassword[]a tu red Wi-Fi. - Sube el sketch al MKR1000.
- Si hay errores, instala las librerías faltantes desde el Gestor de librerías.
- Abre el Monitor Serie (Herramientas → Monitor Serie) y verifica que se envían datos 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.

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).
- Clona el proyecto Connect the Dots:
git clone https://github.com/Azure/connectthedots.git - Usa el proyecto AzurePrep (en
connectthedots\Azure\AzurePrep) para crear recursos automáticamente. Ábrelo en Visual Studio y ejecuta en Release Mode. - Inicia sesión en Azure, concede permisos y responde preguntas en terminal. Elige nombre de recursos (ej.
ctddc= ctd + iniciales). - Ejecuta el target CreateWebConfig en AzurePrep para generar
web.configen el Escritorio. - Copia
web.configaconnectthedots\Azure\WebSite\ConnectTheDotsWebSite. - Abre la solución
ConnectTheDotsWebsiteen Visual Studio, añadeweb.configal proyecto (Click derecho → Add → Existing Item). - Ejecuta el proyecto en Microsoft Edge. No verás datos hasta actualizar el sketch del MKR1000.

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




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.


IoT Hub (alternativa moderna)
Azure IoT Hub es más reciente que Event Hub y soporta mensajería dispositivo-nube y nube-dispositivo.
- Crea un IoT Hub en Azure Portal.
- Descarga Device Explorer (SetupDeviceExplorer.msi).
- En Azure Portal, abre tu IoT Hub → Icono llave →
iothubowner→ Copia connection string (primary key). - Abre Device Explorer, pega connection string, Update.
- Pestaña Management → Create → Device ID:
D1→ Create. - Selecciona fila D1 → SAS Token → Generate → Copia token (solo la parte tras
SharedAccessSignature=).





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.

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
- Device Explorer – Herramienta para IoT Hub. Descarga
- Connect the Dots – Código de ejemplo Azure. GitHub
- MKR1000-Arduino – Código fuente Arduino. GitHub
- WiFi101 Firmware Updater – Cargar certificados TLS. GitHub
- Event Hubs Signature Generator – Generar credenciales Azure. GitHub
Esquemáticos
Foto del cableado (no hay pieza MKR1000 en Fritzing). Ver detalles en el texto.

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