Auswahl des richtigen Protokolls zum Senden von Daten an Remote-Geräte
Dieser Artikel basiert auf einem anderen Artikel, den Ubidots für die Sept/Okt 2015-Ausgabe des Microsolutions Magazine von Microchip verfasst hat.
Im Internet der Dinge ( IoT ) geht es nicht nur darum, dass Millionen von Dingen mit uns kommunizieren; Es geht auch – was noch wichtiger ist – darum, dass wir mit ihnen reden können. Nehmen wir als Beispiel Einzelhandelsanalyseanwendungen. Angenommen, ein Einzelhändler verfügt über einen Sensor, der zählt, wie viele Personen das Geschäft betreten und verlassen. Diese Daten werden an die Cloud gemeldet, wo eine praktische Weboberfläche dem Geschäft dabei hilft, das Verhalten der Käufer in Echtzeit zu analysieren, die Geschäftsleistung mehrerer Geschäfte zu vergleichen oder zu sehen, wie sich die Besucher-zu-Kunde-Verhältnisse im Laufe der Zeit ändern, insbesondere bei der Einführung eines Marketingkampagne.
Tatsächlich handelt es sich bei dieser Lösung um eine wachsende IoT Nische mit mehreren Anbietern, die Tausenden von Einzelhändlern dabei helfen, ihre Verkaufsleistung zu optimieren (wir haben tatsächlich einmal ein Tutorial über den Aufbau eines Personenzählers mit einem Raspberry Pi und einem PIR-Sensor
Stellen Sie sich anhand dieser Kennzahlen die Möglichkeiten vor, wenn das System Geräte im Laden automatisch steuern könnte. Es könnte kontextbezogene Werbung basierend auf der Anzahl der davor gehenden Personen anzeigen, Aktionscodes je nach Geschlecht und Alter an die Telefone der Käufer senden oder vielleicht sogar mit der Ladenbeleuchtung spielen, um eine bestimmte Atmosphäre zu schaffen. Die Möglichkeit, Geräte steuern zu können, würde das IoT Erlebnis im Einzelhandel und in fast jedem anderen Markt, der noch nicht vom IoT betroffen ist, sicherlich bereichern. Durch Maßnahmen auf der Grundlage dieser Rückkopplungsschleife kann das IoT sein volles Potenzial entfalten.
Zwei-Wege-Kommunikation für das IoT
Aus technischer Sicht hat sich die Kommunikation von der Cloud zum Gerät als komplexer erwiesen als die herkömmliche Kommunikation vom Gerät zur Cloud. Warum ist das so? Das Internet wurde ursprünglich in einem Client-Server-Modell konzipiert, bei dem der Client immer der Initiator der Anfrage war. Bisher konnten Geräte dadurch die Kommunikation immer dann initiieren, wenn sie Daten in die Cloud übertragen mussten. Aber was passiert, wenn der Server Daten an einen Client übertragen muss, ohne dass der Client zuvor eine Anfrage stellt? Webentwickler haben einige Techniken entwickelt, um diese Herausforderung zu meistern. Hier sind drei Optionen, die wir für „tragbarer“ für die eingebettete Welt halten.
Der einfachste Weg, dieses Kommunikationsproblem zu lösen, ist Short Polling – eine Methode, bei der der Client den Server regelmäßig fragt, ob neue Daten für ihn verfügbar sind. Dies ist die einfachste Lösung zum Codieren, wird jedoch nicht empfohlen, wenn Sie ein Gerät in Echtzeit benachrichtigen müssen.
Die nächste Option ist die lange Abfrage. In diesem Fall führt der Client die Anfrage aus und der Server antwortet erst, wenn er etwas zu senden hat. Dies ermöglicht Echtzeit-Push-Benachrichtigungen von der Cloud an Geräte, erfordert jedoch, dass das Gerät die Verbindung so lange offen lässt, wie es den Server abhören muss. Die Verwendung dieser Technik verbraucht mehr Energie und birgt außerdem das Risiko, dass die Verbindung unterbrochen wird. Stellen Sie sich den Fall vor, dass ein Gerät die Tür eines Lastwagens fernsteuert. Wenn eine lange Abfrageanfrage gestellt wurde und der LKW dann in einen Tunnel fährt, wird die Mobilfunkverbindung unterbrochen. Das Gerät benötigt dann zusätzliche Logik, um die hängende Verbindung zu beenden und eine neue zu öffnen.
Eine dritte Möglichkeit besteht darin, neuere Protokolle wie beispielsweise CoAp oder MQTT zu verwenden, die auf niedrige Latenz, kleine Paketgrößen und stabile Kommunikation über schwache Netzwerke ausgelegt sind. Diese neueren Protokolle bieten einen bidirektionalen Kommunikationskanal, der wiederum Push-Benachrichtigungen unterstützt. Dies macht sie zu einer guten Wahl für IoT -Projekte, bei denen die Fähigkeit zur Steuerung angeschlossener Geräte in Echtzeit erforderlich ist. Der einzige Nachteil könnte das Fehlen von Firmware-Bibliotheken und Beispielen für eingebettete Geräte sein, die für HTTP-basierte Verbindungen deutlich häufiger vorhanden sind.
Die Wahl des richtigen Protokolls hängt von Ihrer Anwendung ab und davon, wie oft Sie mit einem Gerät kommunizieren müssen. Im unten beschriebenen Beispielprojekt wurde die kurze Abfrage gewählt, da die Daten nur jede Minute aktualisiert werden müssen und weil die Handhabung der LED-Matrix bei offenem Sockel mehr Rechenleistung erfordern würde.
Praktische Praxis
In diesem Beispiel wollten wir untersuchen, wie wir mit der Kurzabfragemethode Daten aus der Ubidots -Cloud mithilfe eines chipKIT Wi-Fi® Shield an ein chipKIT™ Uno32™-Entwicklungsboard übertragen können. In unserem Beispiel wird davon ausgegangen, dass ein Personenzähler Daten an Ubidots sendet. Anschließend liest unser ChipKIT-Gerät den letzten Wert des Zählers und zeigt ihn in einer LED-Matrix an. Beachten Sie, dass der Speicher und die Rechenleistung des chipKIT-Boards es uns ermöglichten, die LED-Matrizen zu steuern und gleichzeitig die Ubidots Cloud abzufragen, wie unten gezeigt:
Mit anderen Arduino®-ähnlichen Boards hätten wir diese Verarbeitungsleistung nicht erreichen können. Weitere Informationen zum Aufbau dieses Projekts finden Sie in unserem Artikel „ Daten auf ein chipKIT-Board mit einem LED Maxtix übertragen
Unterstützung für Ihr Sensorikprojekt
Ubidots ist eine cloudbasierte Anwendungsentwicklungsplattform, die nicht nur dem Webstandard (HTTP) folgt, sondern speziell für das IoT und einen umfangreichen Satz an API-Funktionen bietet , die Entwickler verstehen können .
Darüber hinaus arbeiten wir eng mit unseren Benutzern zusammen, um kundenspezifische API-Schnittstellen bereitzustellen, die ihren Anforderungen entsprechen, von herkömmlichen TCP/UDP-Endpunkten, die Binärdaten kommunizieren, bis hin zu fortschrittlicheren Protokollen wie MQTT oder CoAP.
Bei der Entwicklung von Projekten für das IoT erwarten Embedded-Ingenieure ein robustes Backend zum Speichern von Sensordaten, die Fähigkeit, Aufgaben wie die Berechnung mathematischer oder statistischer Operationen mit diesen Daten auszuführen, die Fähigkeit, Warnungen oder Web-Hooks basierend auf Sensormesswerten auszulösen und natürlich , die Fähigkeit, benutzerfreundliche Schnittstellen für ihre Endkunden zu erstellen. Dies sind alles Dienstleistungen, die Ubidots bereitstellt, um Sie bei der Erfassung, Speicherung und Interpretation Ihres Sensorprojekts zu unterstützen.
Um noch heute mit der Lösung von Problemen im Internet der Dinge zu beginnen, erstellen Sie einfach ein Ubidots -Konto und senden Sie Ihre Daten mühelos an die IoT Anwendungsentwicklungsplattform Ubidots um noch heute Ihre Problemlösungsanwendung zu entwickeln, zu visualisieren und bereitzustellen.