Offene Plattformen wie Arduino und Adafruit senken die Hürden für kreative IoT-Projekte erheblich. Das Adafruit-IO-API macht es dabei besonders einfach, netzwerkfähige Sensoren über das Internet zu steuern.
Biologen würden vielleicht schon von einer Symbiose sprechen, um die Beziehung der Menschen mit elektronischen Sensoren und Mikrocontrollern zu beschreiben. Vor allem Technikenthusiasten hilft ein ganzer Zoo elektronischer Systeme durch den Alltag: Sie steuern ihre Heizung, dimmen das Licht, kochen Kaffee oder sorgen dank Fehlfunktionen oder Sicherheitsmängeln für unterhaltsame Stunden [1].
Wer aber in die Tiefen der Elektronik und der Mikrocontroller-Welt eintauchen möchte, der braucht einiges an Enthusiasmus. Ohne die theoretischen Grundlagen der Elektronik waren der eigenen Kreativität hier lange Zeit enge Grenzen gesetzt.
Die Entwicklung der Arduino-Plattform [2] schlug vor etwas mehr als 10 Jahren endlich eine Brücke für ein größeres Publikum in das Paralleluniversum elektronischer Sensoren. Die kompakte und günstige Experimentierplatine lässt sich in der Hochsprache C++ programmieren. Zeitgleich gründete die amerikanische Ingenieurin Limor Fried, auch bekannt als Ladyada, das Unternehmen Adafruit Industries [3]. Ihr Ziel war und ist, den Umgang mit elektronischen Komponenten zu vereinfachen.
Pfiffiges Früchtchen
Adafruits kompakte Platinen fassen elektronische Baugruppen zu handlichen Breakout-Boards zusammen und ersparen dem Nutzer die sonst notwendigen Lötarbeiten. Selbst für komplexe Schaltungen und das Auslesen von Sensoren auf Basis von Industrieprotokollen wie I2C oder SPI braucht es nicht mehr als ein Programm in C++ und die entsprechenden Bibliotheken.
Ein weiterer Trend geht dahin, dass immer mehr Sensoren und Steuerungskomponenten über das Internet miteinander reden. Der Vorteil: Einfache Webservices stellen hier die Messdaten bereit; ein schlichter Webbrowser genügt, um sie darzustellen. Zugleich können derselbe Browser oder ein externes Skript auch Schaltsignale an die Komponenten senden und Konfigurationen übermitteln.
Daneben gibt es heute für die meisten Elektronikplattformen auch WLAN-Erweiterungen. Die Arduino-Boards zum Beispiel lassen sich seit einiger Zeit mit Ethernet- und Wifi-Shields bestücken. Andere Geräte wie der Arduino Yún [4] verfügen bereits über integrierte Netzwerkkomponenten. Das Spektrum ist groß und reicht von besonders kompakten Systemen wie dem ESP8266 mit Node-MCU [5] bis hin zum vielseitigen Raspberry Pi Zero W mit Linux [6].
Adafruit IO
Allerdings braucht es einigen Aufwand, um auf Basis dieser Komponenten und mit geeigneten Software-Bibliotheken eigene Internet-Anwendungen zu stricken. Genau hier springt Adafruit in die Bresche und bietet mit Adafruit IO [7] eine sehr komfortable API für netzwerkfähige Sensoren und Mikrocontroller an.
Die Programmierschnittstelle Adafruit IO steht in zwei Geschmacksrichtungen zur Verfügung, als REST- und als MQTT-API (Abbildung 1). Die REST-API folgt den bekannten Prinzipien des entsprechenden Architekturstils [8], während das MQTT-Protokoll direkt aus dem Industriebereich kommt und sich speziell zum Steuern von Sensoren über Netzwerke eignet.

Abbildung 1: IoT-Clients und Desktop-Anwendungen kommunizieren via REST oder MQTT mit dem Adafruit-IO-API.
Erste Schritte
Grundsätzlich gibt es zwei Wege, die Adafruit-IO-API zu nutzen. Der erste führt über die Registrierung auf der Adafruit-IO-Webseite [7]. Adafruit stellt die sehr gut dokumentierte Programmierschnittstelle [9] dann auf einem Server bereit. Ein zweiter besteht darin, den Adafruit-IO-Node.js-Server [10] von Github zu holen und ihn lokal zu installieren.
Nach erfolgreicher Registrierung auf der Adafruit-IO-Webseite zeigt das Benutzerkonto eine Übersicht der vorhandenen Dashboards an; auf der linken Seite erscheint ein Menü zur Auswahl weiterer Ansichten. Hinter dem Eintrag Profil verbirgt sich eine Liste der letzten Aktivitäten.
Zu den API-relevanten Übersichten gelangen Sie über die Auswahl der Einträge Feeds, Groups, Dashboards, Triggers und Settings. Zudem finden Sie dort Links zur Dokumentation (API Documentation) sowie zu weiteren nützlichen Informationen (Guide and Tips, Adafruit IO Forum und Blog/Changelog).
Der IoT-Client
Das Beispiel eines Temperatursensors soll zeigen, wie ein WLAN-fähiger Mikrocontroller die Sensorwerte via Internet an das Adafruit-IO-API schickt. Als IoT-Gerät dient dafür das Adafruit-Huzzah-Board auf Basis des ESP8266 [11].




