Arduino MKR OTA-Programmierung mit Sprachsteuerung & Extras
Komponenten und Zubehör
| Komponente | Menge | Hinweis |
|---|---|---|
| Arduino MKR1000 | 1 | Basis für alle OTA-Projekte; weitere Teile nur für das Beispiel (Raumthermostat) |
| DHT11 Temperatur- & Feuchtesensor (4 Pins) | 1 | Für Thermostat-Beispiel |
| Relais (generisch) | 1 | Heizungssteuerung |
| Steckbrett (Breadboard) | 1 | Aufbau |
Apps und Online-Dienste
- Arduino IDE
- Microsoft Azure IoT Hub
- Microsoft Visual Studio 2015 (UWP – Universal Windows Platform)
- Microsoft Project Oxford (Speech Recognition API)
Projektübersicht
Überblick
Das Projekt besteht aus zwei Teilen:
Teil 1: Wiederverwendbare Komponenten-Framework für IoT-Projekte mit nützlichen Features:
- Over-the-Air (OTA) Programmierung des Arduino MKR1000 (hochladen von kompiliertem Binärcode). Mehrere Methoden: im LAN, über Internet, sicher via Microsoft Azure IoT Hub.
- UWP-Client-App mit schöner Benutzeroberfläche. Kommuniziert sicher mit dem Board über Azure IoT Hub.
- Spracherkennung (in der Client-App) via Microsoft Project Oxford Speech Recognition API. Gesprochene Befehle steuern das Board über Azure IoT Hub.
Teil 2: Anwendungsbeispiel – Raumthermostat, gesteuert per Smartphone (UWP-App). Dient als Demonstrationsprojekt für die Komponenten. Wir betreiben es produktiv in unserem Büro – die Heizung wird während des Schreibens dieser Zeilen von diesem Projekt gesteuert.
Teil 1: Die wiederverwendbaren OTA-Komponenten
OTA-Funktionsprinzip
Entwickelte Komponenten:
Für Arduino IDE:
- Laufzeit-Bibliothek – handhabt Firmware-Upload und Copy-Mechanik.
- Eigenes „Boards“-Paket – Linker-Einstellungen für die Bibliothek.
- Arduino IDE Plugin – sendet Download-Signale und kompilierte Binaries (Firmware). Kommuniziert mit Board, Azure IoT Hub, IoT Dispatcher Server.
Auf Drittanbieter-Server (z. B. Azure Web Site):
- IoT Dispatcher – PHP + MySQL Anwendung, speichert und stellt Firmware bereit.
UWP-App Funktionsprinzip
- UWP-Client-App in C#. Kommunikation mit Board via Azure IoT Hub, Spracherkennung via Microsoft Project Oxford. Als Startpunkt für diverse Projekte nutzbar.
OTA-Demo
Teil 2: Anwendungsfall – Raumthermostat
Entwickelt, um die Komponenten in einem echten Projekt zu demonstrieren. Läuft produktiv in unserem Büro.
Logik:
- Temperatur < Sollwert → Relais (Heizung) EIN
- Temperatur > Sollwert → Relais/Heizung AUS
- UWP-Client: Statusanzeige, Sollwert-Einstellung per Textfeld oder Sprache
1. Hardware aufbauen
Kein Fritzing-Schaltplan, da Beta-MKR1000 verwendet (Pin-Layout kann sich ändern).
2. Entwicklungsumgebung für OTA & Azure IoT Hub einrichten
- Arduino IDE ≥ 1.6.7 installieren
- Arduino SAMD Boards installieren: Werkzeuge → Board: ... → Boardverwalter → „Arduino SAMD Boards“
- Bibliotheken in
SKETCHBOOK_DIR/libraries(z. B.Dokumente/Arduino/libraries) entpacken:WiFi101,AzureIoT,RTCZero
Unsere Komponenten:
- OTA Laufzeit-Bibliothek in
SKETCHBOOK_DIR/libraries - Eigenes „Boards“-Paket: Verzeichnis
SKETCHBOOK_DIR/hardware/flower-platformanlegen, Download dort entpacken - Arduino IDE Plugin: Verzeichnis
SKETCHBOOK_DIR/toolsanlegen, Download dort entpacken
Für sicheres OTA via Internet/HTTPS:
- IoT Dispatcher auf PHP+MySQL-Server installieren (Anleitung für Azure Cloud Deployment vorhanden)
3. OTA testen – Drei Upload-Methoden
Methode 1: OTA via LAN
Datei → Beispiele → Arduino-FlowerOTA → WiFiOTA. Zeilen mit // CHANGE ME anpassen (IP, WLAN, SSL, Server-Signatur). Dann Flower Platform → Upload OTA ...
Verwenden:
WiFiClient client;
ota.begin(&udp, &client, "1hvtdliHzKLjMykvfW1MfPwsFthUU/YfjN8fOZJ3Qhc="); // Server-Signatur aus Dialog
Hinweis: Bei allen 3 Methoden ist ein erstmaliger USB-Upload nötig. Danach OTA nach Wahl.
Methode 2: OTA via sicherer Dispatcher
Gleiche Beispieldatei. Verwenden:
WiFiSSLClient client;
ota.begin(&udp, &client, "my-iot-dispatcher-upload-key"); // In IoT Dispatcher (PHP) konfiguriert
Methode 3: OTA via Dispatcher + Azure IoT Hub
Datei → Beispiele → Arduino-FlowerOTA → WiFiOTA-AzureIoTHub. Wieder // CHANGE ME Zeilen anpassen.
Methode 4: Anwendungsbeispiel – Raumthermostat
Verfügbar im Repository.
4. Benutzeroberfläche testen (UWP-App mit Azure IoT Hub & Spracherkennung)
UWP-Projekt im Repository. Benötigt: Visual Studio 2015 + Windows 10.
Verbindungsparameter anpassen (aus Azure Portal):
// SendCloudToDevice.cs
class SendCloudToDevice {
private const string HOST = "???.azure-devices.net";
private const string DEVICE_ID = "???";
private const string DEVICE_KEY = "???";
static string sharedAccessKeyName = "???";
static string sharedAccessKey = "???";
}
// ReadDeviceToCloud.cs
class ReadDeviceToCloud {
private static string ConnectionString = "???";
private static string eventHubEntity = "???";
}
Code als Startpunkt für eigene Client-Apps – nur UI anpassen.
Zukünftige Schritte
Boards wie der MKR1000 (rechenstark, SSL-fähig) sind ein großer Schritt für Maker. Wir entwickeln weiter: Flower Platform IoT – ein Online-Service, der IoT-Projekte massiv beschleunigt:
- Entwicklung: OOP-Komponenten + grafische Programmiersprache (mischbar mit Handcode)
- Deployment: OTA
Ziel: Stiftung zur Vermittlung von IoT-Making an Kinder.
Code-Repositories
- Laufzeit-Bibliothek (Firmware-Upload/Copy): GitHub
- Eigenes „Boards“-Paket (Linker-Skript): GitHub
- Arduino IDE Plugin (Java, Kommunikation Board/Dispatcher/IoT Hub): GitHub
- IoT Dispatcher (PHP+MySQL, Firmware-Speicher): GitHub
- Raumthermostat Beispiel (C++): GitHub
- UWP Client für Thermostat (C#, HTML, JS): GitHub
Schaltpläne
Kein Fritzing-Diagramm (Beta-MKR1000, Pin-Layout kann sich ändern).
Herstellungsprozess
- Schritt-für-Schritt Guide zum Microsoft Certified Azure Administrator
- Ist Microsoft Azure ein smarter Career Path? Market Share, Gehälter und Zertifizierungs-Insights
- Microsoft Azure kündigt Blockchain-Tokenisierung & Data Management Services an
- Microsoft Azure Cheat Sheet 2020 – Der definitive Guide zu Azure Services & Architektur
- Azure mit Power BI integrieren: Schritt-für-Schritt-Anleitung für moderne Unternehmen
- Antibabypille: Geschichte, Nutzen, Risiken und Produktion
- Edge KI und Low-Power Hardware treiben Aufstieg der Sprachsteuerung an
- Automatisiertes Pool-Befüllungs- und Überwachungssystem
- Microsoft stellt Azure Edge Zones für 5G-fähige IoT- und KI-Workloads vor
- Emerson stärkt Nachhaltigkeit mit Azure-gehosteter Zedi Cloud SCADA Plattform