Auswahl eines Surfsticks für den Raspberry Pi
Die Internetanbindung des Honigstands erwies sich schwieriger als ich mir das vorstellte. Mit einfach einen Surfstick anzuschließen war es nicht getan. Es stellte sich heraus, dass es bei den Surfsticks Unterschiede gibt. Der Surfstick (4G Systems XS Stick P14) den ich noch seit 2012 daheim liegen hatte war ein ziemlich altes Gerät, welches sich zuerst als USB-Device beim Raspberry präsentiert. Mit „usb_modeswitch“ ändert sich das automatisch und das USB-Device wird als Analogmodem erkannt, welches mit AT-Codes gesteuert wird. Das ist vor allem dann nützlich, wenn man auch SMS verschicken möchte. Ein Problem ist es aber, dass vor allem bei dem mir vorliegenden Noname-Surfstick die benötigten AT-Kommandos nicht dokumentiert sind und sich dazu wenig Brauchbares im Internet findet. Deshalb habe ich mich nach etwas Recherche für einen anderen Sufstick (ZTE k4505-z bzw. Vodafone USB-Easy-Stick K4505-Z) entschieden, da sich dieser direkt als Modem registriert. Laut Amazon Beschreibung ist der Surfstick „bereits als Modem konfiguriert und wird sofort erkannt“. Daher wäre dieser Surfstick für uns die beste Variante. Mit dem Kommando „ifconfig -a“ wird das Modem als „wwan0“ erkannt. Falls der Surfstick auch nicht geht habe ich gleich noch einen sehr verbreiteten Huawei Surfstick mitbestellt, den HUAWEI E353. Dieser wird zuerst auch als USB-Device erkannt, mit Modeswitch jedoch auch automatisch als Ethernet-Schnittstelle eingebunden. Auf AT-Kommandos kann bei diesem Surfstick verzichtet werden. Lediglich die Interfaces sind mit dem Kommando „sudo nano /etc/network/interfaces“ um die folgenden Zeilen zu ergänzen:
allow-hotplug usb0
iface usb0 inet dhcp
Diese zwei Sticks eignen sich optimal um ins Internet zu gelangen, sind jedoch für Steuerbefehle ungeeignet. Nach einmaliger Konfiguration der APN und des SIM-PINs im Webinterface (via IP-Adresse erreichbar), können die Surfsticks ohne Installation an jedem beliebigen Gerät verwendet werden.
Der Vollständigkeit halber möchte ich gerne die Möglichkeit eines externen 3G-Modems erwähnen, welches als Hotspot arbeitet. Der Raspberry Pi kann sich in dieser Variante einfach in das WLAN des 3G-Modems anmelden. Diese Möglichkeit gibt es ab 10 Euro Aufpreis zu einem Surfstick und hat meiner Meinung eine bessere Wiederverwertbarkeit, da man beispielsweise auch sein Smartphone mit dem Hotspot verbinden kann. Außerdem sind in manche Modelle (z.B. Huawei E5330) Statusanzeigen für Akkustand und Verbindungsstärke miteingebaut. Die externen 3G-Modems benötigen eine eigene Stromversorgung über Micro-USB, können aber auch durch die USB-Buchse des Raspberry Pis gespeist werden.
AccessPoint und Surfstick – verträgt sich das?
Jein, denn unsere erste bereits funktionierende Variante des AccessPoint konnte das nicht. Das lag aber auch an der sehr umfangreichen Konfiguration mit IP-Tabellen für das Routing. Da fällt es einem irgendwann schwer überhaupt noch zu blicken was da genau wo zugeordnet wird. Es wurde nach einer anderen Alternative gesucht, welche eine Veränderung der Raspberry interfaces Konfiguration zulässt. Der verwendete Vodafone Surfstick benötigte nämlich diese zwei Zeilen unter interfaces:
allow-hotplug wwan0
iface wwan0 inet dhcp
Leider hat das den AccessPoint einfach lahmgelegt. Mit dem neuen Huawei Surfstick der gar nicht als wwan0 erkannt, sondern mit dem Kommando „ifconfig“ direkt als eth0 Schnittstelle gelistet wird, ist das aber eh Geschichte.
Unsere Python-Skripte auf dem Raspberry Pi
Der HoneyPi hat einen Art Wartungsmodus, der durch den angeschlossenen Taster gestartet und gestoppt werden kann. Der Wartungsmodus ist dafür da, damit die kontinuierliche Messung unterbrochen werden kann. Dadurch erhält der Imker keine Fehlmessungen, wenn er seine Arbeit am Bienenstock verrichtet. Außerdem ist im Wartungsmodus der AccessPoint aktiv, von wo Einstellungen an der Hardware und den Sensoren vorgenommen werden können.
Soweit ist die Theorie, wie das alles funktionieren sollte. Im letzten Wochenbericht konnten wir bereits berichten, dass die kontinuierliche Messung und die Übertragung der Daten an ThingSpeak funktioniert. Der Taster war zu dieser Zeit noch nicht im Betrieb. Die Umsetzung erfolgte nun etwas anders als gedacht:
Die Funktion, um die Sensoren kontinuierlich zu messen wird nun in einem separaten Thread gestartet. In der Hauptmethode befindet sich nun eine While-Schleife, die den GPIO-PIN des Tasters auf einen geänderten State abfragt. Von dort wird der Thread für die Messroutine gestartet und gestoppt. Zuvor war die Filter-Funktion – eine Funktion um Ausreiser und fehlerhafte Messungen zu filtern – in einem weiteren separaten Thread gestartet worden. Diese Konstellation war jedoch fehleranfällig für Threads, die nicht richtig beendet werden konnten.
Probleme mit dem Gewichtssensor und A/D-Wandler für die Stockwaage
Die 3 Euro Wägezellen aus China machten zu Beginn keinen guten Eindruck. Die Kalibrierung bereitete große Kopfschmerzen und hat sehr viel Zeit gefressen. Es lag nicht wie vermutet an den Wägezellen, sondern an der verwendeten Art der Kalibrierung und an der schlechten Python-Bibliothek. Trotz der großen Reputation der HX711py Bibliothek, konnten Fehler darin gefunden werden. Nach etwas Recherche konnte eine andere HX711-Klasse auf GitHub gefunden werden, die sich wunderbar mit den im Bienenstock eingebauten Half-Bridge Gewichtssensoren vertragen.
Das Webinterface im oben erwähnten Wartungsmodus hat sich dementsprechend verändert. Die Kalibrierung der Gewichtssensoren erforderte neue Eingabefelder, welche im nachfolgenden Screenshot zu sehen sind:
Wie im Screenshot zu sehen gibt es nun einen Offset, also einen absoluten Wert, der einfach vom ursprünglichen Messwert abgezogen wird. Außerdem gibt es einen Skalierungswert um den Messwert zusätzlich zu skalieren. Die Kalibrierung gestaltet sich mit diesen zwei Werten viel einfacher.
Weitere Neuigkeiten von HoneyPi
HoneyPi hat nun seinen eigenen Webauftritt bekommen. Auf www.honey-pi.de befindet sich ab nun ein WordPress Blog. Dort werden die Bauteile und die Software erklärt. Die Inhalte dazu werden nach und nach hochgeladen. Das Ziel dieses Blogs ist es, dass sich Imker mit Hilfe unserer Soft- und Firmware die smarteste aller Bienenstockwaagen für wenig Geld nachbauen können. Außerdem hat HoneyPi nun auch einen eigenen Facebook Auftritt: https://fb.me/TheHoneyPi. Damit kann der HoneyPi-Fortschritt stets weiterverfolgt werden, denn auch nach dem Abschluss des IoT-Seminars soll sich HoneyPi weiterentwickeln.
Habe mir eben mal die Webseite angeschaut. Wenn da jetzt noch ein paar Screenshots und Bilder von der fertigen Wage online sind, kommt die richtig gut.