Intelligente Heizungssteuerung mit dem Würth Elektronik Calypso IoT Design Kit Teil 1: Einführung
Modulares Design-Kit ermöglicht die schnelle Prototypenerstellung von IoT-Anwendungen mit Microsoft Azure.
In dieser zweiteiligen Serie werfen wir einen Blick auf das Würth Elektronik (WE) Calypso IoT Design Kit für Microsoft Azure (280-2332) und zeigen, wie dieses verwendet werden kann, um in kürzester Zeit einsatzbereit zu sein und sichere End-to-End-IoT-Lösungen mit Azure IoT Central zu entwickeln. Dank eines äußerst flexiblen und funktionsreichen Board-Sets mit vorinstallierter Firmware, gepaart mit einer leistungsstarken IoT-Cloud-Plattform.
Hardware
Das Design-Kit besteht aus einem Platinen-Set, das auf der beliebten Feather-Spezifikation von Adafruit basiert. Dazu gehören zwei Platinen von Adafruit, eine Feather M0 Express (ATSAMD21 MCU) und eine FeatherWing OLED, sowie zwei von Würth Elektronik, die Calypso Wi-Fi und Sensor FeatherWings. Die WE-Platinen-Designs sind Open-Source-Hardware und ihre CAD-, Schaltplan-, Platinenlayout- und Stücklistendateien finden Sie im FeatherWings GitHub-Repo.
M0 Express und OLED
Das Feather M0 Express-Board basiert auf einem Microchip SAMD21-Mikrocontroller, der über einen ARM Cortex-M0+ mit 48 MHz, 32 kB SRAM und 256 KB Flash sowie USB, UART, I2C, SPI und zahlreiche GPIO verfügt. Das Board verfügt außerdem über einen LiPo-Anschluss für den Batteriebetrieb.
Das OLED FeatherWing verfügt über ein helles 128x64-Display mit Tasten, das sich perfekt für die Erstellung einfacher Prototypen von Benutzerdisplays/HMIs eignet und sich natürlich auch beim Debugging als unschätzbar wertvoll erweisen wird.
Sensor FeatherWing
Der WE Sensor FeatherWing verfügt über die folgenden I2C-verbundenen Sensoren:
- WSEN-PADS – Absolutdrucksensor (202-5925)
- WSEN-ITDS – 3-Achsen-Beschleunigungssensor (235-2272)
- WSEN-TIDS – Temperatursensor (202-5947)
- WSEN-HIDS – Feuchtigkeitssensor (280-2330)
Alle diese Komponenten sind in geringen Mengen für die Prototypenfertigung kundenspezifischer Hardware sowie auf Bandspulen für die Serienproduktion erhältlich.
Der Sensor FeatherWing verfügt außerdem über einen WR-MPC5-Anschluss für die schnelle Anbindung zusätzlicher Sensoren und Ausgänge, die den QWIIC-Bus-Anschlussstandard verwenden. Außerdem ist ein 6-poliger Anschluss für die Verwendung mit anderen Evaluierungsplatinen von Würth Elektronik vorhanden.
Calypso Wi-Fi FeatherWing
Die drahtlose Konnektivität wird durch ein WE Calypso Wi-Fi-Modul (205-9976) bereitgestellt, das auf einer FeatherWing-Platine montiert ist. Dies erleichtert das Hinzufügen von IEEE 802.11 b/g/n-Konnektivität zu Designs, indem WLAN und ein voll ausgestatteter TCP/IP-Stack in einem praktischen, mit Zinnen versehenen Modul bereitgestellt werden, das in ein eingebettetes Design integriert werden kann. Das Modul wird über eine benutzerfreundliche Befehlsschnittstelle über UART gesteuert und unterstützt IPv4 und IPv6 sowie häufig verwendete Netzwerkanwendungen wie DHCP, mDNS, SNTP, HTTP(S) und MQTT(S). Dadurch wird der Aufwand für die Integration von drahtlosen und IP-basierten Anwendungen drastisch reduziert.
Das Kit vergrößern
Da das Kit auf der Feather-Spezifikation basiert, gibt es viele andere FeatherWing-Boards, die zur Erweiterung des Kits und zum Hinzufügen neuer Arten von Ein- und Ausgängen, Konnektivität und mehr verwendet werden können. Zum Beispiel das Thyone-I Wireless FeatherWing (222-0856) , das ein proprietäres 2,4-GHz-Funkgerät mit Mesh-Netzwerkfähigkeit hinzufügt. Oder das MagI³C Power FeatherWing (222-0850) , das 5-V- und 3,3-V-Netzteile aus einer Reihe von industriellen Eingangsspannungen bereitstellt. Und natürlich die vielen FeatherWings von Drittanbietern von Adafruit und anderen.
Firmware
#define MQTT_CLIENT_ID "we-iot-device"
#define MQTT_SERVER_ADDRESS "we-exampleHub.azure-devices.net"
#define MQTT_PORT 8883
#define MQTT_TOPIC "devices/we-iot-device/messages/events/"
#define MQTT_USER_NAME "example_for_documentation.azure-devices.net/we-iot-device"
#define MQTT_PASSWORD \
"SharedAccessSignature " \
"sr=we-iotHub.azure-devices.net%2Fdevices%2Fwe-iot-device&sig=" \
"example_for_documentation=1111111111"
Sensor2CloudConnect applications Microsoft Azure configuration.
Für die Würth Elektronik FeatherWings wird Open-Source-Beispielcode bereitgestellt, der in Arduino-ähnlichem C/C++ geschrieben ist. Die Firmware-Entwicklung wird durch die beliebte PlatformIO-Entwicklungsumgebung unterstützt, die als Visual Studio Code (VS Code)-Erweiterung bereitgestellt wird. Die Kernkomponenten des Sensor-SDK sind jedoch in reinem C geschrieben, wodurch sie sich auch leicht auf so gut wie jede Mikrocontroller-Plattform portieren lassen.
Es werden Schnellstartbeispiele bereitgestellt, die sich bei neuen benutzerdefinierten Firmware-Projekten als unschätzbar wertvoll erweisen werden. Der Quellcode für eine Sensor-zu-Cloud-Konnektivitätsanwendung wird ebenfalls zur Verfügung gestellt, die entweder mit Microsoft Azure oder Amazon AWS verwendet werden kann und bei der Parameter in der Anwendung für Dinge wie die MQTT-Broker-Adresse, den Benutzernamen und das Passwort konfiguriert werden müssen.
Da diese Konfiguration in die Firmware integriert ist, ist sie nicht so flexibel, wie sie sein könnte, und nutzt bestimmte fortgeschrittenere Plattformfunktionen nicht aus. Es gibt jedoch auch ein Plug-and-Play-Beispiel für das Calypso IoT-Designkit, das ab Werk mit diesem ausgestattet ist. Das Beispiel kümmert sich um die Verbindung zum WLAN und die Gerätebereitstellung über den Microsoft Azure Device Provisioning Service (DPS), wodurch die Zeit vom Auspacken bis zur Dashboard-Integration minimiert wird.
Azure IoT Central
Azure IoT Central wird als „vorgefertigte UX- und API-Oberfläche für die Verbindung und Verwaltung von Geräten in großem Maßstab, die zuverlässige Daten für geschäftliche Erkenntnisse liefert“ beschrieben. Es bietet eine Plattform für die Verwaltung von Geräten und die Bereitstellung von Geräten und die sichere Kommunikation. Es ermöglicht den Export und die Abfrage von Daten sowie die Auslösung von Warnmeldungen und Workflows, wenn eine bestimmte Bedingung erfüllt ist.
Es gibt verschiedene Preisstufen, die sich beispielsweise nach der Anzahl der Nachrichten pro Monat richten. Es sind jedoch auch kostenlose Azure-Konten verfügbar, die eine Reihe von immer kostenlosen Diensten und einige, die für 12 Monate kostenlos sind, sowie ein Guthaben enthalten, das innerhalb von 30 Tagen nach der Anmeldung für Azure-Dienste verwendet werden kann. Kostenlose Konten können auch zur Bewertung ergänzender Dienste verwendet werden, die in IoT Central integriert werden können, wie z. B. Azure Logic Apps.
Als Nächstes geben wir einen kurzen Überblick über die Erstellung einer Anwendung in Azure IoT Central, die Verbindung unseres ersten Geräts und die anschließende Visualisierung von Daten über das Dashboard. Detaillierte Informationen zur Konfiguration finden Sie im Calypso IoT Design Kit for Microsoft Azure User Manual.
Eine IoT Central Application bauen
Zunächst müssen wir eine IoT-Zentralanwendung erstellen. Dazu müssen wir das zu verwendende Abonnement, die Ressourcengruppe (eine neue erstellen, wenn wir uns gerade erst angemeldet haben), einen Ressourcennamen für die Anwendung, die URL, über die wir darauf zugreifen, eine optionale Vorlage und die Region angeben. Ob Sie es glauben oder nicht, das ist der Hauptteil der Cloud-Einrichtung, und wir müssen nur noch den „ID-Bereich“ notieren.
Konfiguration des Geräts
Um das Gerät zu konfigurieren, müssen wir das WE Certificate Generator Tool herunterladen. Aufgrund von Exportkontrollen für Kryptografie wird auf Anfrage ein Download-Link bereitgestellt. Dieser wird zur Generierung eines Root-CA-Zertifikats verwendet, das wiederum zur Signatur unserer Gerätezertifikate verwendet wird. Natürlich sollte es auch möglich sein, für diese Aufgabe etwas wie die OpenSSL-Befehlszeilentools zu verwenden.
Das Tool generiert auch eine Gerätekonfiguration, die als JSON-formatierte Datei gespeichert wird, die später in das Calypso IoT Design Kit hochgeladen wird. Diese enthält Dinge wie eine eindeutige Geräte-ID, den zuvor erwähnten ID-Bereich, die DPS-Adresse, die Modell-ID sowie die WLAN-SSID und das Passwort. Natürlich gibt es keinen Grund, warum dies nicht manuell erstellt oder in der Produktion automatisch generiert werden könnte.
{
"version": 1,
"deviceId": "room-sensor",
"scopeId": "0ne07ACE421",
"dpsServer": "global.azure-devices-provisioning.net",
"modelId": "dtmi:wurthelektronik:designkit:calypsoiotkit;1",
"sntpserver": "pool.ntp.org",
"timezone": "0",
"WiFiSSID": "Office",
"WiFiPassword": "verySecret",
"WiFiSecurity": 3
}
The azdevconf file contents.
Verbindung herstellen
Nachdem wir nun eine IoT Central-Anwendung erstellt und eine Gerätekonfiguration generiert haben, müssen wir einen letzten Schritt ausführen, um die beiden zu verknüpfen. Wir kehren zu unserer IoT Central-Anwendung zurück und wählen „Permission > Device connection groups > New“ aus, um eine neue Registrierungsgruppe zu erstellen. Hier legen wir fest, wie Geräte die Bescheinigung durchführen – in unserem Fall werden X.509-Zertifikate verwendet – und ob Geräte automatisch verbunden werden sollen. Wir konfigurieren auch ein primäres Zertifikat, indem wir das zuvor mit dem Certificate Generator Tool generierte Root-Zertifikat hochladen.
Zusammenfassend haben wir also eine Gerätekonfigurationsdatei plus Zertifikat und privaten Schlüssel – die wir noch nicht auf dem Gerät konfiguriert haben – und ein Stammzertifikat, das wir gerade in unserer IoT Central-Anwendung konfiguriert haben. Daher kann sich zu diesem Zeitpunkt jedes Gerät, das im Besitz eines von diesem Stammzertifikat signierten „Blatt“-Zertifikats ist, verbinden und wiederum mit unserer Anwendung ausgestattet werden.
Gerät einrichten
Beim Einschalten werden wir darüber informiert, dass das Gerät nicht konfiguriert ist, und aufgefordert, zur Konfiguration auf Taste C zu tippen. Zu diesem Zeitpunkt ist das Calypso-WLAN-Modul auf den Access-Point-Modus eingestellt und wir können uns mit dem Schlüssel „calypsowlan“ verbinden.
Als Nächstes navigieren wir zur angegebenen URL und es wird eine Upload-Seite angezeigt. Von hier aus können wir die Gerätekonfigurationsdatei zusammen mit dem X.509-Zertifikat und dem privaten Schlüssel sowie dem Root-CA-Zertifikat hochladen. Nach Abschluss des Vorgangs werden wir angewiesen, das Gerät zurückzusetzen. Anschließend initialisiert die Firmware die Hardware, stellt eine Verbindung zum WLAN-Netzwerk her, verbindet sich mit Microsoft Azure DPS, stellt eine Verbindung zum IoT-Hub her und beginnt mit dem Datenaustausch.
Dashboard
Wenn wir nun zu unserer IoT Central-Anwendung zurückkehren, sehen wir, dass ein neues Gerät verbunden ist und wir dessen Dashboard anzeigen können, das die neuesten Zahlen und Diagramme für Temperatur, relative Luftfeuchtigkeit und Luftdruck bereitstellt. Es gibt auch eine Registerkarte, über die wir Befehle an das Gerät senden können, um es beispielsweise anzuweisen, die LED-Farbe oder den Telemetriezeitraum zu ändern.
Nächste Schritte
In diesem Artikel haben wir gesehen, wie einfach es ist, das WE Calypso IoT Design Kit für Microsoft Azure in Betrieb zu nehmen und Daten mit Azure IoT Central auszutauschen. Dank der umfassenden Beispiel-Firmware und des vorkonfigurierten Azure IoT Central-Gerätemodells, die zusammen eine erstklassige Benutzererfahrung mit durchgängiger Sicherheit und X.509-basierter Authentifizierung bieten.
Im zweiten Teil dieser Serie werden wir uns die Funktionen von IoT Central ansehen, wie z. B. Regeln, die so eingestellt werden können, dass sie Aktionen auslösen, sowie ergänzende Microsoft-Dienste, die zur Erstellung von Automatisierungen und fortgeschritteneren Anwendungen verwendet werden können. Anschließend werden wir mit dem Prototyping unserer intelligenten Heizungssteuerungsanwendung fortfahren.
Kommentare