Hey! Sie scheinen aus United States zu kommen, möchten Sie auf die Englisch Webseite wechseln?
Switch to Englisch site
Skip to main content

SensorTag schnell einsatzfähig – dank 6LoWPAN Gateway und IBM IoT Foundation

title

 

Das Weptech-Gateway und IBM IoT Foundation sorgen für Beschleunigung bei der TI SensorTag-Entwicklung.

Das 6LoWPAN IoT Gateway von Weptechermöglicht den Einsatz im 2,4-GHz- und Sub-GHz-Frequenzband mit Ethernet-Schnittstelle und dem Mikrocontroller ARM Cortex-M3. Dank gebrauchsfertiger Unterstützung der Contiki-Firmware für Border-Router können SensorTags mühelos mit bestehenden IP-Netzwerken integriert werden.

Das TI SensorTag der zweiten Generation bietet Unterstützung für Contiki und mehrere Beispielanwendungen, z. B. eine zum Senden von Sensordaten an einen MQTT-Broker. Sobald die IP-Adresse des IBM IoT Foundation Quickstart-Brokers konfiguriert ist, können Sie die Live-Daten der Sensoren innerhalb weniger Minuten erfassen und grafisch darstellen.

Werden die Gateway-Hardware und der IBM-Clouddienst zusammen eingesetzt, lassen sich im Handumdrehen hochmoderne, standardbasierte Lösungen für Sensornetze auswerten.

 

Netzwerkarchitektur

title

Die Netzwerkarchitektur ist einfach strukturiert: Die Datenkommunikation mit einem oder mehreren SensorTags erfolgt mittels 6LoWPAN (IPv6 LoWPAN) über das IEEE802.15.4-Protokoll für drahtlose Netzwerkverbindungen. Dabei übersetzt der Edge/Border-Router die IPv6- in IPv4-Netzwerkadressen (NAT64). So können SensorTags – wie auch andere 6LoWPAN-Geräte – eine Verbindung zu IPv4-Hosts in einem LAN und über das Internet herstellen.

Einrichten des 6LoWPAN IoT Gateway

title

Das bei mir eingetroffene Gateway-Paket beinhaltete eine Leiterplatte, eine Stiftleiste, ein Gehäuse, das sowohl für die Tisch- als auch für die Wandmontage geeignet ist, Gummifüße sowie ein USB-Kabel zum Flashen und zur Stromversorgung.

Als dieser Beitrag geschrieben wurde, musste die Firmware des Gateways noch in das Contiki GitHub Repository gestreamt werden und auch die TI SensorTag-Demos standen noch aus. Allerdings enthielt das Paket eine Visitenkarte eines Ansprechpartners bei Weptech, über den die aktuelle Firmware bezogen werden kann.

 

title

Nachdem das Gateway an einen Computer mit Python angeschlossen war, musste ich nur noch die Platine zurücksetzen und die Taste neben Reset drücken, bevor ich ein Skript zum Datenaustausch mit einem Bootloader auf dem System-on-Chip CC2538 ausführen konnte, um den Flash-Speicher mit der neuen Firmware zu programmieren.

title

Das Gateway bietet keine Verwaltungsschnittstelle zum Konfigurieren, sondern bezieht lediglich eine IPv4-Adresse über DHCP. Stellen Sie einfach eine Verbindung mit dem Netzwerk und die Stromversorgung her.

Programmieren von SensorTags

title

Vergewissern Sie sich zunächst, dass eine geeignete ARM-Toolchain auf dem System installiert ist und die Contiki-Quellen verfügbar sind. Nähere Einzelheiten zur Einrichtung der Softwareumgebung werden im TI-Wiki erläutert. Das MQTT-Beispiel finden Sie anschließend im Verzeichnis examples/cc26xx/cc26xx-web-demo
.
Als dieser Beitrag geschrieben wurde, war es mit der Gateway-Firmware noch nicht möglich, per IPv6-Bridging oder durch andere Methoden über das kabelgebundene Netzwerk auf ein SensorTag zuzugreifen. Deshalb deaktivierte ich CoAP-Server und Netzwerk-UART (Universal Asynchronous Receiver Transmitter), zusammen mit dem 6LBR-Client, in der Datei project-conf.h:
Die IP-Adresse des MQTT-Brokers wird in mqtt-client.c konfiguriert.

 

 

/* Enable/Disable Components of this Demo */
#define CC26XX_WEB_DEMO_CONF_MQTT_CLIENT 1
#define CC26XX_WEB_DEMO_CONF_6LBR_CLIENT 0
#define CC26XX_WEB_DEMO_CONF_COAP_SERVER 0
#define CC26XX_WEB_DEMO_CONF_NET_UART 0

The IP address of the MQTT broker is configured in mqtt-client.c.

title

Die oben unkommentierte Adresse ist die des IBM-Clouddiensts, die auskommentierte Adresse steht für eine Instanz des Brokers Mosquitto, die im lokalen Netzwerk auf einem Raspberry Pi mit der IP-Adresse 10.0.10.21 ausgeführt wird. (Die IP-Adresse wird dabei von der dezimalen Schreibweise („Dotted Quad“) in die hexadezimale Schreibweise zu 0A000A15 umgewandelt.)

Beachten Sie auch, dass ich das Präfix von 64:ff9b::/96 in das oben angegebene ändern musste (10 Byte „00“, gefolgt von zwei Byte „FF“), bevor es mit dem Gateway funktionierte.
Jetzt wurden die Quellen wie folgt erstellt:

 

make BOARD=sensortag/cc2650

 

Dabei ist es wichtig, den Platinentyp festzulegen. Wenn Sie ein SensorTag flashen und am Ende herausfinden, dass es keine Funktion hat, ist es recht wahrscheinlich, dass die Firmware für das falsche Ziel erstellt wurde.

Bei Weitem am kostengünstigsten können Sie Anwendungen mit dem Debugger DevPackauf einem SensorTag verfügbar machen. Der Debugger kann entweder zusammen mit SmartRF Flash Programmer (nur Windows) oder CCS Uniflash (Windows- und Linux-Version verfügbar) verwendet werden. Beide Programme können Sie kostenlos herunterladen.

Nachdem ich Uniflash unter Linux installiert hatte, startete ich die grafische Benutzeroberfläche per sudo-Befehl, sodass ich die Verfügbarkeit von Updates überprüfen und diese installieren konnte.

 

Debugger DevPack
SmartRF Flash Programmer
CCS Uniflash 

title

 

Anschließend verwendete ich folgenden Befehl zusammen mit einem Debugger DevPack, um das SensorTag zu flashen:

 

$ sudo /opt/ti/uniflash_3.4/uniflash.sh -ccxml ~andrew/SW/Contiki/CC2650F128.ccxml -operation Erase -program cc26xx-web-demo.elf

title

Die ccxml-Datei beschreibt das Zielgerät und die Debug-Probe. Zum Generieren der Datei führte ich Code Composer Studioaus, die offizielle IDE (Integrated Development Environment, integrierte Entwicklungsumgebung) von TI, die ebenfalls kostenlos heruntergeladen werden kann. Ich importierte ein Beispielprojekt und änderte dabei die Projekteinstellungen so, dass der Debugger DevPack (XDS110 Debug Probe auswählen) verwendet wurde. Nach dem Speichern navigierte ich zu der aktualisierten Datei CC2650F128.ccxml.

Code Composer Studio 

title

Die Inhalte der Datei sind nachstehend zur Übersicht abgebildet:

 

Beachten Sie jedoch, dass Software und/oder Probe in Zukunft ggf. aktualisiert werden, sodass die dann verwendete CCXML-Konfiguration von der oben dargestellten abweichen kann.

Nachdem das SensorTag programmiert war, trennte ich die Verbindung mit dem Debugger DevPack und eine grüne LED am SensorTag begann zu blinken. Als Nächstes versuchte ich, eine Verbindung mit dem Gateway herzustellen

 

Ermitteln der Geräte-ID

title

Über eine unkomplizierte Weboberfläche des IoT-Gateways von Weptech können Sie im Handumdrehen die IPv6-Adressen der mit dem Gateway verbundenen SensorTags ermitteln und damit die eindeutige „Geräte-ID“ bilden, die vom IBM Quickstart-Clouddienst verlangt wird. Nehmen Sie dazu die letzten drei Byte der Adresse und setzen Sie davor die Zeichenfolge 00124b. In meinem Fall verwendete ich ein Tag mit der Adresse:
Daraus ergibt sich folgende Geräte-ID: 00124b8fc203.

Wenn Sie mehr als ein SensorTag einsetzen, schalten Sie diese nacheinander ein und notieren Sie vor dem Einschalten des jeweils nächsten die neue IPv6-Adresse.

fe80::212::4b00:78f:c203

 

IBM Internet of Things Foundation Quickstart

title

Nach der Bestätigung, dass das SensorTag mit dem 6LoWPAN-Gateway und der Geräte-ID verbunden war, konnte diese ID jetzt auf der Quickstart-Webseite eingegeben werden, sodass sofort Live-Werte wie Sensordaten, Betriebszeiten und die Signalstärke drahtloser Verbindungen abgerufen werden konnten.

Quickstart web page 

title

Durch die Auswahl eines der obigen Datenpunkte wurde dieser jeweils grafisch dargestellt, wie es die vorherige Abbildung zeigt.

IBM Bluemix

title

Es wird deutlich, dass Quickstart ein breites Spektrum an Daten des kleinen SensorTags verfügbar macht.

Dies ist jedoch erst der Anfang, denn jetzt lassen sich die Daten in Anwendungen einspeisen, die auf IBM Bluemix ausgeführt werden, einer Platform as a Service (PaaS), die wiederum auf der PaaS-Lösung Cloud Foundry basiert und zahlreiche Programmiersprachen unterstützt, u. a. Java, Node.js, Go, PHP und Python.

Der Bluemix-Katalog beinhaltet ferner Container-Images, eine breite Auswahl an Diensten und, besonders interessant, Node-RED, eine grafische Entwicklungsoberfläche zum Verbinden von Funktionsbausteinen für das Internet der Dinge. Damit können Sie im Handumdrehen Prototypen von gehosteten IoT-Anwendungen erstellen, die Daten aus vielen verschiedenen Quellen und Typen von Quellen miteinander verbinden, Daten verarbeiten und verschiedenste Ausgaben bereitstellen.

Node-RED

title

Es hat nur wenige Minuten gedauert, bis ich eine neue Node-RED-Instanz angelegt und ausgeführt hatte. Dann konnte ich mit ein paar wenigen Klicks einen automatisch generierten „Fluss“ von Quickstart zu Node-RED ausschneiden und einfügen, mit dem der Live-Feed vom SensorTag importiert und die Sensorwerte über Debug-Knoten ausgegeben wurden. Ab da konnte der Fluss mühelos geändert werden, etwa zum Implementieren benutzerdefinierter Logik, Bereitstellen von Ausgaben usw.

Schlussfolgerung

 

Das IoT-Gateway von Weptech ist eine herausragende Lösung als Bindeglied zwischen 6LoWPAN-Drahtlosnetzwerken und Ethernet-Netzen. Das Gateway ist deutlich besser geeignet als die Methode, Linux und die Edge-Router-Software auf einem BeagleBone mit IEEE802.15.4-Funkmodul auszuführen. Zwar wird vom Gateway aktuell die ein oder andere Funktion nicht unterstützt, die durchaus wünschenswert wäre, z. B. das IPv6-Bridging, aber die Vorbereitung solcher Funktionen zeichnet sich bereits ab.

Das Herunterladen und Einrichten einer ARM-Toolchain und eines Tools zur Flash-Programmierung nimmt ein wenig Zeit in Anspruch, dürfte aber auch innerhalb von rund einer Stunde zu schaffen sein. Beide Tools sind die Voraussetzung für alle Möglichkeiten der Nutzung von Contiki auf dem SensorTag. Nach der Einrichtung kann es dann losgehen. Da die eindeutige ID des SensorTags auf seiner IPv6-Adresse basiert – die wiederum von seiner MAC-Adresse abgeleitet ist –, können Sie außerdem ein einziges binäres Firmware-Image für viele Tags verwenden, die Sie dann auch nicht einzeln konfigurieren müssen.

Mit den IBM-Cloud-Tools erhalten SensorTag-Entwickler ein ausgezeichnetes und sofort einsatzbereites System. Bluemix ist ein kostenpflichtiger Dienst, wird aber als 30-tägige Testversion angeboten. Nach Ablauf des Testzeitraums wird eine monatliche Nutzungsgebühr erhoben. Wenn Sie MQTT und Node-RED in der IBM-Cloud verwenden, besteht ferner die Möglichkeit, später zu Instanzen zu wechseln, die in einer anderen Cloudumgebung gehostet oder lokal bereitgestellt werden.

Andrew Back

Open source (hardware and software!) advocate, Treasurer and Director of the Free and Open Source Silicon Foundation, organiser of Wuthering Bytes technology festival and founder of the Open Source Hardware User Group.