c't 2/2018
S. 64
Praxis
Smarte Helfer selbst gebaut
Aufmacherbild

Smarte Helfer selbst gebaut

Sechs IoT-Projekte flexibel und ohne Cloud

Smart Home und das Internet of Things sollen unseren Alltag einfacher machen. Leider sind kommerzielle Produkte oft nicht so, wie man sie sich wünscht und zudem auf eine Hersteller-Cloud angewiesen. Wir stellen fünf Projekte für Einsteiger und Profis vor, die ganz ohne Cloud arbeiten und die Sie genau auf die eigenen Bedürfnisse zuschneiden können.

Jeden Morgen das gleiche Spiel: Heizung hochdrehen, Wecker klingeln lassen, Licht einschalten, Kaffee kochen und so weiter … Nur heute Morgen ist es kalt und dunkel, ich habe verschlafen, und es herrscht ein eklatanter Mangel an Kaffeeduft. Das ist schon das zweite Mal diesen Monat. Manchmal will mein Smart-Home nicht so, wie ich das will. Über Nacht ist der Internetanschluss ausgefallen und die Steuersignale der etwa fünf Cloud-Dienste, die ich verschalten musste, kamen bei meinen smarten Helferchen nicht an. Beim letzten Mal hatte einer der Cloud-Dienste eine Störung und das IoT-Kartenhaus brach sofort zusammen.

Dass in irgendwelchen Datenbanken stets verzeichnet wird, wann ich das Toilettenlicht einschalte, wurmt mich auch. So was muss besser gehen. Das beste Gegenmittel für diese Probleme heißt: Selberbauen. Mit eigener Hard- und Software ist man unabhängig von Dritten und weiß genau, was an Daten fließt. In sechs Bauprojekten zeigen wir, wie das geht.

Video: Nachgehakt

Unsere IoT-Projekte stehen einerseits für sich, aber andererseits auch exemplarisch. Wir haben versucht, viele für Smart Home und IoT typische Aspekte einzubinden. Das betrifft nicht nur das Messen mit Sensoren und das Steuern von Aktoren, sondern auch autonome Energieversorgung und die Arbeit mit Bibliotheken. Zentraler Bestandteil aller Projekte ist der Microcontroller ESP32 von Espressif. Einzige Ausnahme stellt die WLAN-Steckdose dar, die ein Fertigprodukt aus dem Handel ist und den Espressif ESP8266 einsetzt – den Vorgänger des ESP32. Der ESP32 ist erheblich schneller und besser ausgestattet, kostet aber kaum mehr Geld. Die offensichtlichsten Verbesserungen sind, neben dem dreimal so schnellen Dual-Core-Prozessor, Bluetooth 4.2 und verbesserte Stromsparmodi. Der Microcontroller steuert nicht nur I2C- und SPI-Geräte an, sondern auch alles, was sich auf SDIO, UART und CAN 2.0 versteht – Sie müssen aber nicht wissen, was das alles im Detail ist, um unsere Bauvorschläge selbst umzusetzen. Fürs Messen und Steuern bringt er einen 18-Kanal-Analog-Digital-Wandler und zwei 8-Bit-Digital-Analog-Wandler sowie PWM-Ausgänge für LEDs und Motoren mit.

Den ESP-WROOM32 gibt es in verschiedenen Formen: links als Entwicklerboard (hier ein LOLIN32), ganz rechts als Einzelmodul für Projekte, die in Serie gehen. Die große Platine daneben ist der Programmieradapter, mit dem man seine Software in die Einzelmodule überträgt.

Für die Kommunikation mit gegebenenfalls schon vorhandenen Smart Home-Lösungen setzen unsere Projekte auf das verbreitete MQTT-Protokoll (Message Queue Telemetry Transport). Es dient zum Austausch von Statusinformationen und Steueranweisungen zwischen den einzelnen IoT-Geräten und ist ein verbreiteter Industriestandard. Leider ist er nie richtig im Endkundenbereich angekommen. Jeder Hersteller kocht sein eigenes Süppchen, sodass man schnell drei, vier Gateways, Bridges und Konverter besitzt, die alle nicht miteinander reden wollen. Bei MQTT wird die Kommunikation von einem sogenannten MQTT-Broker gesteuert. Populäre Smart Home-Projekte wie OpenHAB [1], FHEM [2] und Home Assistant [3] verstehen sich alle auf das Protokoll.

Lösungen finden

Bei der Entwicklung von IoT-Geräten stößt man immer wieder auf die gleichen Probleme: Wie verwalte ich Konfigurationsdaten? Wie gestalte ich die Ersteinrichtung möglichst einfach? Wie kümmere ich mich um die Kommunikation mit anderen Geräten? Beim ESP8266 lösen Bibliotheken wie Homie all diese Probleme. Beim relativ neuen ESP32 fehlt eine solche Plattform bislang. Wir haben daher eine eigene Bibliothek namens Basecamp geschrieben. Diese dient als Basis für alle unsere Projekte mit Ausnahme der Steckdose, die auf dem ESP8266 basiert. Basecamp stellen wir als Open Source auf GitHub bereit und laden Sie herzlich dazu ein, eigene Projekte damit umzusetzen und die Bibliothek bei Bedarf zu erweitern.

Basecamp verwaltet die Verbindung zum WLAN und einem MQTT-Broker und ermöglicht das Flashen von Software-Updates übers Netz. Des Weiteren kümmert sie sich um die Verwaltung von Konfigurationsdaten und stellt bei der Ersteinrichtung einen Access-Point und ein Webinterface bereit, über das Sie die Zugangsdaten Ihres WLAN eingeben können. Falls das Gerät weitere Konfiguration erfordert, geht das ebenfalls über sein Webinterface. Das können Sie für die Eigenentwicklungen mit wenigen Zeilen Code erweitern. Sie erreichen es jederzeit über die IP-Adresse des ESP.

Videos