Collectors Smart Terminal
Für den Verein Collective, Betreiber der Collectors in Solothurn, haben wir im Rahmen eines ehrenamtlichen Mandates einen Prototypen für eine smarte Abgabestation entwickelt. Kunden des Collectors-Lieferdienstes können am Touchscreen-Terminal mittels eines einfachen Prozesses ihren Auftrag erfassen und kleben danach die gleich vor Ort gedruckten Lieferetiketten auf ihre Einkaufstaschen. Diese werden anschliessend von den Collectors am Abgabestandort abgeholt und bequem an die Wunschadresse geliefert.
Azure IoT Backend
Mit der Hilfe des riesigen Microsoft Azure Ökosystem kann das Backend einer solchen komplexen Aufgabenstellung komplett in die Cloud verlagert werden. Dies reduziert nicht nur die Betriebskosten, sondern ermöglicht auch eine automatische horizontale Skalierung vieler der verfügbaren Komponenten unter Last.
Die Architektur der Lösung beinhaltet viele Komponenten, die in einem IoT Projekt heute praktisch unverzichtbar geworden sind:
IoT Hub
Der IoT Hub empfängt sämtliche Nachrichten des Terminals und verarbeitet diese je nach Typ. Das Terminal sendet sowohl Telemetriedaten zwecks “Heartbeat” als auch die eigentlichen Aufträge an den IoT Hub.
Die Aufträge werden, in einer ersten Version als E-Mail aufbereitet, an die Collectors-Zentrale (HOT-Pfad) weitergeleitet. Von jedem Auftrag wird ausserdem automatisch eine Kopie in der Cloud-Storage abgelegt (COLD-Pfad).
Der Heartbeat aktualisiert den sogenannten Device-Twin des Terminals im IoT Hub, welcher wiederum periodisch abgefragt wird und im Falle einer Zeitüberschreitung seit der letzten Aktivität automatisch Alarm auslöst.
Azure Functions
Azure Functions sind Microsofts direkte Antwort auf Amazons AWS Lambda, es handelt sich somit um eine ereignisbasierte, serverlose Compute-Umgebung. Egal wie viel oder wenig Leistung eine solche Applikation benötigt, eine Azure Function skaliert vollkommen automatisch und es werden nur diejenigen Ressourcen verrechnet, die man auch tatsächlich nutzt.
In diesem Projekt wurden zwei verschiedene Event-Triggers verwendet: Einerseits die periodische Abfrage der Device-Aktivität für den Watchdog und andererseits das Ankommen einer neuen Auftragsnachricht im IoT Hub.
Web API
Um das Benutzererlebnis für Abokunden zu optimieren können diese Personen ihre Adressangaben vorausfüllen lassen, in dem Sie sich mit ihrer Abonummer und ihrem Nachnamen am Terminal identifizieren. Die Stammdaten werden in einer MongoDB-Instanz abgelegt, welche anschliessend über die RESTful Schnittstelle vom Terminal abgefragt werden können. Um den Datenschutz zu gewährleisten sind Abfragen nur vom Terminal aus erlaubt und werden durch ein Client-Zertifikat sowie einem Keyed-Hash Message Authentication Code (HMAC) gesichert.
Die Collectors-Zentrale hat die Möglichkeit diese Stammdaten jederzeit zu aktualisieren, sollten Mutationen vorgenommen werden oder neue Kunden hinzukommen.
Raspberry Pi Terminal
Das Terminal wurde mit einem Raspberry Pi 3B+ und einem 7” Touchscreen Display sowie einem USB-3G Router umgesetzt. Die Konfiguration wurde speziell für den Einsatz als öffentlicher Kiosk vorgenommen, so dass alle Services wie 3G-Verbindung, Heartbeat, lokaler Webserver und der Browser für das Frontend automatisch während dem Bootvorgang gestartet werden.
Frontend
Das Frontend wurde mit dem Javascript Framework React und dem State-Container Redux als Single-Page Applikation (SPA) umgesetzt. Als Javascript-Laufzeitumgebung wird Node.js eingesetzt, im speziellen das dafür entwickelte serverseitige Webframework Express.
IoT @ CSA
Die Besonderheit von IoT-Prototypen ist weitgehende Nutzung bereits bestehender Komponenten, die eine komplette IoT-Lösung ausmachen. Hohe Investitionskosten entfallen. Unsicherheit, ob die einzuführende Lösung den erwünschten Erfolg verspricht, werden ausgeräumt und wichtige Erkenntnisse werden gewonnen.
Um die bestmögliche Lösung zu gewährleisten, bieten wir Ihnen fachliche Expertise und jahrelange Erfahrung im Bereich von Hardware- und Softwareentwicklung im IoT Umfeld. Vom Sensor bis zum Frontend einer umfangreichen IoT Lösung: Bei CSA gibt es die Komplette IoT-Lösung aus einer Hand.