Schwerpunkte

Embedded Entwicklungstools

IoT-Entwicklungssystem(e) mit Gateway-Funktion

06. Juni 2018, 15:41 Uhr   |  Klaus Dembowski

IoT-Entwicklungssystem(e) mit Gateway-Funktion
© PopTika | Shutterstock.com

An dieser Stelle sollen zwei IoT-Systeme untersucht werden, welche die Internetverbindung über ein mitgeliefertes Gateway-Board herstellen können: das IoT-Starter-Kit von IQRF und das Industrial-Starter-Kit von Avnet Silica.

Unglücklicherweise müssen wir im folgenden Beitrag auf den Test des Industrial Starter Kits von Avnet Silica verzichten, obwohl wir diesen zuvor angekündigt hatten. Doch das entsprechende Board hat es bis Redaktionsschluss nicht in unser Testlabor geschafft.

Dafür konnten wir uns umso mehr an dem IoT-Kit von IQRF erfreuen. Die tschechische Firma hat eine eigene patentierte Funktechnologie entwickelt, die bei 868 MHz, 916 MHz oder 433 MHz mit einer GFSK-Modulation und einer maximalen Datenrate von ca. 20 kb/s bei relativ geringem Stromverbrauch arbeitet, was demnach für die Kommunikation mit Sensoren und Aktoren gedacht ist.

TU Hamburg
© Klaus Dembowski

Bild 1: Die einzelnen Komponenten des IoT -Starter-Kit werden (bis auf das Gateway-Board) in zwei Metallschachteln geliefert.

IQRF bietet eine ganze Reihe von unterschiedlichen Funkkomponenten, deren Herzstück stets ein steckbares Funkmodul bildet, das über einen SIM-Steckplatz mit der jeweiligen Elektronik zu verbinden ist. Das getestete IoT-Starter-Kit [1] wird zu einem Preis von ca. 350 € angeboten. Es bietet eine Vielzahl von Komponenten, um ein Sensor/Aktor-Netzwerk mit drei Knoten aufzubauen und zu programmieren und die Daten über ein mitgeliefertes Gateway mit einem Cloud-Dienst auszutauschen.

Zum Lieferumfang gehören drei Entwicklungsboards (Node Boards, DK-EVAL-04A), die jeweils über einen integrierten Akku (3,7 V, 400 mAh) verfügen und zwei Buttons, drei LEDs sowie die Funkmodulschnittstelle für ein Transceiver-Funkmodul (TR-72DA) bieten, wovon insgesamt vier Stück mitgeliefert werden. Eines davon ist über einen Adapter (IQRF SPI) mit der Pfostenleiste vom Gateway-Board zu verbinden. Des Weiteren gehören ein Sensor- (DDC-SE01) und ein Aktor-Board (DDC-RC-01) dazu, die in ein Entwicklungsboard gesteckt werden können. Die Signale an der hierfür vorgesehenen Pfostenleiste werden durchgeleitet (Bild 3), sodass sich mehrere dieser Module aneinanderreihen lassen.

Weil es sich um ein Entwicklungssystem für IoT-Applikationen handelt, darf auch ein Programmer-Debugger (CK-USB-04A) für die Funkmodule nicht fehlen, der mit dem beiliegenden Kabel an den USB eines PCs anzuschließen ist und mithilfe der IQRF-Entwicklungsumgebung angesteuert wird. Als geradezu einmalig bei den bisher durchgeführten Tests ist der mitgelieferte USB-Stick zu betrachten, der die notwendige Software, Beispielprogramme, Datenblätter sowie Anleitungen und Video Tutorials enthält. Auch wenn von vielen Herstellern immer gern (aus Bequemlichkeit?) argumentiert wird, dass es besser ist, sich die aktuellsten Daten aus dem Internet zu beschaffen, liefert der USB-Stick alles Notwendige, um sofort loslegen zu können, ohne sich alles selbst zusammensuchen zu müssen, was nicht selten mit einem verhältnismäßig hohen zeitlichen Aufwand verbunden ist.

TU Hamburg
© Klaus Dembowski

Bild 2: Das IQRF-Funkmodul von der Unterseite, von der Oberseite (mit entferntem Metalldeckel) und die Schaltung des Moduls.

Das Funkmodul

Ein IQRF-Funkmodul beinhaltet im Wesentlichen einen Mikrocontroller, den PIC16LF1938-I/MV (28 kB Flash, 1 kB RAM, 256 kB EEPROM) von Microchip, einen Spirit1-Transceicer von STM als Funkinterface sowie einen Temperatursensor (MCP980) und ein EEPROM (2AA256) ebenfalls von Microchip. Grundsätzlich wird stets nur dieser Mikrocontroller im Funkmodul programmiert und nichts weiter in der eigentlichen Sensorschaltung oder in der eigenen Applikation, die mit dem programmierten Modul zu verbinden ist. Die achtpolige Anschlussbelegung (C1-C8) der SIM-Steckverbindung führt neben Vcc und Masse vier SPI-Signale (SCK, SDI, SDO, SPI /SS), die alternativ auch als I²C- und UART-Signale sowie als General-I/O-Leitungen (ADC In, PWM, Comparator) programmiert werden können. Für die Kommunikation mit der »darunterliegenden« Elektronik verwendet ein IQRF-Funkmodul stets SPI.

TU Hamburg
© Klaus Dembowski

Bild 3: Die Schaltung des Sensor-Boards, das mit dem angesteckten Node-Board und dem eingesetzten Funkmodul einen IQRF-Sensorknoten bildet.

Ein Entwicklungsboard, das mit dem bestückten Funkmodul einen Funkknoten bildet, ist relativ einfach aufgebaut. Der integrierte Akku (LIP552240), dessen Ausgangsspannung sich über einen Jumper (JP1) von der Schaltung trennen lässt, kann über den mircoUSB-Anschluss von einem üblichen 5-V-Netzteil aufgeladen werden. Eine LED zeigt das Vorhandensein der angelegten USB-Spannung (VUSB) an, die zweite, ob die Schaltung mit Spannung (VBAT) versorgt wird, was über einen Taster ein- und ausschaltbar ist, und die dritte LED lässt sich über den anderen der beiden Taster schalten, dessen Signal auf den Kontakt C5 vom SIM-Slot C5 gelegt wird, der je nach Schaltung für unterschiedliche I/O-Funktionen eingesetzt werden kann. Als Laderegler kommt für den Li-Ion-Akku ein MCP73831 zum Einsatz. Die Spannungsversorgung für das Funkmodul wird mit einem separaten LDO auf exakt 3,3 V geregelt und an den SIM-Slot-Anschluss C3 geführt. An C4 befindet sich das dazugehörige Massepotential. Alle anderen C-Signale (C1, C2, C5-C8) werden über eine 10-polige Buchsenleiste (XC1, Bild 3) mit den beiden Spannungsversorgungen (VUSB, VBAT) und der Masse durchgeschleift, um weitere Module anschließen zu können.

Das Relais-Board (DDC-RC-01) verwendet die SIM-Slot-Kontakte C8 (Relais 1) und C2 (Relais 2) für das Schalten der beiden bistabilen HF-Miniaturrelais (Fujitsu FTR-B3GB003Z), die maximal 2 A oder maximal 24 V an den Schaltkontakten verarbeiten können. Demnach gibt es hiermit sogar ein Aktor-Board – dies ist bei den bisher getesteten IoT-Systemen noch nicht vorgekommen –, sodass sich hiermit Lasten im lokalen IQRF-Netz oder über die Cloud schalten lassen. Das Sensor-Board (Bild 3) enthält zwei Temperatursensoren (an C6, C7), die alternativ zu betreiben sind, was mit einem Jumper entsprechend einzustellen ist, sowie einen analogen Fotowiderstand (an C1) und eine per Potenziometer einstellbare Analogspannung (an C5).

TU Hamburg
© Klaus Dembowski

Bild 4: In der IQRF-Entwicklungsumgebung wird der Transceiver − das Funkmodul − konfiguriert.

Starten mit der Entwicklungsumgebung

Mit der IQRF-Funktechnik lassen sich verschiedene Topologien realisieren, von der einfachen Peer-to-Peer-Kommunikation zwischen zwei Modulen über ein Netzwerk mit mehreren Knoten, wobei einer davon (Gateway Board, PC mit angeschlossenem Programmer) als Datensenke, das heißt als zentraler Knoten (Coordinator, Central Node) programmiert sein muss, bis hin zu einem Mesh-Netz. Hierfür kommt dann der IQMESH Network Manager aus der IQRF-Entwicklungsumgebung zum Einsatz, der die Funkmodule programmiertechnisch zu einem Netzwerk mit entsprechender Routing-Funktion zusammenfasst.

Die IQRF-Entwicklungsumgebung (IQRF IDE) ist Dreh- und Angelpunkt für sämtliche Konfigurations- und Programmierarbeiten zum Aufbau und Funktionstest von IQRF-Knoten und -Netzwerken. Die dazugehörigen ausführlichen Anleitungen [2] gliedern sich in logische Teile vom Einstieg bis hin zur Programmierung eigener Anwendungen und der Cloud-Anbindung, was nicht nur in Schriftform, sondern auch anhand von unmittelbar nachvollziehbaren Tutorials auf YouTube präsentiert wird. Als Einstieg sei Part 1: IQRF Network [3] empfohlen. Von hier ausgehend kann die Einarbeitung in die Materie Schritt für Schritt erfolgen.

TU Hamburg
© Klaus Dembowski

Bild 5: Auf das Up-Board ist der Adapter für die Aufnahme des Funkmoduls auf die Pfostenleiste gesteckt.

Als erstes ist die mitgelieferte Demo-Software mit dem Programmer-Debugger (CK-USB-04A) auf die einzelnen Funkmodule zu schreiben, deren Version davon abhängt, welche Funktion (Sensor, Relais, Repeater) ein Funkknoten jeweils einnehmen soll, wofür verschiedene vorgefertigte Hardware-Profile zur Verfügung stehen. Für die einfachste Kommunikationsform, Peer-to-Peer, die auch Broadcasts erlaubt, ist die direkte Programmierung mithilfe einer OS-API in C möglich. Für die Bearbeitung der Source-Dateien (.c) kann ein Editor nach Wahl, wie etwa Notepad++, verwendet werden. Die API kapselt sämtliche IQRF-Funkoperationen. Abschließend sind nur die kompilierten Hex-Outputs ohne weitere Software auf ein Funkmodul zu schreiben. Der Netzwerkaufbau erfolgt dann zunächst über die IDE mit einem im zentralen Knoten (Node, DK-EVAL-04A) eingesteckten und programmierten Funkmodul.

Empfohlen wird der Einsatz des speziellen Direct-Peripherals-Access-Framework (DPA), welches ein eigenes von IRQF entwickeltes Protokoll in Byteform (DPA-Paket) implementiert, was dann alle Möglichkeiten innerhalb eines IQRF-Netzwerkes bietet, weshalb sich auch die meisten Programmierbeispiele damit befassen.

Der zentrale Knoten (Coordinator) benötigt lediglich die vorgegebene Grund-software, die über das IQRF Hardware Profile (Plug-Ins, Bild 4) und die DPA-Funktionalität geliefert wird. Für das Sensor- und das Relais-Board ist hingegen noch etwas c-Code zur Ansteuerung mit einem DPA-Handler notwendig. Die jeweiligen Beispiel-Codes sind sehr übersichtlich und lassen sich deshalb relativ einfach auf eigene Hardware übertragen, die sehr simpel gestrickt sein kann, wie es beispielsweise im Bild 3 für das Sensor-Board gezeigt ist.

Cloud- Anbindung

Als Gateway wird ein UP-Board von AAEON inklusive Netzteil mitgeliefert Das Board (www.up-board.org) ist mit einem Atom x5 Z8350, 2 GByte DRAM, 32 GByte eMMC-Speicher, einer 40-poligen GPIO-Leiste sowie mit USB-, Ethernet- und HDMI-Connectoren bestückt. Es ist bereits zum Betrieb als Gateway mit Ubilinux vorkonfiguriert. Deshalb sind nur noch individuelle IP-Einstellungen sowie Zugangsdaten für den MQTT-Service zur Cloud-Dienstnutzung durchzuführen.

TU Hamburg
© Klaus Dembowski

Bild 6: Die Webdemeo auf dem Gateway zeigt die Sensorwerte an.

Prinzipiell kann ein beliebiger Linux-Computer, der über eine SPI-Schnittstelle verfügt, als Gateway für IQRF-Netzwerke verwendet werden, demnach auch ein geeignetes Arduino-Board, ein Beagle-Bone oder ein Raspberry Pi [4]. Als Software wird neben einem Linux der IQRF-Daemon, der über ein Webinterface (IQRF Webapp) konfiguriert wird und an Node.js sowie an den MQTT-Broker-Mosquitto angebunden ist, benötigt, was alles quelloffen verfügbar ist [5].

Vom Netzwerkaufbau her macht es keinen Unterschied, ob ein Gateway verwendet wird oder nur ein lokales Netzwerk zu betreiben ist. Vorausetzung ist, dass DPA mit den programmierten Nodes eingesetzt wird. Das Modul, das als zentraler Knoten fungiert, ist mithilfe eines Adapters lediglich auf das Gateway-Board zu stecken. Ohne Cloud lässt sich das Gateway über die jeweilige IP an Port 1880 erreichen, was zur Liveansicht empfangener Messwerte (Bild 6) führt. Diese Demo ist mit Node RED programmiert und deshalb auch als Beispiel für eigene Programme, sei es lokal oder in der Cloud, gut geeignet.

Der IQRF-Daemon bietet dem Gateway die Möglichkeit, über MQTT die Daten mit Cloud-Dienstleistern, wie Amazon-Web-Services (AWS), Azure von Microsoft oder Bluemix von IBM auszutauschen. Dazu wird ein Request im json-Format mit einer DPA-Nachricht an das Gateway gesendet, auf das ein Response erfolgt, welches über ein abonniertes Topic vom Cloud-Dienstleister abgefragt wird.

Die übertragenen Nachrichten der Requests und Repsonses beinhalten Terme des DPA-Frameworks, was sich quasi vorab über die IQRF-IDE oder auch die IQRF-Webapp unter dem Menüpunkt IQRF-Net testen lässt. Ausprobiert wurde das System mit AWS, was zunächst nicht funktionieren wollte, das heißt, Anfragen aus der Cloud erhielten keine Rückmeldung vom Gateway, was sich auch durch Updates und eine Neuinstallation der Gateway-Software nicht beheben ließ. Erstaunlicherweise führte dann ein Wechsel des Browsers von Google Chrome zu Mozilla Firefox letztendlich zum Erfolg.

TU Hamburg
© Klaus Dembowski

Bild 7: Erfolgreiche Rückmeldung des Gateway auf Amazon-Web-Services.

Die Mitgliedschaft bei AWS ist in den ersten 12 Monaten zwar kostenlos, dennoch muss eine Kreditkartennummer hinterlegt werden. Die Registrierung erfolgt bei Amazon-Web-Services [6]. Zur Gateway-Identifizierung werden bei der Einrichtung Authentifizierungsschlüssel sowie Zertifikate zum Download angelegt, die anschließend auf dem Gateway abgelegt werden. Auch für die AWS-Cloud-Konfigurierung [7] stellt IQRF eine Anleitung und ein Video zur Verfügung, außerdem auch noch für Azure und Bluemix von IBM.

Fazit

IQRF zeigt, wie es geht. Eine umfassende Lösung vom Sensor bis in die Cloud setzt keine aufwendige und schwierig zu programmierende Hardware voraus, es kommt auf das Konzept an. Alle wichtigen Dokumente, Datenblätter, Schaltpläne, Software und Beispiele sind bei IQRF einfach per Download zu beziehen. Bis auf das patentierte Funkverfahren (im Transceiver) ist fast alles offengelegt und aktuell dokumentiert. Die Video-Tutorials erlauben es auch dem Anfänger, schnell zu einer funktionierenden IoT-Lösung zu kommen und die IQRF-Alliance, zu der sich verschiedene Firmen, Hochschulen und diverse Anwender zusammengefunden haben, führt mit IQRF-Smart-Schools, Marketplace und Case-Studies direkt in die professionelle Anwendung. (fr)

Referenzen

IQRF Starter Kit: https://iqrf.org/products/routers/development-sets/iot-starterkit-01

IQRF Quick Start Guide: www.iqrf.org/weben/downloads.php?id=235

Part 1: IQRF Network: https://github.com/iqrfsdk/iot-starter-kit/blob/master/install/pdf/iqrf-part1.pdf, https://www.youtube.com/watch?v=zOiRGo4ZIyo

Rasberry Pi als IQRF Gateway: https://iqrf.org/technology/iqrf-gw-daemon

Gateway-Einrichtung für IQRF: https://github.com/iqrfsdk/iot-starter-kit/blob/master/install/PART2-GW.md

Registrierung bei Amazon Web Services: https://portal.aws.amazon.com/billing/signup

AWS Cloud Konfigurierung: https://github.com/iqrfsdk/iot-starter-kit/tree/master/install/pdf/iqrf-part3a.pdf, https://www.youtube.com/watch?v=tG-808hIB20

Auf Facebook teilenAuf Twitter teilenAuf Linkedin teilenVia Mail teilen

Das könnte Sie auch interessieren

embedded world Conference 2019
Konferenz Internet of Things – vom Sensor bis zur Cloud
Visible-Things-Plattform
Raspberry Pi für Profi-Anwendungen
IoT-Kits auf dem Prüfstand (Teil 1)
IoT-Kits auf dem Prüfstand (Teil 2)
IoT-Kits auf dem Prüfstand (Teil 3)

Verwandte Artikel

TU Hamburg-Harburg Inst. Für Mikrosystemtechnik