ESP8266 Stockwaage – erste Eindrücke – Update

Aktualisiert März 2017

Nachdem die Hauptarbeitszeit in der Imkerei nun ein Ende gefunden hat, kann der Imker sich um die zweitschönste Sache der Welt zu kümmern: Die Weiterentwicklung der Bienenstockwaage.

In Arbeit ist eine Telemetrie-Elektronik auf Basis des ESP8266, des Wägezellenmoduls HX711, der Bosche Wägezelle H30A sowie des ESP8266 MQTT und Konfigurations-Framework Homie. Der Fokus liegt auf geringen Kosten, einem möglichem Batteriebetrieb versus einer hoher Messdichte , sowie einfacher Bedienbarkeit bei hoher Präzision der Messungen.

Die Platine, der Arduino-Sketch, der MQTT Broker sowie die Backends Influxdb und Grafana existieren bereits. Für den “massentauglichen” Betrieb mangelt es gibt es hübschen Grafiken in Grafana (realisiert via Hiveeyes.org, Links findet Ihr weiter unten) bzw. im bereits bewährten Dygraphs (Volk 1 / Volk 2). Ebenso befindet sich die benutzte Homie Version 2.0 noch in der Entwicklung. (funktioniert sehr stabil)

Elektronik:

Die  Platine kann hier heruntergeladen werden: ESP8266-BeeScale1_1.fzz.
Die Zeichnung wurde mittels Fritzing erstellt und die Platine auf den Fotos bei Fritzing FAB hergestellt. Bitte beachtet, dass in der Zeichnung nur die Platinenansicht gepflegt ist.

 

Mechanik:

 

Software:

Die Sketches können auf Github in Beta-Qualität begutachtet und heruntergeladen werden. Wie bereits oben beschrieben, befindet sich die Benutzte Homie 2.0 Version noch in der Entwicklung, hat sich aber als sehr stabil herausgestellt. Im aktuellen Master Branch funktioniert die OTA-Funktionalität (gerade) nicht (mehr). (Update 18.03.2017) Das OTA Update funktioniert nur mit base64 nicht. Binär geht es. Eine Adaption an das Hiveeyes-Projekt bzw. Backend ist erfolgt:

Beute 2 im Grafana
Beute 2 in dygraphs
Einführungsartikel auf Hiveeyes.org

Weiterhin habe wir die Messdaten der alten Stockwaage von 2015 – 2017 in das Hiveeyes System importiert, die dort jetzt zusätzlich weitergeführt werden.

Quellcode:

https://github.com/hiveeyes/arduino/tree/master/node-wifi-mqtt-homie
https://github.com/hiveeyes/arduino/tree/master/node-wifi-mqtt-homie-battery
https://hiveeyes.org/docs/arduino/firmware/node-wifi-mqtt-homie/README.html

 

Todo:

  • Alarm Handler für die Batterie-Spannung: Alarm senden,  dann für “immer” schlafen. Gelöst via Laderegler mit Schutzelektronik.
  • Anpassung an das  Hiveeyes Backend. erledigt
  • Publish einer Gesamt-Werte-Liste für Dygraphs (JSON-Liste?). erledigt
  • Gehäuse dokumentieren

Stockwaage – Update April

tl;dr

Das Projekt Selbstbau-Stockwaage läuft sehr gut und liefert interessante Erkenntnisse:

  • Gewichtszunahme seit dem 7.4.: 23kg
  • Täglicher Ausflug der Bienen und Nektar-/Pollen-/Wasser-Eintrag kann bis auf 2g genau gewogen werden.
  • Erweiterung der Sensorik durch einen Licht- und einen Feuchtigkeitssensor

Imkerliches

Das Projekt “NSA für Bienen” läuft nun seit über einem Monat überaus zufriedenstellend. Die Waage hat eine ausreichende Genauigkeit und liefert auch weiterhin sehr akkurate Werte. Wie bereits im vorhergehenden Artikel beschrieben kann man jeden morgen – ab einer Außentemperatur von 12°C – den Ausflug der Bienen wiegen. Die gemessenen Gewichtszunahmen liegen teilweise bei über 5kg(!)/Tag. (z.B. bei Markierung “1” im Graphen – Reinzoomen in den Datumsbereich durch Klicken-Halten-Ziehen).
Seit dem  07.04. (Ausgangsgewicht 39,0 kg) scheint eine durchgängige Tracht und auch meistens gutes Flugwetter zu herrschen, so dass sich das Beutengesamtgewicht bis zum jetzigen Stand (28.04.) auf 62,2kg erhöht hat. Dies ist ohne Taschenrechner somit ein Zuwachs von 23kg in 3 Wochen. So darf es weiterlaufen 🙂

Die wöchentliche Arbeit an den Bienen hat sich jedoch ein wenig verändert. Da bei der Durchsicht des Volkes ganz erhebliche Gewichte von der Stockwaage genommen werden, wird die Bienenwaage vor der Arbeit angehalten, damit keine Fehlmessungen auftreten. Gleiches gilt für den internen Temperatursensor, der bei der Arbeit an dem Volk entnommen werden muss und dann natürlich die Außentemperatur messen würde.

Wenn man sich nicht an diesen Ablauf hält, ist ein nachträgliches Bereinigen der Sensordaten fällig 🙁

Technisches

Es wird weiterhin minütlich gemessen, jedoch habe ich die Datenbasis des veröffentlichten Graphen auf 10 Minuten Intervalle ausgedünnt, damit die zu übermittelnde und durch den Browser aufzubereitende Datenmenge im erträglichen Rahmen bleibt, was der Genauigkeit der Darstellung jedoch nicht schadet.

Seit dem 22.04. habe ich die Schaltung noch durch einen Lichtsensor TSL2561 erweitert, der das einfallende Sonnenlicht misst:

Bienen-NSA-April

Wie man jedoch erkennen kann, gibt es keinen direkt proportionalen Zusammenhang zwischen Außentemperatur und einfallender Lichtmenge:

Temp-Licht

Ok, dass hätte mir jeder Hobby-Meteorologe gleich sagen können. Aber vielleicht ergeben sich im Jahresverlauf noch Erkenntnisse.
Weiterhin ist der Feuchtigkeitssensor HTU210 fertig vorbereitet. Dieser wird wie der TSL2561 über I²C Bus angeschlossen und bei nächster Gelegenheit mit eingebaut. Dieser soll mich mittels Schwellwert im check_mk rechtzeitig vor eindringender Feuchtigkeit in meiner Elektronik-Box warnen.

Ich habe mich entschieden, den Raspberry Pi nicht durch die vorab beschriebene reine Arduino Lösung mit RedFly-Shield als WLAN Modul zu ersetzen. Erstens kommt es bei mir nicht auf ein paar Milliwatt Stromverbrauch an, da ich Strom am Bienenstock habe und zweitens hat die Steuerung über den Raspberry Pi den entscheidenden Vorteil, dass ich den Arduino-Programmcode remote anpassen und aktualisieren kann.

Jedenfalls ist der Programmcode für beide Steuerungsvarianten fertig und stabil und kann auf Anfrage bereitgestellt werden.

 

Projekt Stockwaage – Update

tl;dr

Projekt Selbstbau-Stockwaage läuft weitestgehend stabil und fördert interessante Ergebnisse zu Tage.
Das Projekt ist noch ausbaufähig, sowohl in der Sensorik, als auch als Plattform zur Trachterfassung in der Region.


 

Nach knapp zwei Wochen Betrieb der Stockwaage bin ich insgesamt sehr zufrieden. Die Zuverlässigkeit der übertragenen Messwerte konnte weiter gesteigert werden, nachdem ein paar Kinderkrankheiten behoben wurden:

Wie bereits im vorhergehenden Artikel erwähnt, vereitelte unsere Aluminium-Rollade die sichere WLAN-Verbindung. Der in der Garage eingesetzte WLAN-Repeater entschärft die Situation weitestgehend. Allerdings könnte die Verbindung noch stabiler sein. Im Moment nutze ich ja noch den Raspberry Pi mit dem winzigen USB-WLAN Dongle EW-7811UN. Das dessen “Antenne” nicht die Leistung bringen dürfte liegt auf der Hand. Mal sehen, wie es mit dem RedFly Wireless Shield werden wird.

Die Arduino Sketche u.a. für dieses Shield sind jedenfalls fertiggestellt und noch weiter optimiert und modularisiert worden. In diesem Zuge habe ich mit dem Berliner Initiator mois mal Kontakt aufgenommen und wir haben uns darauf verständigt, das Projekt zusammen voranzutreiben. Weitere Interessenten, die Ihre Ideen und  Wissen einbringen möchten sind herzlich willkommen.

Ein kleines Missgeschick ist die letzten 2 Tage in den Messwerten aufgefallen: Durch ungünstige Platzierung der Steckverbindung zwischen Arduino und Waage ist ein wenig Wasser eingedrungen und hat natürlich die Werte der Messbrücke verfälscht. Der Fehler wurde behoben und die falschen Messwerte per Hand entfernt.

Die Genauigkeit der Gewichtsmessung lässt nach Umstellung von Rohwerten auf Medianwerte über 11 Messzyklen zur Zeit keine Wünsche mehr offen. Unsere auf der Beute ruhende Katze wurde automatisch raus gerechnet. 🙂

Noch eine schöne Erkenntnis:
Wenn man sich im Graphen den Zeitraum 16.03. – 17.03. (2 Tage schönes Wetter) heran zoomt, kann man folgendes erkennen:

Bienenflug-Gewicht

Jeweils gegen 11:30 Uhr überspringt die Außentemperatur (blau) die Marke von 12°C. Zeitgleich nimmt das Gesamtgewicht (grün) der Beute um ca. 100g (16.03.) bzw. 300g (17.03.) ab, um gegen Ende des Flugbetriebs (17:00 bzw. 18:00 Uhr) das gleiche an Gewicht wieder zuzulegen. Da haben wir dann wohl die Flugbienen gewogen. 😀
Dazu eine (wissenschaftlich möglicherweise nicht ganz haltbare) Modellrechnung: Die durchschnittliche Biene (Arbeiterin) wiegt ca. 120mg. 300g fehlendendes Gewicht an Flugbienen macht also ca. 2500 Bienen, die am 17.03. zeitgleich unterwegs waren. Futterverbrauch im Stock, Eintrag Pollen und Nektar, Verbrauch von Flugbenzin und eventuelle Verluste auf dem Weg lassen wir mal großzügig außen vor.

Ausblick:

Weiterhin habe ich mir den Feuchtigkeitssensor HTU21D und den Helligkeitssensor TSL2561 besorgt. Die Funktionen zum Ansteuern der beiden Sensoren sind bereits fertig und auch schon im Arduino-Sketch eingebaut. Die I²C Schaltung auf dem Breadboard sieht wie folgt aus:

Uno-RedFly-Humid-Light

Für den HTU21D hat mir ein Freund per 3D Drucker schon mal einen Käfig gedruckt, irgendwie muss man die Damen ja vom Verkitten der Sensorik abhalten. Das grundsätzliche Setup funktioniert jedenfalls schon mal. Wann ich die Sensoren in den Live-Betrieb aufnehme weiß ich noch nicht.

Aufbau eines Sensornetzwerkes in der Region?

Bei unserem heutigen Vereinstreffen habe ich die Stockwaage vorgestellt und habe 2-3 Interessenten gefunden, die bereit wären mitzumachen. Dann hätten wir die Möglichkeit, die Trachtsituationen an den verschiedenen Standorten im Vereinsgebiet zu vergleichen. Mal schauen ob das klappt.

NSA für Bienen – wir bauen uns eine Stockwaage

tl;dr

Projekt Selbstbau einer elektronischen Stockwaage ist online, siehe:


 

Mein Freund Stefan – seines Zeichens begnadeter  Modellbauer und Elektronikbastler – rief mich letztens an, weil er im Internet über ein Projekt gestolpert ist: “Hey Alex, schau dir das mal an, die machen dort NSA für Bienen!” Ich hab mir dieses Projekt dann mal angeschaut und war doch ziemlich davon angetan, obgleich meine Kenntnisse bezüglich der Arduino Plattform gleich null sind. Programmieren ist auch nicht so unbedingt mein Ding und Elektronik schon gar nicht. Stefan überredete mich es doch einmal zu versuchen und versicherte mir seine Hilfe hinsichtlich der Elektronik. Nach Durchsicht der Teileliste ein paar Telefonaten mit Stefan ging es an die Bestellung der Teile in gefühlt 12 verschiedenen Online-Shops. Nach dem Erhalt etlicher Päckchen konnte es dann losgehen.

Ich entschied mich sowohl den Programmablauf als auch die Steuerung der Messung anders zu gestalten, da ich die Visualisierung und Alarmierung mittels check_mk durchführen möchte, da ich mich aus beruflichen Gründen sehr gut mit diesem Monitoring-System auskenne. Dazu soll, zumindest im ersten Schritt ein Raspberri Pi als Monitoring Client die Steuerung und Abfrage der Messelektronik auf dem Arduino übernehmen.

Die Schaltung wurde im ersten Schritt auf einem Breadboard realisiert. Parallel hat ein Bekannter mir das Gestell für die Wägeplattform geschweißt:

Bienen-NSA-Elekronik-BreadboardWägeplattform1 Wägezelle

Trotz meiner Talentfreiheit hinsichtlich des Programmierens habe ich den C-Quellcode des Arduino an meine Bedürfnisse anpassen können und ein Event-gesteuertes Auslesen über die serielle Schnittstelle realisiert. Auf der RaspberryPi-Seite habe ich ein kleines Python-Script geschrieben, welches die Anbindung an check_mk  als local check realisiert. Neben der Waage habe ich auch noch zwei Temperatursensoren verbaut. Einer misst die Umgebungstemperatur, der Andere die Temperatur in einer der zentralen Wabengassen des Brutraums. Stefan hat mir dann aus der Breadboard-Schaltung ein Arduino-Shield gebaut.

Nach einem Testlauf des Konstrukts im heimischen Keller, haben die Damen des ersten Beute am 10.03.15 Ihren neuen Unterbau bezogen. Bei dieser Gelegenheit wurde auch gleich der zweite Beutenbock in Betrieb genommen:

Beutenbock-Stockwaage

Zwischenfazit

Die Messwerte nach knapp einer Woche im Live-Betrieb sind vielversprechend:

1Woche

Die WLAN-Verbindung könnte noch etwas besser sein: Das Loch in der Grafik in der Nacht vom 12./13.03. ist unserer Aluminium-Rollade zu verdanken, die dem WLAN den Rest gegeben hat. Dieses Problem wurde erstmal durch einen WLAN Repeater behoben.

Ausblick

Der Artikel ist noch nicht vollständig und das Projekt noch nicht abgeschlossen. Bei Gelegenheit werde ich noch weitere Fotos und den angepassten Quellcode nachreichen. Im Moment bin ich dabei, das System ggf. komplett über Arduino umzusetzen ohne den Raspberry Pi. Weitere Sensoren (Luftfeuchtigkeit u.a.) sind angedacht.