Auswahl des richtigen Protokolls zum Senden von Daten an entfernte Geräte

Agustin Pelaez
· Lesezeit: 4 Minuten
Per E-Mail versenden

Dieser Artikel basiert auf einem anderen Artikel, den Ubidots für die September/Oktober-Ausgabe 2015 des Microsolutions Magazine von Microchip beigesteuert hat.

Das Internet der Dinge (IoT) bedeutet nicht nur, dass Millionen von Geräten mit uns kommunizieren, sondern – und das ist viel wichtiger – dass wir mit ihnen kommunizieren können. Nehmen wir als Beispiel Anwendungen zur Einzelhandelsanalyse. Angenommen, ein Einzelhändler verfügt über einen Sensor, der die Anzahl der Personen zählt, die das Geschäft betreten und verlassen. Diese Daten werden an die Cloud übermittelt, wo eine benutzerfreundliche Weboberfläche dem Geschäft hilft, das Kundenverhalten in Echtzeit zu analysieren, die Leistung mehrerer Filialen zu vergleichen oder die Entwicklung der Kundenbindungsrate im Zeitverlauf zu verfolgen, insbesondere im Vorfeld einer Marketingkampagne.

Diese Lösung stellt in der Tat eine wachsende IoT , mit mehreren Anbietern, die Tausenden von Einzelhändlern dabei helfen, ihre Verkaufsleistung zu optimieren (wir haben sogar einmal eine Anleitung zum Bau eines Personenzählers mit einem Raspberry Pi und einem PIR-Sensor

Stellen Sie sich vor, welche Möglichkeiten sich durch die automatische Steuerung von Geräten im Geschäft ergeben würden, basierend auf diesen Kennzahlen. Es könnte kontextbezogene Werbung basierend auf der Anzahl der Passanten einblenden, Aktionscodes je nach Geschlecht und Alter an die Smartphones der Kunden senden oder sogar die Ladenbeleuchtung anpassen, um eine bestimmte Atmosphäre zu schaffen. Die Steuerung von Geräten würde das IoT Erlebnis im Einzelhandel und in nahezu allen anderen Märkten, die bisher noch nicht vom IoTbeeinflusst wurden, deutlich bereichern. Durch die Nutzung dieses Feedbacks kann das IoT sein volles Potenzial entfalten.

Bidirektionale Kommunikation für das IoT

Aus technischer Sicht hat sich die Kommunikation von der Cloud zum Endgerät als komplexer erwiesen als die herkömmliche Kommunikation vom Endgerät zur Cloud. Woran liegt das? Das Internet wurde ursprünglich als Client-Server-Modell konzipiert, bei dem der Client stets die Anfrage initiierte. Bisher konnten Geräte so die Kommunikation initiieren, sobald sie Daten in die Cloud übertragen wollten. Was aber geschieht, wenn der Server Daten an einen Client senden muss, ohne dass dieser zuvor eine Anfrage gestellt hat? Webentwickler haben verschiedene Techniken entwickelt, um diese Herausforderung zu meistern. Hier sind drei Optionen, die wir für die Welt der eingebetteten Systeme als besonders geeignet betrachten.

Die einfachste Lösung für dieses Kommunikationsproblem ist das sogenannte Short Polling – eine Methode, bei der der Client den Server regelmäßig fragt, ob neue Daten verfügbar sind. Dies ist die einfachste Lösung, allerdings nicht empfehlenswert, wenn ein Gerät in Echtzeit benachrichtigt werden muss.

Die nächste Option ist Long Polling. Hierbei sendet der Client die Anfrage, und der Server antwortet erst, wenn er Daten senden kann. Dies ermöglicht Push-Benachrichtigungen in Echtzeit aus der Cloud an Endgeräte. Allerdings muss das Endgerät die Verbindung so lange aufrechterhalten, wie es auf den Server wartet. Diese Technik verbraucht mehr Energie und birgt das Risiko eines Verbindungsabbruchs. Stellen Sie sich beispielsweise vor, ein Gerät steuert die Tür eines Lkw fern. Wurde eine Long-Polling-Anfrage gesendet und fährt der Lkw anschließend in einen Tunnel, bricht die Mobilfunkverbindung ab. Das Gerät benötigt dann zusätzliche Logik, um die unterbrochene Verbindung zu trennen und eine neue herzustellen.

Eine dritte Möglichkeit besteht in der Verwendung neuerer Protokolle wie beispielsweise CoAP oder MQTT. Diese wurden entwickelt, um geringe Latenz, kleine Paketgrößen und stabile Kommunikation auch über schwache Netzwerke zu gewährleisten. Die neueren Protokolle bieten einen bidirektionalen Kommunikationskanal, der wiederum Push-Benachrichtigungen unterstützt. Dadurch eignen sie sich gut für IoT Projekte, die die Steuerung angeschlossener Geräte in Echtzeit erfordern. Einziger Nachteil könnte der Mangel an Firmware-Bibliotheken und Beispielen für eingebettete Systeme sein, die für HTTP-basierte Verbindungen deutlich umfangreicher sind.

Die Wahl des richtigen Protokolls hängt von Ihrer Anwendung und der Häufigkeit der Gerätekommunikation ab. Im unten beschriebenen Beispielprojekt wurde kurzes Polling gewählt, da die Daten nur minütlich aktualisiert werden müssen und die Ansteuerung der LED-Matrix bei gleichzeitig offener Steckdose mehr Rechenleistung erfordern würde.

Praktische Übungen

In diesem Beispiel wollten wir untersuchen, wie man mit der Kurzabfragemethode Daten von der Ubidots -Cloud an ein chipKIT™ Uno32™ Entwicklungsboard mithilfe eines chipKIT Wi-Fi® Shields übertragen kann. Wir gehen davon aus, dass ein Personenzähler Daten an Ubidotssendet. Anschließend liest unser chipKIT-Gerät den letzten Zählerstand aus und zeigt ihn auf einer LED-Matrix an. Dank des Speichers und der Rechenleistung des chipKIT-Boards konnten wir die LED-Matrizen steuern und gleichzeitig die Ubidots Cloud abfragen, wie unten dargestellt:

Diese Verarbeitungsleistung hätten wir mit anderen Arduino®-ähnlichen Boards nicht erreichen können. Weitere Informationen zum Aufbau dieses Projekts finden Sie in unserem Artikel Datenübertragung an ein chipKIT-Board mit einem LED Maxtix

Unterstützung für Ihr Sensorprojekt

Ubidots ist eine Cloud-basierte Anwendungsentwicklungsplattform, die nicht nur dem Webstandard (HTTP) entspricht, sondern speziell für das IoT und eine Vielzahl von API-Funktionen bietet, die Entwickler verstehen können .

Darüber hinaus arbeiten wir eng mit unseren Nutzern zusammen, um kundenspezifische API-Schnittstellen bereitzustellen, die ihren Bedürfnissen entsprechen – von traditionellen TCP/UDP-Endpunkten, die Binärdaten übertragen, bis hin zu fortgeschritteneren Protokollen wie MQTT oder CoAP.

Bei der Entwicklung von IoTProjekten erwarten Embedded-Ingenieure ein robustes Backend zur Speicherung von Sensordaten, die Möglichkeit, mathematische oder statistische Operationen mit diesen Daten durchzuführen, Alarme oder Webhooks basierend auf Sensormesswerten auszulösen und natürlich benutzerfreundliche Schnittstellen für ihre Endkunden zu erstellen. All diese Services bietet Ubidots , um Sie bei der Erfassung, Speicherung und Auswertung Ihrer Sensordaten zu unterstützen.

Um noch heute mit der Problemlösung mithilfe des Internets der Dinge zu beginnen, erstellen Sie einfach ein Ubidots Konto und senden Sie Ihre Daten mühelos an die Ubidots IoT Application Development Platform, um Ihre Problemlösungsanwendung noch heute zu entwickeln, zu visualisieren und bereitzustellen.