Azure IoT in der Praxis – Teil 1 Systemaufbau
Einleitung
Das Internet der Dinge, kurz „IoT“ ist derzeit in aller Munde. Hier übertreffen sich die „Experten“ mit Ihren Ideen und Visionen einer rosigen Zukunft. Wenn es aber um konkrete, praktische Umsetzungen geht, wenn beispielsweise die Frage beantwortet werden soll wie ein IoT Szenario in der Praxis tatsächlich gestaltet werden kann, dann wird es vertiefenden Informationen schnell sehr dünn.
Mit dieser mehrteiligen Artikelserie „Azure IoT in der Praxis“ wollen wir deshalb Abhilfe schaffen. Hier werden wir die verschiedenen Aspekte bei der Realisierung einer praxistauglichen IoT-Lösung anschaulich darstellen und beschreiben.
In diesem ersten Artikel erläutern wir einen industrietauglichen Systemaufbau und die dabei verwendeten Hard- und Software Komponenten. In den weiteren Artikeln werden wir dann einige spezielle Aspekte technisch vertiefen – beispielhaft seien hier die Themen „Datensicherheit“ oder „Alarmierung bei Störfällen“ genannt.
Wenn Sie keinen dieser Beiträge auf diesem Blog versäumen wollen, so empfehlen wir Ihnen, sich in die Mailingliste einzutragen. Sie erhalten dann eine kurze Nachricht, sobald der nächste Artikel zum Thema IoT erschienen ist. Es erfolgt keine Weitergabe der Email-Adresse an Dritte und Sie werden von uns auch keine Werbeemails bekommen. Das versprechen wir Ihnen.
Zielsetzung des IoT-Showcase
Das Team von SIC! Software hat das erste IoT Projekt mit Mobile Anbindung bereits im Jahre 2013/14 realisiert. Seitdem wächst die Zahl der erfolgreich umgesetzten Projekte ständig und damit natürlich auch der Wunsch vieler Unternehmen, mehr über diese Projekte zu erfahren und zu sehen, wie solche Lösungen erfolgreich umgesetzt werden können.
Dabei handelt es sich in nahezu allen Fällen um neuartige Konzepte und Ideen, mit denen bestehende Systeme für das digitale Zeitalter erweitert und fit gemacht werden sollen. Daher wollen unserer Kunden verständlicherweise nichts über ihre neuen Ideen veröffentlichen.
Wir haben uns daher entschlossen, einen eigenen, realitätsnahen IoT-Showcase zu schaffen, der eine durchgängige Technologiekette zeigt, wie sie von SIC! geliefert werden kann.
Dieser Showcase zeigt ein praxisnahes Beispiel von der Embedded Plattform bis hin zur Auswertung der Daten in der Cloud. Es wurde unter Verwendung von Standard-Hardware von STMicroelectronics für das IoT-System, sowie den Cloud-komponenten Microsoft Azure IoT und Microsoft PowerBI umgesetzt. Wir haben uns hier beispielhaft für die Microsoft Azure-Architektur entschieden, da dies derzeit die von unseren Kunden favorisierte IoT-Plattform ist.
Ein denkbarer Anwendungsfall einer solchen Lösung ist beispielsweise ein „Predictive Maintenance“-Szenario, bei dem der möglicherweise drohende Ausfall eines Motors erkannt wird.
Die physikalische Grundlage der Erkennung sind ungewöhnliche Schwingungsmuster, die darauf schließen lassen, dass eventuell ein Schaden am Motor vorliegt.
Auswahl der IoT-Embedded Plattform
Es gibt am Markt eine nahezu unüberschaubare Anzahl von Embedded-Plattformen für solche Anwendungen. Wir haben uns in diesem Fall für eine Evaluationshardware von STMicroelectronics entschieden. Basis ist eine auf dem STM32 Prozessor basierende Hardware (http://www.st.com/en/evaluation-tools/nucleo-f401re.html). Entscheidendes Auswahlkriterium war hier der Umstand, dass hier die für unsere Anwendung nötigen Hardwareerweiterungen für Motorsteuerung, WLAN Modul und Accelerometer-Sensorik als aufsteckbare Nucleo-Komponenten für das STM Evaluationsboard gibt.
BILD
Tiefergehende technische Details findet der interessierte Leser unter den nachfolgenden Links:
Motorsteuerung:
http://www.st.com/content/st_com/en/products/ecosystems/stm32-open-development-environment/stm32-nucleo-expansion-boards/stm32-ode-move-actuate-hw/x-nucleo-ihm11m1.html
WLAN -Modul:
http://www.st.com/content/st_com/en/products/ecosystems/stm32-open-development-environment/stm32-nucleo-expansion-boards/stm32-ode-connect-hw/x-nucleo-idw01m1.html
Accelerometer:
http://www.st.com/content/st_com/en/products/mems-and-sensors/accelerometers/lis3dh.html
Messverfahren und Sensorik
Das Messobjekt ist ein kleiner Drehstrom-Elektromotor mit 15W Leistung, der vom STM32 Board gesteuert, einen kleinen Propeller antreibt. Dieser ist schwingend gelagert montiert. Unter dem Motor ist der Accelerometer-Sensor am Motorträger montiert, mit welchem die Schwingungen des Motors gemessen werden.
Die fehlerhaften Schwingungen im Betrieb werden simuliert, indem am Propeller ein Klebeband angebracht und somit eine Unwucht erzeugt wird.
Signal Theorie und Motor Vibration
Spannend war die Frage, ob es mit dem Accelerometer möglich ist, die feinen Abweichungen der Schwingungsmuster sicher zu detektieren. Die üblichen Accelerometer haben einen Messbereich von +/- 2g mit einer Auflösung von 16 Bit. Das bedeutet, ein Bit entspricht 0,5mg.
Wenn man die technische Dokumentation studiert, stellt man aber fest, dass die tatsächliche, sicher zu detektierende Auflösung eher im Bereich von 1mg aufwärts liegt. (Siehe http://www.st.com/resource/en/datasheet/lis3dh.pdf). Dies sollte aber für diese Anwendung ausreichend sein.
Der kleine Drehstrommotor in unserem Prototyp läuft mit einer Drehzahl von 1500 U/Min, also 25 U/s. Es soll eine mögliche Exzentrizität gemessen und erkannt werden. Dazu gehen wir davon aus, daß jede Vibration eine Sinuswelle produziert. Zur Vereinfachung nehmen wir ferner an, dass die Drehzahl des Motors die niedrigste Frequenz produzieren wird, also rund 25Hz. Um die Sinuswelle sicher zu erkennen, muss mindestens mit der doppelten Frequenz gemessen werden, also 50Hz. In unserer Beispiellösung messen wir mit einer Abtastrate von 400 Hz. Das sollte also auch für deutlich höhere Drehzahlen des Motors noch ausreichend sein.
Für die Errechnung der Vibration gibt es mehrere Möglichkeiten. Wir haben uns hier für die Varianz als einfachste Möglichkeit entschieden (https://de.wikipedia.org/wiki/Stichprobenvarianz). Entscheidend für die Messung ist die Definition des Zeitabschnittes für eine einzelne Messung. In unserem Fall nehmen wir 512 Samples, was bei der Frequenz von 400 Hz eine Aufzeichnungsdauer von 1,2s die Daten zum Analysieren liefert.
Das ermittelte Ergebnis ist ein Messwert, welcher die Abweichung von einem Mittelwert zeigt und damit das Maß der Vibration. Steigt dieser Wert, steigt die Vibration.
Azure IoT Cloud Anbindung Embedded
Nach der Auswahl der Hardware für die Messung und Kommunikation beschrieben wurde, folgt nun der interessante Teil – die Software zur Datenerfassung und Auswertung.
Für die Integration in die Azure Cloud stellt ST eine Referenz-Implementierung für sein Evaluationsboard zur Verfügung, auf die wir weiter aufgebaut haben (http://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software/stm32-ode-function-pack-sw/fp-cld-azure1.html).
Quelle: http://www.st.com/content/ccc/fragment/product_related/rpn_information/board_photo/group0/f3/24/5d/c0/08/39/4c/af/FP-CLD-AZURE1%20image/files/fp-cld-azure1.jpg/_jcr_content/translations/en.fp-cld-azure1.jpg
Das reine IoT SDK von Microsoft, welches im ST-Beispielcode enthalten ist, kann unter dem nachfolgenden Link eingesehen werden (https://github.com/azure/azure-IoT-sdk-c).
Und da der Code ein Multi-Threading verwendet, ist natürlich auch ein entsprechendes Betriebssystem auf der STM32 Plattform erforderlich. Wir setzen hier aus das vielfach bewährte FreeRTOS, das auch von ST für den IoT-Einsatz empfohlen wird.
Microsoft Azure IoT Hub
Der eingesetzte Cloud-Service wird aus den entsprechenden Komponenten auf der Microsoft Azure Seite zusammengestellt. Als zentraler Knotenpunkt wird der ein Azure IoT Hub eingesetzt. Dieser dient dazu, die Daten aller IoT-Geräte entgegenzunehmen und für die weitere Auswertung den nachfolgenden Diensten zur Verfügung zu stellen.
Das Aufsetzen des IoT Hub ist unkompliziert, da dieser einfach im Azure Portal angelegt werden kann. Für diesen Showcase haben einen kostenfreien Demo- Hub eingesetzt, der bis zu 8000 Meldungen pro Tag verarbeiten kann.
Dort werden die Zugangsdaten erzeugt, welche man benötigt, um die IoT-Geräte zu Authentifizieren, damit diesen dann mit dem Hub kommunizieren können.
Anmerkung: Das Thema Sicherheit in IoT Anwendungen werden wir in Kürze in einem weiteren Artikel auf diesem Blog behandeln.
Die Darstellung der Daten im IoT Hub ist allerdings noch relativ unspektakulär. Man sieht zwar, dass Daten fließen und wie viele Geräte aktiv sind, aber für eine sinnvolle Auswertung ist dies noch nicht ausreichend.
Microsoft Azure Power BI
Um nun die gemessenen Vibrationen zu überwachen und Abweichungen erkennen zu können, werden die erfassten Messdaten mit dem Microsoft Power BI visualisiert.
Zu diesem Zweck bietet Microsoft Azure den Dienst „Stream Analytics“ an. Stream Analytics dient – wie der Name schon sagt – dazu, Datenströme zu transportieren und zu analysieren. Dabei werden der Stream Analytics Auftrag und der IoT-Hub am selben Azure-Standort gehostet, um zusätzliche Hosting-Kosten zu vermeiden.
Als Eingabequelle wird der angelegte IoT Hub ausgewählt, als Datenausgabe ein PowerBI Konto.
Damit fließen die erfassten Messdaten vom IoT-Gerät über den Azure IoT Hub und den Stream Analytics Dienst in das Microsoft PowerBI.
Dort wird ein Dashboard zu Visualisierung angelegt, auf dem in einem Liniendiagramm die Werte unserer IoT-Plattform dargestellt werden. Dieses Streamingdataset lässt sich jetzt mit allen von PowerBI zur Verfügung gestellten Mitteln auswerten.
Auswertung und Erkennung
Nachfolgende Masken zeigen, wie unser Algorithmus zur Schwingungserkennung funktioniert.
Im folgenden Diagramm sieht man deutlich den Sprung im Diagramm „Schwingung“ genau in dem Moment, wo der Motor gestoppt das Klebeband befestigt wird.
Beginnt sich der Motor mit angebrachtem Klebeband wieder zu drehen, so erhalten wir einen deutlich höheren Schwingungswert. Dies ist am höheren Schwingungsniveau zu erkennen.
In der Praxis, zum Beispiel bei einem langsam eintretenden Lagerschaden, würde dieser Schwingungs-Messwert wohl eher langsam ansteigen und nicht so schlagartig wie bei unserem Eingriff mit dem Klebeband. In diesem Falle wäre auch optisch am langfristigen Verlauf nicht viel zu bemerken, weshalb hier eine geeignete Logik zum Auswertung der Messwerte und zur Alarmierung vorzusehen ist.
Wie man auf Basis dieser Daten ein entsprechende Erkennung und Alarmierung implementiert, wird Inhalt eines nachfolgenden, vertiefenden Blogartikels sein.
Wie hat Ihnen dieser Artikel gefallen? Gerne lesen wir Ihre Kommentare.
Wenn Sie keinen dieser Beiträge auf diesem Blog versäumen wollen, so empfehlen wir Ihnen, sich in die Mailingliste einzutragen. Sie erhalten dann eine kurze Nachricht, sobald der nächste Artikel zum Thema IoT erschienen ist. Es erfolgt keine Weitergabe der Email-Adresse an Dritte und Sie werden von uns auch keine Werbeemails bekommen. Das versprechen wir Ihnen.