Station für Bodenfeuchtigkeit

Schon lange liegen bei mir ne hand voll kapazitive Bodenfeuchte Sensoren herum. Schon lange wollte ich mal damit spielen, jetzt bin ich endlich dazu gekommen ne kleine Station zu bauen.

Da mir der LoRa32u4 Controller immer noch sehr gut gefällt, mir es aber nicht gelungen ist den in Idle unter 2mA zu bekommen, habe ich mich einfach für eine kleine Solarzelle von Amazon entschieden. Erste Messungen ergaben, das die Zelle 5,8V produziert bei vollen Sonnenschein. Kurzerhand geguckt was am LoRa32u4 für ein Spannungsregler verbaut ist, ein AP2112 und ein Blick ins Datenblatt sagt, bis 6V ok, absolutes maximum 6,5V von daher alles easy. Kurzerhand noch ein Messgerät in Reihe mit reingeklemmt und gesehen das die Zelle bei voller Sonneneinstrahlung locker 100mA liefert (ich glaube mehr kann der LoRa32u4 eh nicht laden). Um die Nacht zu überbrücken wurde an den LoRa32u4 dieser LiPo angeschlossen. Leider passen die Stecker nicht also wurden kurzerhand diese Stecker gekauft und an den LiPo dran gelötet. Im moment ist der Controller in gar keine “sleep” Modus, somit braucht er im Idle sogar ~11mA ohne den Bodenfeuchtesensor gemessen, keine Ahnung was der noch zusätzlich braucht. Mal sehen ob ich so damit hin komme oder ob bald das Licht aus geht 😉 Da der Sensor aber eh nur im Sommer verwendet wird, denke ich schon das es reichen sollte.

In der Verteilerbox wird aktuell noch mit Wagoklemmen gearbeitet, so kann ich jederzeit das ganze umklemmen wenn ich noch was ändern will ohne ständig zum Lötkolben greifen zu müssen (ist aktuell nur ein Testsystem). Das ganze sah dann etwa so aus (die Kabel für den Bodenfeuchtesensor fehlen hier noch)

Auch ein erster “Regentest” (mit Rasensprenger) hat die Box wunderbar dicht gehalten, sie ist immerhin als IP66 spezifiziert

Der Bodenfeuchtesensor wurde mit Polyurethan Klarlack eingesprüht um ihn und die Elektronik darauf wasserfest zu bekommen. Ich bin wirklich mal gespannt wie lang er das überlebt. Genau dafür soll ja der Test sein 😉

Die Daten werden per LoRaWAN übermittelt, auf meinen Server läuft ein kleines Script das die MQTT Daten abfängt und in eine InfluxDB schiebt. Auf meinen Grafana (wenn die Seite nicht geht hier lesen) kann man sich die Werte angucken. Der Sensor ist aktuell nicht kalibriert (0% sind 3,3V und 100% sind 0V oder andersherum? Ich weiß es nicht mehr :)), ein erster Test hat ergeben, das etwa 8-9% komplett trocken ist und etwa 46% komplett im Wasser. Ob ich das mal auf 0-100% anpasse muss ich erstmal gucken ob der Bereich immer gleich bleibt oder ob das irgendwann mal wandert. Bei den Werten vor 10:00Uhr am 23.04.2019 hing der Sensor noch nicht am Analogeingang (siehe Regenbild) dran, somit wurde da nur ein offener Analogeingang übermittelt und die Werte sind nur rauschen, diese einfach ignorieren ;). Ebenso hat am LoRa32u4 noch die Antenne gefehlt, deshalb auch die schlechten RSSI Werte obwohl er nur einen Meter neben der Gateway-Antenne lag.

Ich lass das Ding jetzt mal 1-2 Tage im Rasen stecken wie auf dem ersten Bild zu sehen und danach landet er auf einen Bauernhof für Gemüsebau und wir werden mal testen ob man damit was anfangen kann.

Der Code ist im Moment noch etwas Müllhaufen, ich werde den mal aufarbeiten und dann gibts den auch hier im Blog zu “bestaunen”

Dezenter Hinweis warum homeserver.dresel.it nicht geht

–> Weil du kein IPv6 hast!

christiand@christianpc:~$ dig A homeserver.dresel.it +short christiand@christianpc:~$ dig AAAA homeserver.dresel.it +short 2a06:e881:340a:1:1e98:ecff:fe0f:1e19
christiand@christianpc:~$

Ich bin einfach zu geizig 80€/Monat für ein /24 Block auszugeben, also lebe ich einfach in der Zukunft.

Hast du kein IPv6, hast du kein komplettes Internet ¯\_(ツ)_/¯

LoRaWAN Gateway Statistik

Hallo zusammen

heute mal wieder ein kleiner Beitrag. Ich hab mich diesen Abend hingesetzt und mal eine Grafana Statistik für mein LoRaWAN Gateway in Neunhof aufgesetzt.

Zuerst musste ich überlegen wie ich an die Daten ran komme, da kam mir die Idee das der Paket Forwarder die Daten ja nicht nur an einen Server (ans TTN) schicken kann, sondern an mehrere. Man kann die Daten doch bestimmt auch an einen eigenen Server schicken und dort “irgendwie” abfragen. Also mal die global_conf.json angepasst und meinen eigenen Server eingtragen:

[...]
        "gateway_conf": {
                "gateway_ID": "B8XXXXXX",
                "servers":
                [ {
                        "server_address": "router.eu.thethings.network",
                        "serv_port_up": 1700,
                        "serv_port_down": 1700,
                        "serv_enabled": true
                },
                {
                        "server_address":"10.XXX.XXX.XXX",
                        "serv_port_up":1700,
                        "serv_port_down":1700,
                        "serv_enabled":true
                }
                ]
        }
[...]

Danach mir das ganze bisschen per netcat angeguckt und festgestellt, das die Daten ja wunderbar im Klartext ankommen. Also kurz mal geguckt wie man mit PHP einen socket aufmachen kann und lesen kann und hab das dann auch recht schnell hinbekommen. Das Script wurde dann gar nicht so groß, ich hab es mal auf github abgelegt.

Bei mir selbst hab ich noch eine weitere Zeile rein gebaut:

system(“curl -i -XPOST ‘https://example.com:8086/write?db=LoRaWAN_GW_STAT_Neunhof’ -u admin:PASSWORD –data-binary ‘LoRaWAN_GW_STAT_Neunhof,gw=gw1,type=assembly chan=$chan,freq=$freq,datr=\”$datr\”,codr=\”$codr\”,rssi=$rssi,size=$size'”);

somit werden die Daten direkt in eine InfluxDB geschrieben. Danach noch bisschen mitm Grafana gekämpft und entstanden ist dann dieses schöne Dashboard (okok paar Sachen muss ich noch optimieren… $irgendwann ;))

http://homeserver.dresel.it:3000/d/9p1q51RZz/lorawan-gateway-neunhof?orgId=1&tab=visualization

Mal schauen wie es sich macht, wenn da mehrere verschiedene Pakete rein kommen. Bisher bekomm ich nur die Pakete von meine Solarstation.