Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

MKR1000 mit DHT22: Temperatur & Luftfeuchte in Echtzeit an Azure senden

Komponenten und Zubehör

Arduino MKR1000 (WiFi-fähig, SAMD21 Cortex-M0+) 1
DHT22 Temperatur- & Feuchtesensor (AM2302) 1

Apps und Online-Dienste

Über dieses Projekt

Paul DeCarlo beschrieb, wie man Wetterdaten von einem Particle Photon an Microsoft Azure sendet. Ich wollte dies mit dem **Arduino MKR1000** nachbauen. Der Photon nutzt einen Webhook über die Particle Cloud; der MKR1000 unterstützt **HTTPS direkt**, sodass Daten ohne Zwischenschicht an Azure gesendet werden können. Diese Anleitung verbindet den MKR1000 mit Azure und nutzt Serverseitig Code aus dem Microsoft-Projekt Connect the Dots.

Hardware

Der DHT22 misst Temperatur und Luftfeuchte. Auch DHT11 ist mit Code-Anpassung möglich.

Verdrahtung (Steckbrett):

MKR1000 mit DHT22: Temperatur & Luftfeuchte in Echtzeit an Azure senden

Details zum DHT22: Adafruit DHT Tutorial.

Arduino IDE einrichten

  1. Boardverwalter: **Arduino SAMD Boards** & **MKR1000** installieren.
  2. Bibliotheksverwalter: **WiFi101**, **DHT sensor library**, **ArduinoJson**, **RTCZero** installieren.

HTTPS & Zertifikate

Der MKR1000 unterstützt HTTPS, aber Zertifikate müssen manuell aufgespielt werden (begrenzter Speicher). Zweischrittig:

  1. In Arduino IDE: **Datei → Beispiele → WiFi101 → FirmwareUpdater** auf den MKR1000 laden.
  2. WiFi101 Firmware Updater Tool herunterladen, entpacken, winc1500-uploader-gui.exe starten.
  3. COM-Port wählen, Domäne ctd-ns.servicebus.windows.net (Azure Event Hubs) eintragen, Zertifikate hochladen.

MKR1000 mit DHT22: Temperatur & Luftfeuchte in Echtzeit an Azure senden

Arduino Sketch

  1. Sketch von GitHub: MKR1000-Azure klonen/herunterladen.
  2. Tab ssid bearbeiten: ssid[] und password[] anpassen.
  3. Auf MKR1000 hochladen.
  4. Serial Monitor öffnen – Datenversand an Azure prüfen.

MKR1000 mit DHT22: Temperatur & Luftfeuchte in Echtzeit an Azure senden

Der Sketch nutzt einen öffentlichen Event Hub aus Connect the Dots. Daten ansehen unter: connectthedotsdx.azurewebsites.net. Da öffentlich, mischen sich Daten mehrerer Sensoren. Eigene displayname oder guid in createJSON() setzen.

MKR1000 mit DHT22: Temperatur & Luftfeuchte in Echtzeit an Azure senden

Eigenen Event Hub erstellen (optional, empfohlen)

Benötigt: Visual Studio (Community Free) + Azure-Abo (kostenloser Test möglich).

  1. Connect the Dots Repo klonen.
  2. In Visual Studio: AzurePrep Solution öffnen (connectthedots\Azure\AzurePrep), in **Release Mode** ausführen.
  3. Azure-Login, Berechtigungen gewähren, Ressourcennamen wählen (Empfehlung: ctd + Initialen, z. B. ctddc).
  4. CreateWebConfig Target ausführen → web.config auf Desktop erzeugen.
  5. web.config in Website-Projekt (connectthedots\Azure\WebSite\ConnectTheDotsWebSite) kopieren und in Solution einbinden.
  6. Website in Microsoft Edge starten (läuft lokal).

SAS-Schlüssel für Arduino generieren

  1. Event Hubs Signature Generator (RedDog) herunterladen & starten.
  2. Namespace: ctddc-ns (Ihr Name), Hub: ehdevices, Publisher/Sender Key: D1, TTL: 525600 Min (1 Jahr).
  3. Im Azure Portal (alt): Event Hubs → Namespace → ehdevices → Configure → Primary Key für D1 kopieren.
  4. Key in Generator einfügen, **Generate** klicken, Signatur kopieren.

MKR1000 mit DHT22: Temperatur & Luftfeuchte in Echtzeit an Azure senden

Arduino Sketch anpassen

char hostname[] = "ctddc-ns.servicebus.windows.net";
char authSAS[]  = "SharedAccessSignature sr=ctddc-ns.servicebus.windows.net%2fehdevices...";

Sketch speichern, hochladen, Serial Monitor prüfen. Azure-Website zeigt nun Ihre Daten.

MKR1000 mit DHT22: Temperatur & Luftfeuchte in Echtzeit an Azure senden

Azure IoT Hub (Alternative, moderner)

IoT Hub unterstützt Device-to-Cloud und Cloud-to-Device. Einrichtung:

  1. Azure Portal: Neues IoT Hub erstellen.
  2. Device Explorer installieren.
  3. IoT Hub Connection String (iothubowner Primary Key) in Device Explorer eintragen, Update.
  4. Management Tab → Create Device ID D1 → SAS Token generieren.

MKR1000 mit DHT22: Temperatur & Luftfeuchte in Echtzeit an Azure senden

Sketch für IoT Hub anpassen

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

HTTP-Erfolgscode ändern: Event Hub = 201, **IoT Hub = 204**.

if (response.startsWith("HTTP/1.1 204")) { ... }

Sketch hochladen. In Device Explorer: **Data Tab → Monitor** klicken, um eingehende Daten zu sehen.

MKR1000 mit DHT22: Temperatur & Luftfeuchte in Echtzeit an Azure senden

Für Cloud-to-Device empfiehlt sich die Azure IoT SDK (nicht sehr Arduino-freundlich). Alternativ: Blogpost von Mohan Palanisamy (IoT Hub → MKR1000).

Ressourcen löschen, um Kosten zu vermeiden: AzurePrep Solution → ClearResources Projekt ausführen.

Nützliche Links & Tools

Schaltplan

Kein MKR1000 Fritzing-Teil verfügbar – Foto der Verdrahtung:

MKR1000 mit DHT22: Temperatur & Luftfeuchte in Echtzeit an Azure senden

Herstellungsprozess

  1. Arduino-Sensoren: Typen, Anwendungen und reale Projekte
  2. Feuchtesensoren: Funktionsweise und Hauptanwendungen
  3. DHT11 Sensor: Funktionsweise und Hauptanwendungen
  4. Automatisiertes Aeroponik-System mit Raspberry Pi und Feuchtigkeitssensor bauen
  5. Feuchtigkeitssensor verifizieren und kalibrieren für präzise Messungen
  6. DHT11 Temperatur- & Feuchtesensor mit LED-Anzeige & Piezo-Summer
  7. Arduino Temperatur- & Feuchtelogger mit DHT11 & Ethernet Shield
  8. Arduino Temperaturoverwachung & Echtzeituhr mit 3,2″ TFT-Display
  9. Sensorturm mit Arduino Cloud: Temperatur, Bewegung & Gase überwachen
  10. BME280 Temperatur, Luftfeuchte & Druck auf Nextion Touchscreen anzeigen