Die Firma IoTize aus Grenoble (Frankreich) hat sich darauf spezialisiert, fast alles mit Funkverbindungen aufzurüsten. Durch das Hinzufügen eines ihrer Interfaces zu einem System kann dieses z.B. Daten über das Internet übertragen oder ferngesteuert werden. Es wird damit Teil des IoT – ganz wie der Firmenname indiziert ist es dann „IoTisiert“.
 
Sicherlich gibt es hier auch noch andere Anbieter, aber IoTize ist anders. Die Tools vereinfachen die Visualisierung und Nutzung der von den Modulen erfassten Daten, sei es als App auf einem Smartphone oder via Cloud. Außerdem unterstützen die Erweiterungen von IoTize neben WLAN auch Bluetooth und NFC (Sigfox wurde ist angekündigt).
 

TapNLink Wireless Primer Kit

Das klingt alles sehr interessant. Um als Anwender einen praktischen Eindruck davon zu bekommen, was die Interfaces von IoTize können, werden preiswerte Evaluierungskits angeboten. Da ich nicht so einfach zu überzeugen bin, habe ich das TapNLink Wireless Primer Kit (Bild 1) ausprobiert. Eine praktische Erfahrung ist normalerweise aufschlussreicher als eine Marketingbroschüre, nicht wahr?

IoTize TapNLink Wireless Primer
Bild 1. Das TapNLink Wireless Primer Kit (TNL-PRIMER-NBW) von IoTize bietet NFC, Bluetooth und WLAN.
(Der kleine USB-Dongle dient nur dem Größenvergleich.)

Das TapNLink Wireless Primer Kit besteht aus vier Teilen (Bild 2): 

  • Ein µTap-Modul von IoTize
  • Ein kleines Mikrocontroller-Modul (Blue Pill)
  • Ein kurzes, buntes, fünfpoliges Kabel
  • Eine graue Kunststoffabdeckung

Das kleine Mikrocontrollermodul – die Blue Pill – mit einem STM32 ARM Cortex-M3 SoC ist hier das Board, das IoTisiert werden soll. Es wird mit dem µTap-Modul - einer briefmarkengroßen Platine mit den Maßen 38 × 28 mm - über das im Kit enthaltene Kabel verbunden. Das IoTize-Modul wird (optional) in die Kunststoffabdeckung geklemmt, so dass es mit zwei Schrauben (nicht im Lieferumfang enthalten) an einer beliebigen Oberfläche wie einer Wand oder einer Maschine befestigt werden kann.
 

TapNLink Wireless Primer contents
Bild 2. Das TapNLink Wireless Primer Kit ausgepackt. Die kleine weiße Platine ist das µTap-Modul, und das blaue Modul ist die Blue Pill mit dem zu IoTisierenden Mikrocontroller.

Zwei Versionen

Es gibt zwei Versionen des TapNLink Wireless Primer Kits: die Version NB mit NFC und Bluetooth und die Version NBW mit zusätzlichem WLAN. Es gibt auch reine NFC-Module, aber nicht in einem Kit. Die Farbe des Etiketts auf der Kunststoffabdeckung verrät, welche Version enthalten ist: weiß ist mit und blau ohne WLAN. Ich habe das weiße Modell TNL-PRIMER-NBW ausprobiert.
 

Orange ist das neue Pink

Die Verpackung des Kits dient gleichzeitig als Schnellstartanleitung und zeigt, wie man die beiden Platinen verbindet. Es wird eine rosa Leitung erwähnt, aber in meinem Kit war nichts rosa. Das ist etwas verwirrend, da das IoTize-Modul einen fünfpoligen Stecker hat, aber das STM32-Board nur vier Pins. Außerdem ist die Beschriftung der Boards nicht gleich. Das beiliegende Kabel hat auf der einen Seite eine fünfpolige Buchse und auf der anderen Seite fünf einpolige Steckbuchsen, da sie für beliebige Mikrocontroller-Boards passen müssen. In meinem Fall war die rosa Leitung klar orange. Also irgendwie fast getroffen. Die lila Leitung ist nicht mit dem STM32-Board verbunden (siehe Bild 3).

Das Evaluationssystem wird mit Strom versorgt, indem das STM32-Modul mit einem Micro-USB-Kabel an einen Computer angeschlossen wird (beides nicht im Lieferumfang enthalten). Dies stellt kein Problem dar, da ohnehin ein Computer benötigt wird.
 
TapNLink Wireless Primer assembled
Bild 3. Das Evaluation-Kit vollständig montiert und bereit für Experimente.

Erste Schritte

Vor dem Computer probierte ich TapNLink zunächst mit einem NFC-fähigen Smartphone aus. Hält man es über das µTap-Modul, wird der Tag erkannt und man gelangt zur IoTize-Demo-App im Google Play Store. Diese App sollte man installieren und öffnen. Wenn Bluetooth aktiviert ist, kann man sich jetzt mit dem Device verbinden (eventuell muss man es zuerst mit dem Smartphone koppeln). Sobald die Verbindung steht, zeigt sich ein Zähler und die Steuerung für eine LED. Der Tab MySensors zeigt die Versorgungsspannung des STM32-Boards (Bild 4), und weiter oben sieht man die Temperatur des STM32-SoCs.
 

Anmeldung vor LED-Steuerung

Der Tab Count Control erlaubt die Einstellung der Blinkrate der LED PC13 des STM32-Boards per Schieberegler. Hierzu muss man sich allerdings zuerst in das IoTize-Modul einloggen. Das klappt via Supervision im Menü der App (das Icon in der oberen linken Ecke). Voreingestellt ist für Benutzer und Passwort „admin“. Jetzt kann man per Schieberegler die Blinkrate der LED ändern.
 

WLAN funktioniert auch

Die LED kann man auch via WLAN fernsteuern. Hierzu verbindet man sich mit dem Netzwerk „Sensor demo_xxxxx“ (xxxxx steht für eine 5-stellige Zahl). In der Dokumentation konnte ich die folgende Info nicht finden: Das Standard-Passwort ist „ABCD1234“ statt dem üblichen „12345678“.
 
Da der Aufbau sichtlich funktionierte, konnte ich einen Schritt weiter gehen und versuchen, die Anwendung zu modifizieren. Detaillierte Anleitungen dazu sind neben vielen anderen, nützlichen Dokumenten auf der IoTize-Webseite verfügbar. Ich konnte da durchsteigen, folglich wird das Ihnen wohl auch gelingen. Nun folgt ein genauerer Blick auf die Funktionsweise.
 
IoTize Sensor Demo app on Android
Bild 4. Die Sensor-Demo-App auf einem Android-Smartphone zeigt die Versorgungsspannung des STM32-SoCs an.

Applikation(en)

Eigentlich gibt es zwei Anwendungen: Eine läuft auf der Blue Pill und die andere auf dem µTap-Board.
 
Hier ist eine Erläuterung der Kommunikation der beiden Boards angebracht. Normalerweise wissen in einem solchen Setup beide Applikation, dass die andere existiert. Beide haben zumindest ein gewisses Wissen darüber, welche Art von Daten die andere erwartet und welche Funktionen sie hat. Hier nicht.
Das STM32-Board hat keine Ahnung von der Existenz des IoTize-Moduls und umgekehrt, dennoch sprechen sie miteinander. Wie ist das also möglich?
 

Ein Debugger?

Der Trick ist, dass sich das µTap-Modul wie ein Debugger verhält. Es verbindet sich sozusagen mit dem Debug-Target und inspiziert wie ein Debugger die Register und den Speicher des Targets. Er kann diese auch modifizieren. Das Target ist das STM32-Modul. Damit das funktioniert, muss das Target eine kompatible Schnittstelle haben. Derzeit wird nur das SWD-Debug-Protokoll von ARM unterstützt, doch für andere Mikrocontroller wird immerhin das proprietäre Secure Serial Software Protocol oder S3P unterstützt. Letzteres kann nicht nur auf jedem Mikrocontroller mit zwei freien I/O-Ports implementiert werden (eine Bibliothek für Arduino ist auf GitHub verfügbar), sondern bietet auch eine sichere Kommunikation. Daher wird S3P auch bei SWD-fähigen MCUs bevorzugt.
 
Wie ein Debugger benötigt die IoTize-Applikation eine Liste oder eine Memory Map der von der Zielanwendung verwendeten Variablen. Sie kann dann das Target auffordern, den Inhalt der an Adresse gespeicherten Variable zu senden oder etwas an Adresse B zu schreiben. Diese Liste muss vom Compiler der Zielanwendung bereitgestellt werden und ist normalerweise in der .ELF-Datei (und nicht in der .HEX-Datei) enthalten.
 
IoTize Studio
Bild 5. Applikationen werden in IoTize Studio (kostenlos) entwickelt, hauptsächlich durch Drag & Drop von Objekten.

Programmierung mit IoTize Studio per Drag & Drop

Die kostenlose, grafische IDE für IoTize-Boards IoTize Studio macht diesen Prozess einfach (Bild 5). Nach dem Importieren der .ELF-Datei des Targets kennt sie die Namen und Adressen der verfügbaren Variablen und Register des Targets. Für den Entwickler verhalten sie sich wie jede andere Variable. Der µTap-Anwendungsentwickler braucht also keinen Zugriff auf das Target. Er muss nur wissen, wofür die importierten Variablen gut sind (gute Bezeichnungen helfen hier sehr). Das Konzept bedingt allerdings eine Neukompilierung der IoTize-App, falls die Target-App neu kompiliert wird und sich ihre Symboltabelle ändert.
 
IoTize Studio geht noch ein ganzes Stück weiter, da es die Programmierung des IoTize-Boards zu einer Angelegenheit des Drag & Drop von Usern auf Zielvariablen macht, die in Bundles zusammengefasst sind (siehe dazu unten). Die Applikation wird inklusive aller benötigter Webseiten automatisch generiert. Außerdem kann auch gleich die für die Interaktion mit dem µTap-Board zuständige Android-App für das Smartphone erstellt werden. Ein Klick auf Generate App genügt. Das ist möglich, weil IoTize das Android-App-Entwicklungssystem auf ihren Servern irgendwo in der Cloud installiert hat. Als Anwender muss man daher lediglich IoTize Studio installieren. Für den Zugriff auf diese Cloud ist ein (kostenloser) Account erforderlich.
 

Sicherheit über alles

Nun bleibt noch eine wichtige Sache: die Sicherheit! Dieser Aspekt wurde schon ein paar Mal erwähnt. Die IoTize-Umgebung legt größten Wert auf Datensicherheit. Sie ist eingebettet in das sichere serielle Software-Kommunikationsprotokoll S3P zwischen Target und Host (aber nicht in SWD), und sie ist auch im IoTize-Anwendungsdesign enthalten.
 

Erstes Gebot des IoT: Benutzer haben Rechte

Jede IoTize- Applikation hat Benutzer, und diese haben Rechte. Eine IoTize-Anwendung kann mehrere Nutzer mit unterschiedlichen Rechten haben. Administratoren dürfen tun, was immer sie wollen, während andere User vielleicht nur einige Parameter wie etwa eine Temperatur oder eine Spannung sehen können. Sicherheit war schon bei der Einstellung der LED-Blinkfrequenz Demo-Anwendung Thema. Ein Standard-Benutzer kann das nicht – man muss sich erst anmelden.

 
IoTize Studio IOTZ Explorer pane
Bild 6. Im Fenster des IOTZ-Explorers in IoTize Studio sollte man immer zuerst nachschauen.
Neben dem App-Kram sind hier Profile und Bundles und deren Verknüpfungen zu sehen. Benutzer
Paul hat z.B. dank seines Profils vom Typ tech Zugriff auf die Variable Count_Control.

Folglich muss man zum Erstellen einer Anwendung in IoTize Studio neben der Gestaltung einer grafischen Oberfläche auch Benutzer oder Profile definieren und ihnen Rechte geben. Die von der Anwendung benötigten Variablen werden mit den auf sie zugreifenden Profilen (Benutzern) in sogenannten Bundles zusammengefasst (Bild 6). Die Bundles werden in der App auf eigenen Seiten oder Tabs angezeigt. So hat jedes Profil seine eigene Benutzeroberfläche. Da dies alles eine Sache von Drag & Drop ist, kann man einfach feststellen, was User tun und sehen dürfen. Die Benutzerverwaltung ist also ziemlich einfach, sogar für mich ;-).
 

Cloud-Unterstützung

Last not least: Es gibt eine Cloud-Unterstützung. Die mobile App kann via MQTT mit einem Cloud-Dashboard kommunizieren, das auf der Grundlage der Konfiguration der mobilen App generiert wird (Bild 7). Dies wird mit IoTize Studio und serverbasierten Tools erledigt. Dashboards können auf den IoTize-Entwicklungsservern verwendet werden (auf die man dank Account zum Kompilieren von Android-Apps zugreifen kann, siehe oben). Dies ist mit führenden Cloud-Plattformen wie AWS, Watson, Azure und anderen kompatibel.
 

IoTize Studio cloud MQTT
Bild 7. Nach der Auswahl von IoT-Platform (MQTT) im oberen Bereich kann man
MQTT konfigurieren und das Gerät für die Verbindung mit der Cloud aktivieren.

Insgesamt

Soweit der Test. Alles in Allem hat IoTize eine originelle und effiziente Lösung gefunden, um quasi jedes Mikrocontroller-System mit zwei freien GPIO-Pins mit Funk-Kommunikation nachzurüsten. Ihre Lösung unterstützt nicht nur die üblichen Standards wie NFC, Bluetooth und WLAN, sondern bietet auch eingebaute Datensicherheit, was heutzutage wohl das Wichtigste für ein mit dem Internet verbundenes Gerät ist.
 
Auch die Cloud-Unterstützung wurde nicht vergessen – MQTT und automatisch generierten Dashboards sei Dank. Da der Faktor Time to Market eine entscheidende Größe ist, hat IoTize viel Aufwand betrieben, um alles einfach zu machen. IoTize Studio mit seiner Programmierung per Drag & Drop sowie der cloud-basierte Android-App-Compiler und die Cloud-Dashboard-Tools machen den Einstieg zum Kinderspiel. Außerdem werden IoTize Studio und die Boards durch ein umfangreiches Online-Dokumentationssystem unterstützt.
 
Nur um auch einen negativen Punkt zu erwähnen: Ich mag die Farbe der Plastikabdeckung nicht besonders ;-).
 

Webinar

Lernen Sie die neuesten Funktionen von TapNLink Primer kennen. Das Webinar zeigt, wie man eigene, auf ARM Cortex-M basierenden Projekte mit NFC-, WLAN- oder Bluetooth-Schnittstellen ausrüstet. Außerdem geht es um mobile Apps, die Daten von Ihrer Anwendung empfangen und diese steuern.
 
Demo-Tools:
  • TapNLink-PRIMER für NFC, Bluetooth und WLAN
  • IoTize Studio Konfigurations-Software
  • Plattformübergreifende App-Entwicklungstools für Android
 
Sprache: Englisch
Max. Teilnehmerzahl: 50
 
Jetzt anmelden unter www.iotize.com/tapnlink-webinar.html