{"id":514,"date":"2018-06-29T19:33:23","date_gmt":"2018-06-29T19:33:23","guid":{"rendered":"https:\/\/www.wpvs.de\/iot-2018\/?p=514"},"modified":"2021-05-14T10:07:03","modified_gmt":"2021-05-14T08:07:03","slug":"honeypi-6","status":"publish","type":"post","link":"https:\/\/www.iot-embedded.de\/iot-2018\/projekt-honeypi\/honeypi-6\/","title":{"rendered":"HoneyPi (6) Sufstick, AP, W\u00e4gezellen &amp; Python"},"content":{"rendered":"<h1>Auswahl eines Surfsticks f\u00fcr den Raspberry Pi<\/h1>\n<p>Die Internetanbindung des Honigstands erwies sich schwieriger als ich mir das vorstellte. Mit einfach einen Surfstick anzuschlie\u00dfen 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\u00e4t, welches sich zuerst als USB-Device beim Raspberry pr\u00e4sentiert. Mit \u201eusb_modeswitch\u201c \u00e4ndert sich das automatisch und das USB-Device wird als Analogmodem erkannt, welches mit AT-Codes gesteuert wird. Das ist vor allem dann n\u00fctzlich, wenn man auch SMS verschicken m\u00f6chte. Ein Problem ist es aber, dass vor allem bei dem mir vorliegenden Noname-Surfstick die ben\u00f6tigten AT-Kommandos nicht dokumentiert sind und sich dazu wenig Brauchbares im Internet findet. Deshalb habe ich mich nach etwas Recherche f\u00fcr 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 \u201ebereits als Modem konfiguriert und wird sofort erkannt\u201c. Daher w\u00e4re dieser Surfstick f\u00fcr uns die beste Variante. Mit dem Kommando \u201eifconfig -a\u201c wird das Modem als \u201ewwan0\u201c 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 \u201esudo nano \/etc\/network\/interfaces\u201c um die folgenden Zeilen zu erg\u00e4nzen:<\/p>\n<p>allow-hotplug usb0<br \/>\niface usb0 inet dhcp<\/p>\n<p>Diese zwei Sticks eignen sich optimal um ins Internet zu gelangen, sind jedoch f\u00fcr Steuerbefehle ungeeignet. Nach einmaliger Konfiguration der APN und des SIM-PINs im Webinterface (via IP-Adresse erreichbar), k\u00f6nnen die Surfsticks ohne Installation an jedem beliebigen Ger\u00e4t verwendet werden.<\/p>\n<p>Der Vollst\u00e4ndigkeit halber m\u00f6chte ich gerne die M\u00f6glichkeit eines externen 3G-Modems erw\u00e4hnen, welches als Hotspot arbeitet. Der Raspberry Pi kann sich in dieser Variante einfach in das WLAN des 3G-Modems anmelden. Diese M\u00f6glichkeit 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\u00dferdem sind in manche Modelle (z.B. Huawei E5330) Statusanzeigen f\u00fcr Akkustand und Verbindungsst\u00e4rke miteingebaut. Die externen 3G-Modems ben\u00f6tigen eine eigene Stromversorgung \u00fcber Micro-USB, k\u00f6nnen aber auch durch die USB-Buchse des Raspberry Pis gespeist werden.<\/p>\n<p><a href=\"http:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/06\/Surfsticks-e1530300602545.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-medium wp-image-515\" src=\"http:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/06\/Surfsticks-e1530300602545-300x136.jpg\" alt=\"\" width=\"300\" height=\"136\" srcset=\"https:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/06\/Surfsticks-e1530300602545-300x136.jpg 300w, https:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/06\/Surfsticks-e1530300602545-1024x466.jpg 1024w, https:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/06\/Surfsticks-e1530300602545-768x349.jpg 768w, https:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/06\/Surfsticks-e1530300602545-1536x699.jpg 1536w, https:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/06\/Surfsticks-e1530300602545-2048x932.jpg 2048w, https:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/06\/Surfsticks-e1530300602545-1568x713.jpg 1568w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<h1>AccessPoint und Surfstick \u2013 vertr\u00e4gt sich das?<\/h1>\n<p>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\u00fcr das Routing. Da f\u00e4llt es einem irgendwann schwer \u00fcberhaupt noch zu blicken was da genau wo zugeordnet wird. Es wurde nach einer anderen Alternative gesucht, welche eine Ver\u00e4nderung der Raspberry interfaces Konfiguration zul\u00e4sst. Der verwendete Vodafone Surfstick ben\u00f6tigte n\u00e4mlich diese zwei Zeilen unter interfaces:<\/p>\n<p>allow-hotplug wwan0<br \/>\niface wwan0 inet dhcp<\/p>\n<p>Leider hat das den AccessPoint einfach lahmgelegt. Mit dem neuen Huawei Surfstick der gar nicht als wwan0 erkannt, sondern mit dem Kommando \u201eifconfig\u201c direkt als eth0 Schnittstelle gelistet wird, ist das aber eh Geschichte.<\/p>\n<h1>Unsere Python-Skripte auf dem Raspberry Pi<\/h1>\n<p>Der HoneyPi hat einen Art Wartungsmodus, der durch den angeschlossenen Taster gestartet und gestoppt werden kann. Der Wartungsmodus ist daf\u00fcr da, damit die kontinuierliche Messung unterbrochen werden kann. Dadurch erh\u00e4lt der Imker keine Fehlmessungen, wenn er seine Arbeit am Bienenstock verrichtet. Au\u00dferdem ist im Wartungsmodus der AccessPoint aktiv, von wo Einstellungen an der Hardware und den Sensoren vorgenommen werden k\u00f6nnen.<\/p>\n<p>Soweit ist die Theorie, wie das alles funktionieren sollte. Im letzten Wochenbericht konnten wir bereits berichten, dass die kontinuierliche Messung und die \u00dcbertragung der Daten an ThingSpeak funktioniert. Der Taster war zu dieser Zeit noch nicht im Betrieb. Die Umsetzung erfolgte nun etwas anders als gedacht:<\/p>\n<p>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\u00e4nderten State abfragt. Von dort wird der Thread f\u00fcr die Messroutine gestartet und gestoppt. Zuvor war die Filter-Funktion \u2013 eine Funktion um Ausreiser und fehlerhafte Messungen zu filtern \u2013 in einem weiteren separaten Thread gestartet worden. Diese Konstellation war jedoch fehleranf\u00e4llig f\u00fcr Threads, die nicht richtig beendet werden konnten.<\/p>\n<h1>Probleme mit dem Gewichtssensor und A\/D-Wandler f\u00fcr die Stockwaage<\/h1>\n<p>Die 3 Euro W\u00e4gezellen aus China machten zu Beginn keinen guten Eindruck. Die Kalibrierung bereitete gro\u00dfe Kopfschmerzen und hat sehr viel Zeit gefressen. Es lag nicht wie vermutet an den W\u00e4gezellen, sondern an der verwendeten Art der Kalibrierung und an der schlechten Python-Bibliothek. Trotz der gro\u00dfen 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.<\/p>\n<p>Das Webinterface im oben erw\u00e4hnten Wartungsmodus hat sich dementsprechend ver\u00e4ndert. Die Kalibrierung der Gewichtssensoren erforderte neue Eingabefelder, welche im nachfolgenden Screenshot zu sehen sind:<\/p>\n<p><a href=\"http:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/06\/Webinterface-Kalibrierung-Gewichtssensor.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-516 size-medium\" src=\"http:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/06\/Webinterface-Kalibrierung-Gewichtssensor-300x145.jpg\" alt=\"\" width=\"300\" height=\"145\" srcset=\"https:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/06\/Webinterface-Kalibrierung-Gewichtssensor-300x145.jpg 300w, https:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/06\/Webinterface-Kalibrierung-Gewichtssensor-1024x494.jpg 1024w, https:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/06\/Webinterface-Kalibrierung-Gewichtssensor-768x370.jpg 768w, https:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/06\/Webinterface-Kalibrierung-Gewichtssensor.jpg 1124w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Wie im Screenshot zu sehen gibt es nun einen Offset, also einen absoluten Wert, der einfach vom urspr\u00fcnglichen Messwert abgezogen wird. Au\u00dferdem gibt es einen Skalierungswert um den Messwert zus\u00e4tzlich zu skalieren. Die Kalibrierung gestaltet sich mit diesen zwei Werten viel einfacher.<\/p>\n<p><a href=\"http:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/06\/Waegezellen.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-medium wp-image-518\" src=\"http:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/06\/Waegezellen-300x225.jpg\" alt=\"\" width=\"300\" height=\"225\" srcset=\"https:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/06\/Waegezellen-300x225.jpg 300w, https:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/06\/Waegezellen-1024x768.jpg 1024w, https:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/06\/Waegezellen-768x576.jpg 768w, https:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/06\/Waegezellen-1536x1152.jpg 1536w, https:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/06\/Waegezellen-2048x1536.jpg 2048w, https:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/06\/Waegezellen-1568x1176.jpg 1568w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<h1>Weitere Neuigkeiten von HoneyPi<\/h1>\n<p>HoneyPi hat nun seinen eigenen Webauftritt bekommen. Auf <a href=\"http:\/\/www.honey-pi.de\">www.honey-pi.de<\/a> befindet sich ab nun ein WordPress Blog. Dort werden die Bauteile und die Software erkl\u00e4rt. 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\u00fcr wenig Geld nachbauen k\u00f6nnen. Au\u00dferdem hat HoneyPi nun auch einen eigenen Facebook Auftritt: <a href=\"https:\/\/fb.me\/TheHoneyPi\">https:\/\/fb.me\/TheHoneyPi<\/a>. Damit kann der HoneyPi-Fortschritt stets weiterverfolgt werden, denn auch nach dem Abschluss des IoT-Seminars soll sich HoneyPi weiterentwickeln.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Auswahl eines Surfsticks f\u00fcr den Raspberry Pi Die Internetanbindung des Honigstands erwies sich schwieriger als ich mir das vorstellte. Mit einfach einen Surfstick anzuschlie\u00dfen war es nicht getan. Es stellte sich heraus, dass es bei den Surfsticks Unterschiede gibt. Der<\/p>\n","protected":false},"author":3,"featured_media":515,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[3],"tags":[],"_links":{"self":[{"href":"https:\/\/www.iot-embedded.de\/iot-2018\/wp-json\/wp\/v2\/posts\/514"}],"collection":[{"href":"https:\/\/www.iot-embedded.de\/iot-2018\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.iot-embedded.de\/iot-2018\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.iot-embedded.de\/iot-2018\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.iot-embedded.de\/iot-2018\/wp-json\/wp\/v2\/comments?post=514"}],"version-history":[{"count":1,"href":"https:\/\/www.iot-embedded.de\/iot-2018\/wp-json\/wp\/v2\/posts\/514\/revisions"}],"predecessor-version":[{"id":638,"href":"https:\/\/www.iot-embedded.de\/iot-2018\/wp-json\/wp\/v2\/posts\/514\/revisions\/638"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.iot-embedded.de\/iot-2018\/wp-json\/wp\/v2\/media\/515"}],"wp:attachment":[{"href":"https:\/\/www.iot-embedded.de\/iot-2018\/wp-json\/wp\/v2\/media?parent=514"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.iot-embedded.de\/iot-2018\/wp-json\/wp\/v2\/categories?post=514"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.iot-embedded.de\/iot-2018\/wp-json\/wp\/v2\/tags?post=514"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}