Verfasst von Florian Güldenpfennig
Mini IoT-Workshop im Rahmen des Open House '21:
»Das Internet der Igel«
Wie im Video dargestellt, geht es uns also darum ein kleines funkverbundenes und Batterie-betriebenes Gerät zu bauen, welches auf Erschütterungen reagiert und uns somit anzeigt, wann der Igel nachts aus seinem Haus kommt. Damit wir das Tier 'abpassen' und ihm Augentropfen verabreichen können, möchten wir zeitgleich eine Nachricht am Smartphone oder an einem Computer empfangen. Auch diesen Teil implementieren wir durch die folgende Anleitung.
Material-Liste
Die Liste der benötigten Materialien ist überschaubar und erfordert keine tiefgreifenden Investitionen. Ein paar der Utensilien (vor allem Powerbanks und USB Kabel) sind heutzutage eh in den meisten Haushalten bereits vorrätig:
- ESP8266 Mikrokontroller mit USB Kabel, z.B. den D1 Mini (ca. 6 Euro)
- MPU-6050 Beschleunigungssensor (ca 5. Euro)
- Handelsübliche Powerbank, USB Kabel (ca. 10 Euro)
- Lötzeug (eine Einstiegs-Ausrüstung sollte für unter 20 Euro zu bekommen sein)
- Internetzugang/Router (MQTT)
- Bastelmaterial (Schachtel, …)
- Optional: LED, 220 Ohm Widerstand als Statusanzeige (weniger als ein Euro)
- Optional: Shield für D1 Mini für einen kompakten Zusammenbau (ca. 2 Euro)
- Optional: Sharp Entfernungssensor GP2Y0A21YK0F (ca. 10 Euro)
- Optional: Passwort zum MQTT-Server der NDU, um dieses Service verwenden zu können (Mail an Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein! für die Zugangsdaten)
1. Arbeitsschritt: Pin-Buchsen und Steckleisten auf ESP8266 (D1 Mini) und Shield einlöten
Oftmals kommen die Mikrokontroller Boards wie das D1 Mini ohne eingelötete Steckverbindungen. So kann der Anwender oder die Anwenderin selbst entscheiden, welche Verbindungen verwendet werden. Daher müssen wir zunächst die Pin-Buchsen in das D1 Mini einlöten und auch die Steckleisten mit dem Shield verbinden. Als Resultat erhalten wir eine Art stapelbares 'Sandwich' bestehend aus D1 Mini und Shield. Neben der kompakten Bauweise besteht der Vorteil vor allem darin, dass man diese Verbindung einfach wieder lösen kann, sollten die Komponenten eines Tages für andere Projekte Verwendung finden.

2. Arbeitsschritt: Beschleunigungssensor einlöten
Ein nicht unwesentlicher Bestandteil unseres IoT-Gerätes ist der Beschleunigungssensor. Dieser reagiert auf Erschütterungen, also in unserem Fall, auf die Schritte des Igels, wenn er sein Igelhaus verlässt.
Das Anschließen des Sensors ist relativ 'straightforward'. Wir müssen das Modul (MPU-6050) mit Spannung versorgen (VCC und Ground; rotes und schwarzes Kabel). Zudem brauchen wir drei Anschlüsse für die Datenkommunikation zwischen Sensor und Mikrokontroller. In der Abbildung ist die Verdrahtung dargestellt. Im Video wird gezeigt, wie der Sensor auf das Shield montiert wird. Dennoch müssen auch hier die gleichen pins miteinander verbunden werden, da das Shield ja lediglich der mechanischen Verbindung für eine kompakte Bauweise dient und letztlich völlig optional ist.

3. Arbeitsschritt: Status-LED mit Schutzwiderstand einlöten
Die eigentliche Aufgabe unseres IoT-Gerätes ist es, Erschütterungen (Igel-Bewegungen) zu registrieren und über das Internet an ein Smartphone weiterzuleiten. Dennoch ist es nicht schlecht, ein LED zusätzlich am IoT-Gerät als Feedback Signal anzubringen. So können wir auch ohne Internetzugang mit nur einem Blick feststellen, ob das Gerät funktioniert (insofern wir in seiner Nähe sind natürlich). Alles was es dazu braucht sind ein LED und ein Widerstand (etwa 220 Ohm), damit das LED nicht durchbrennt. Die Abbildung zeigt, wie diese Komponenten an den D1 Mii angeschlossen werden sollten. Im Video wird demonstriert, wie das LED alternativ in das Shield eingelötet wird.

4. Arbeitsschritt: Software auf D1 Mini laden
Selbstverständlich muss unser IoT-Gerät auch noch programmiert werden. Dafür könnt Ihr diesen Code hier runterladen und 1:1 verwenden. Lediglich den Namen Eures Wifi Netzwerkes müsst Ihr einsetzen (siehe Abbildung) und auch das dazugehörige Passwort, denn das IoT-Gerät braucht natürlich eine Internetverbindung um zu funktionieren.
Wenn ihr Euch den oben verlinkten Code runtergeladen habt, benutzt am besten die gratis Arduino Entwicklungsumgebung, um ihn auf den D1 Mini zu spielen. Dies ist der einfachste Weg, das Programm auf unser IoT-Gerät zu bekommen. Wie gesagt, das einzige, was Ihr ändern müsst, ist der Name des Wifi Netzwerkes und das dazugehörige Passwort!
Dazu müsst Ihr den D1 Mini mit einem USB Kabel an Euren Computer anschließen. Je nach Betriebssystem muss zudem ggf. ein Treiber für den D1 Mini installiert werden, damit Euer Computer diesen Mikrokontroller auch 'erkennt'. Dieser Arbeitsschritt ist kein Hexenwerk, doch sei an dieser Stelle auf die vielen Installations-Anleitungen im Internet verwiesen (z.B. hier), denn eine Beschreibung der Treiber-Installation für verschiedenen Betriebssysteme sprengt den Rahmen unseres kleinen Igel-Workshops.

5. Arbeitsschritt: Konfiguration eines Empfangsgeräte (z.B. ein Smartphone)
Der verlinkte Code verwendet das MQTT-Protokoll, um Nachrichten vom IoT-Gerät an ein Eingerät zu verschicken. D.h. sobald eine Erschütterung registriert wird, sendet der D1 eine 'MQTT-Botschaft' an einen Server. Von diesem Server können sich - vereinfacht gesprochen - interessierte Endgeräte diese Nachrichten abholen. Es gibt eine Vielzahl von fertigen Anwendungen, die extra für diesen Zweck gratis ins Internet und in die App-Stores gestellt worden sind. In dem Video verwenden wir eine Software namens MQTTAlert für Android, um am Handy benachrichtigt zu werden, sobald sich der Igel an der Igel-Haustüre bewegt. In der unten stehenden Abbildung verwenden wir HiveMQ, um in einem beliebigen Browser Nachrichten vom IoT-Gerät zu empfangen. Wenn Du genau die gleiche Konfiguration auch in deinem Browser eingibst (wenn du unseren MQTT-Server verwenden willst, schreibe an Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein! um ein Passwort zu erhalten!), wirst auch Du diese Botschaften sehen! Alternativ kannst Du natürlich auch deinen eigenen MQTT-Server aufsetzen oder einen anderen MQTT-Service-Anbieter suchen.

Ausblick
Das wars eigentlich auch schon. Als Erweiterung schlagen wir vor - wie im Video vorgestellt - den Beschleunigungssensor durch einen Entfernungssensor zu ersetzen und nicht mehr Erschütterungen, sondern das Durchlaufen einer 'Lichtschranke' zu messen!
