Laborprotokoll: 4x5-Temp-Matrix (mit DS18B20)

Zwei Ideen kamen hier bei mir endlich zu einer Umsetzung:

  1. lässt sich so eine hübsche 2D-Darstellung der Situation in der Heiztraube nicht auch mit einer Menge einzelner Temperatursensoren realisieren?
  2. Wenn ich im Winter eh Dämmmaterial auf die Bienenkiste packe, dann kann ich per in die Dämmung gearbeiteter Temperatursensoren auch gleich die Wanderschaft der Heiztraube aufzeichnen.

(Bisher gabs hier den Ansatz eines Temperatur-Arrays in den Wabengassen - das ist bei eher vertikalen Beuten sicher sinnvoll. Die Bienenkiste hingegen ist so flach, dass ich testen möchte, ob nicht eine Temperaturmatrix von oben aufgelegt ähnlich tolle Einblicke ermöglicht.)

Die Hardware ist ziemlich weich, Filzmatten-basiert nämlich. So sieht das aus mit den Sensoren am One-Wire:

Hier mein kleiner Bastelbericht:

Zum Einsatz gebracht habe ich die blauen Verbinder wie von @poesel entdeckt (in dem Thread sind auch noch eine Menge anderer Möglichkeiten zum Thema Kabelabzweigungen diskutiert - lohnt sich im Ganzen!).
Bei Zimmertemperatur (in einem kühlen Raum war die Umhüllung der Litzen zu hart und hat den Klippern der Verbinder standgehalten) und bei zu den Klippern passenden Kabeldurchmessern verarbeiten sich die Dinger ganz gut:

Ein frisch mit dem rpi-imager aufgesetzter Raspi will für 1wire ausdrücklich klargemacht werden. Hilfreich war da ein externes Rezept. Auch den ursprünglichen Python-Code zur Datenerhebung auf dem Pi hab ich von dort, allerdings aus einem Kommentar.

Danach mussten die Sensordaten gemapped und geordnet werden, das hat @clemens vorbildlich in eine Anleitung gepackt:

Pi zum Datenversand vorbereiten

paho-mqtt in einer virtualenv hat gefehlt: paho-mqtt · PyPI

dann ssh zum pi, dort

source paho-mqtt/bin/activate
cd ~/temp-matrix
python test.py

Für den mqtt-Daten-Upload nach Hiveeyes hab ich mich am Beispiel von @mde orientiert:

Die Namenskonvention der Daten im Array ist identisch mit der von clemens:

matrix = [[temp_ir_1_1, temp_ir_1_2, temp_ir_1_3, temp_ir_1_4, temp_ir_1_5], \
          [temp_ir_2_1, temp_ir_2_2, temp_ir_2_3, temp_ir_2_4, temp_ir_2_5], \
          [temp_ir_3_1, temp_ir_3_2, temp_ir_3_3, temp_ir_3_4, temp_ir_3_5], \
          [temp_ir_4_1, temp_ir_4_2, temp_ir_4_3, temp_ir_4_4, temp_ir_4_5]]

Dadurch konnte ich im nächsten Schritt die Grafana-Panels von @wtf sehr einfach übernehmen und anpassen. Die Panels (svg, js) musste ich auf mein 4x5-format reduzieren (prozentzahlen, adressierung der array-variablen) und von quadratischer auf rechteckige Darstellung umbiegen, um der tatsächlichen Form des Filzmattensensors gerecht zu werden.

Das Skript temp-matrix-anon.py (5,4 KB) läuft viertelstündlich per cron auf dem Pi und noch hier zuhause im Testbetrieb (beachte cron&virtualenv).

Vielen Dank für die vielen tollen Vorarbeiten, auf die ich hier zurückgreifen konnte!

Stand und Ausblick

Derzeit tut sich wenig auf der Heatmap im Labor, weil ich dafür ja extra irgendwelche temperaturdiversen Oberflächen herstellen muss, damit sich was tut.
Bin gespannt wie das, sobald alles gelötet ist, auf der Bienenkiste aussieht: Ob die Filzeinfassung der Sensoren ausreichend die Zugluft im Freien abschirmt und ob die Heiztraube durch das Holz eine ausreichende Temperatursignatur abliefert.

Offene Frage(n)

  • Wie kann ich den js-code im svg-Panel so anpassen, dass die Farbgebung nicht absolut an Temperaturwerte gebunden ist, sondern sich relativ über die tatsächlich gemessene Spanne der Temparaturwerter verteilt. So ließen sich viel kleinere Temperaturdifferenzen auffällig abbilden. Damit würde ich gerne experimentieren in der Visualisierung, verstehe aber den Code nicht ausreichend. (Und im Grunde ist das kein Thema für hier, sondern gehört ins ursprüngliche 2D-Visualisierungsthema.)

todo

appendix

how to delete sensor failure entries from database
root@elbanco:~# influx
Connected to http://localhost:8086 version 1.7.10
InfluxDB shell version: 1.7.10
> use hiveeyes_....

Using database hiveeyes_....
> show series

key
---
mois_noho_sensors
...
> SHOW FIELD KEYS FROM mois_noho_sensors

name: mois_noho_sensors
fieldKey    fieldType
--------    ---------
temp-ir-1-1 float
temp-ir-1-2 float
temp-ir-1-3 float
...
temp-ir-4-5 float
> select "temp-ir-1-2" from mois_noho_sensors where "temp-ir-1-2" < -50

name: mois_noho_sensors
time                temp-ir-1-2
----                -----------
1699396254643410035 -99
> delete from mois_noho_sensors where time = 1699396254643410035

> exit
root@elbanco:~# exit
logout
Connection to elbanco.hiveeyes.org closed.
2 Likes

Bis zu wieviele Sensoren sind denn da maximal möglich?

Wo Du schon die relative Farbgebung zur jeweiligen Temperatur hier erwähnst: Mein Traum wäre es ganz viele Messpunkte zu haben, so dass ich die Temperatur gar nicht erst lese sondern mir im Wesentlichen eine gefärbte Wolke aus Datenpunkten ansehe. Angeblich fährt die Temperatur in der Winterkugel ja Achterbahn.

Jenes farblich und dreidimensional durch immersive Temperatursensoren dargestellt würde ich gerne mal die Winter über beobachten können. In wie kurzer Zeit wird hochgeheizt, wie lange hält die hohe Temperatur, und wie tief geht es im Kern und wie tief in der Peripherie?

Und schließlich: Wie wirken sich Varroabekämpfung etc auf die Temperaturen in der Kugel aus?
Da ist die horizontale Bewegung der Winterkugel bestimmt eine eher untergeordnete Beobachtung gegenüber all den anderen Aspekten.

Sind Deine verwendeten Temperatursensoren verbissfest gegenüber Bienen?

Die Filzmatte mit den Sensoren liegt auf der Bienenkiste auf - außerhalb der Kiste. Wenns soweit ist, liefer ich ein Foto nach, damit das deutlicher wird als in Worten.

1 Like

Ich bin leider kein Fachmann in solchen Fragen. Ein vernünftig klingender Thread fasst so zusammen:

There is no specific limt to the number of devices, it is determined by electrical issues related to the capacitance and impedance of your wiring. It varies depending on how long your wires are.

Die deutschsprachige Wikipedia zu “1-Wire” wird sogar konkret in Zahlen:

Die Verkabelung kann über ein einfaches Kabel bzw. eine einzelne Leitung auf einer Platine erfolgen. Mit einem passiven Pull-up-Widerstand sind so Leitungslängen von bis zu 100 m mit 150 1-*Wire-Geräten möglich. Durch die Kontrolle der Slew Rate und durch einen aktiven Pull-up-Widerstand ist es sogar möglich, Leitungslängen von bis zu 300 m mit 500 1-Wire-Geräten zu realisieren.

100 bis max. 500 Sensoren - das sollte sogar für eine 3D-Darstellung ausreichen: Eine Matte zum Auflegen und je eine seitlich. Die Hardware könnte ich basteln, falls sich rausstellt, dass das Konzept “Messung durchs Holz hindurch” tatsächlich sinnvolle Werte liefert. Aus den Daten einen Würfel mit entsprechenden Farbtönen zu modellieren: da bräuchte ich wieder eine Vorlage.

1 Like

Update:

Die Filz-4x5-Sensoren-Matte misst seit heute Mittag die Temperatur an der Holzoberfläche der Oberseite der Bienenkiste unter dem Dach über dem Brutraum.

Darüber liegt dann im Dauerbetrieb noch ein Handtuch (gegen die gröbste Zugluft) und das Dach.

Was da bisher an Daten reinkommt (alle zwanzig Sensoren messen in einem Bereich von 0,5°C), legt die Interpretation nahe: Holz isoliert sehr gut. (Dass die Kiste leer und/oder die Bienen tot sind, kann ich mit hoher Wahrscheinlichkeit ausschließen, da ich vor wenigen Tagen hier noch eine Biene beim ganz kurzen Orientierungsflug beobachtet habe.)

Aus imkerlicher Sicht ist dieses Ergebnis erfreulich, aber auch nix großartig Neues.

Aus der Sicht des Daten-Junkies ist das niederschmetternd. Denn da bedeutet es: Die Sensoren müssen doch irgendwie in der Kiste liegen, um interessantere Daten zu erheben.

Ich werde also eine leere Kiste mit entsprechenden Bohrlöchern versehen und die Sensoren von oben durchs Holz zwischen die Anfangsstreifen schieben. Auf dass der kommende Schwarm seine Wabengassen entlang der Anfangsstreifen und schön um meine Sensoren rum baut.

Aber vielleicht heizen die Bienen ja noch gar nicht so viel. Vielleicht wird bei sinkenden Temperaturen und bei stärker an- und abschwellender Temperatur in der Heiztraube doch auch durch das Holz noch eine Temperatursignatur mess-, interpretier- und darstellbar.
Ich gedulde mich also noch - der nächste Schwarm kommt ja bestimmt nicht vor dem nächsten Frühjahr.

2 Likes

Danke für das Foto! Gedanklich war ich bei den ersten Fotos von dir noch bei TBH (irgendwie bin ich da verseucht :) und dachte die Matte kommt auf die Oberträger zwischen Waben und Deckel – und selbst da wäre ich skeptisch, ob viel Wärme ankommt. Aber sorry, du schreibst ja mehrmals “Bienenkiste”. Mit Stabilbau geht das klar nicht und du musst nach außen. :-/

Ja, Holz isoliert gut und auch die äußere Schicht der Wintertraube isoliert sehr gut, normalerweise ist es selbst in der Bienenbeute jenseits der Wintertraube nur unwesentlich wärmer als draußen. Daher wäre es eh viel interessanter in der Wintertraube zu messen als irgendwo zwischen Nicht-Wintertraube und Beutenwand oder -deckel.

Die als wasserdicht verkauften DS18B20 sind dafür super, du brauchst nur Löcher und führst die Sensoren in die Beute ein, oben kannst du die verkleben oder Kabeldurchführungen verwenden, wenn du die Länge fixieren möchtest, das aber auch wieder anpassbar sein soll. Hier sieht man das etwas, die 6 Kabel in der Diagonale, die Verdickungen sind die Kabeldurchführungen, die @karsten und ich damals eingebaut haben:

So im Stock:

Vielleicht geben die Fotos von Wärmebildkameras Hoffnung, dass sich bei größeren Temperaturdifferenzen doch noch etwas tut, die messen ja auch “außen”! und da scheint es (bei tiefen Aussentemperaturen) zu funktionieren.

2 Likes

lieber clemens,

danke für deine aufmunterung. ich lauere tatsächlich schon auf die black-friday-sensoren, wenn schon dennschon.

deine einschätzung würde mich interessieren: wie viele sensoren lohnen sich für die wabengassen einer voll ausgebauten bienenkiste?

der brutraum in der bienenkiste ist etwa 60cm lang (vgl. teileliste/maße bienenkiste: trägerleiste brutwaben), knapp 21cm hoch und hat auf 43,5cm breite 12 trägerleisten.

wie wärs mit 5 sensoren pro wabengasse, alle 10 cm einer?
bei 11 gassen (die beiden “halben” gassen zwischen je äußerster Wabe und Holzwand lass ich mal weg) macht das 55 sensoren.

was meinst du? überdimensioniert? oder angemessene auflösung?

da die bienenkiste ja relativ flach ist und die ganze programmierung dafür ja auch schon steht, würde ich mich damit erstmal auf nur zwei dimensionen beschränken, also nur eine ebene messen: eben die sensoren für eine 11x5-sensormatrix so durchs holz stecken, dass die metallhülle mit ihrer länge von 5cm etwa 4cm tief in die kiste ragt und mit dem letzten zentimeter möglichst stabil im holz steckt.
was meinst du?

Wir messen ja nur im Brutraum der Bienenkiste, da hätten wir 12 Oberträger / Waben, damit 13 Wabengassen. Die Randgasse zwischen Wand und erster Wabe würde ich auslassen, wenn sie dort sitzen, sitzen sie auch in der 2. Wabengasse. Für einen Überblick genügen Sensoren in jeder 2. Gasse würde ich meinen.

Du hast ja mit der Bienenkiste und der “Höhe” den super Vorteil, dass du nur 2-dimensional messen musst, bei Magazinbeuten wäre das anders. Das wären in dieser Dimension also 6 Sensoren, die wir für einen Schnitt durch alle Waben brauchen – wenn sich die Bienen an die Anfangsstreifen halten :-) – bei 60 cm pro Wabengasse und alle 10 cm wären es 5 Sensoren - ganz am Rand können wir uns sparen, d.h. wir kämen auf 5 x 6 = 30 Messpunkte.

Das Raster wäre mit 10 cm x 7 cm (Wabenabstand bei der Bienenkiste 3,5 cm, jede 2. Wabengasse) auch ganz ausgewogen. Bewegung der Wintertraube wird eher in den Wabengasse sein und weniger ein Wechsel der Gassen.

Was ich gerade noch überlege: die wasserdichten DS18B30 haben ja Edelstahlhülsen, die im Winter ggf. auch als Kälte-/Wärmebrücke fungieren könnten. Fragst du mal deine Bienen, was die davon halten. :-) Ich habe keine Ahnung von Thermodynamik und weiß daher nicht wie relevant das ist. Just loud thinking …

ja, wichtiger punkt. aber ich stecke die edelstahlzylinder ja bis auf einen zentimeter durch das holz hindurch. das holz selbst ist ca. 2,5cm dick. hinzu kommen die trägerleisten, durch die ich ja auch noch durch muss: die sind 1cm dick.

ich muss mir also eher überlegen, wie ich den raum oberhalb des metallzylinders um das kabel herum etwa 2,5cm tief im holz mit möglichst wirksamem isoliermaterial auffülle. vielleicht bauschaum durch die oxalsäuretröpfespritze, hahaha.

es bliebe dann die kältebrücke zu bedenken, die der kupferdraht bildet, der da ja durchgeht.
stellt sich mir die frage: wie ist so ein ds18b20 eigentlich verbaut in dem stahlröhrchen? auf kontakt? oder kontaktlos? misst der die lufttemperatur im röhrchen? oder die oberflächentemperatur der innenseite des metallzylinders??
also jenachdem wäre u.u. auch die kabelage, die oben auf der kiste aufliegt, gut abzuisolieren, mit roher, unversponnener wolle z.b.

insofern spricht dein wärmebrückeneinwand auch für eher weniger als mehr messpunkte. also werd ich mich an deinen vorschlag halten. damit das ganze mittig sitzt (13 wabengassen!), sollte es auch eine ungerade anzahl messgassen sein. bei 5x5 sieht das gut aus (habs mir aufgemalt).

auch die maße eines “pixels” wären in einer 5x5-matrix ganz schön: 10cm x ~7cm (doppelter wabenabstand)

über die wirkung der säuren auf die sensoren habt ihr euch ja auch schon gedanken gemacht. gut so!

Hast Du inzwischen die Verkabelung hergestellt?
Würde mich über ein Fotoupdate sehr freuen.

Und mach Dir bloß nicht zu viel Sorgen über Kältebrücken durch die Messkabel.
Wenn das relevant wäre, dann müssten ja alle Bienen auf eingelöteten Mittelwänden erfrieren :wink:

nein, steht für die nächsten wochen an. vielleicht in den osterferien. wird ja bald zeit. dann liefer ich auf jeden fall ein bild.

So sieht das ganze jetzt aus:

Innenansicht:

Innendetails:

Morgen stehen die Anschlussarbeiten an, Ausschuss ausloten, funktionierende Sensoren sortieren, Matrix-Software auf 5x6 umstellen. Mal sehen, wie weit ich kommen werde.

2 Likes

jetzt ist die neue verkabelung komplett. (werte laufen auch schon in das grafana-dashboard.)

diesmal mit baumartiger topologie für die 30 sensoren, mit verzweigungen über 1->3-verbinder (ali), deren clipverbindungen einen soliden eindruck machen, gut auf- und zu gehen und halten, auch wenn ich den kabelbaum hin und her bewege.

meine größte hürde diesmal: ab 25 sensoren am baum verhielt sich die erkennung der sensoren als devices erratisch. am ende hab ich festgestellt, dass für höhere sensor-anzahlen der pull-widerstand niedriger zu wählen ist. nachdem ich den in den anleitungen durchgängig empfohlenen 4.7k- durch einen 2.2k-widerstand ersetzt hatte, ging alles fein. falls mir da wer die elektrotechnik dahinter erklären möchte: ich wäre sehr dankbar!

plan:

wirklichkeit:

jetzt kann der schwarm kommen!

5 Likes

hier das projekt mit nach in die kiste verlegten sensoren, auf 5x6 sensoren angepasstem code für den pi und json des grafana-desktops:

2 Likes

Vielen Dank fürs Teilen dieses wunderschönen Projekts, und das Aufgreifen früherer Entwicklungen rund um MQTT und Grafana. Wir würden gerne etwas bei der Telemetrie beisteuern, also beim Python Programm.

Hier haben wir ungefähr dargestellt, wie was wo.

1 Like

A post was merged into an existing topic: DS18B20 Datenlogger mit Raspberry Pi und Grafana

Sind die Sitzplätze der Sensoren in Grafana klar zu sehen?
Hast Du auch ein paar Bilder davon wie die Darstellung der Sensoren in Grafana nun aussieht?

siehe drei postings weiter oben: der link auf das grafana-dashboard .

das ganze sind derzeit noch testmessungen im wohnzimmer. ohne eine irgendwie geartete simulation einer heiztraube.

noch ist mein python leider so schlecht, dass das ganze script aussteigt, sobald auch nur ein einziger sensor sich aus dem kontakt wackelt und nicht mehr erreichbar ist :frowning:

um den kabelbaum besser debuggen zu können, hab ich die verteiler durchnumeriert und die sensoren ([matrix-position]:[anfangs-quadrupel-sensor-id]) drauf gemappt:

tmpm

so finde ich wenigstens flott den strang, in dem es wackelt.

wer eine idee hat, wie ich den code resistent gegen einen sensorausfall machen kann: gerne her damit, hier oder im gh-issue.

edit: hier ist die idee. danke @Andreas