Inbetriebnahme T-Beam TTGO v1 TTN Tracker

Schon lange nicht mehr von mir gehört und da ich heute ziemlich zu kämpfen hatte am Ende aber durch vieles rumprobieren doch irgendwann zum Erfolg kam, dachte ich das ich das mal eben niederschreiben kann

Schon vor einiger Zeit hab ich mir so ein T-Beam TTGO gekauft als handlichen TTN-Tracker. Von einem Mitglied vom FabLab Region Nürnberg e.V. hab ich mir schon mal einen ausgeliehen gehabt und fand das Ding wirklich schick, handlich und hübsch. Also muss ich auch so eins haben 😀

Die Inbetriebnahme gestaltete sich aber etwas schwierig. Ich bin zuerst über diesen Blog gestolpert, die Beschreibung von dort lief aber mal einfach gar nicht.

Mir wurde immer nur folgender Output per serial um die Ohren geworfen:

clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:1216
ho 0 tail 12 room 4
load:0x40078000,len:9720
ho 0 tail 12 room 4
load:0x40080400,len:6352
entry 0x400806b8
TTN Mapper
FAILURE
*Arduino/libraries/MCCI_LoRaWAN_LMIC_library/src/lmic/oslmic.c:53

ich hab auch die IBM 1.5.0+arduino-2 wie beschrieben probiert aber es half alles nix, der Fehler war immer der gleiche und deutete auf ein Pinout Problem zum LoRa Chip hin obwohl ich mir sicher was das richtig eingestellt zu haben.

Wie ich nach einigen suchen feststellte, lag es daran das ich die Board Revision 1 habe und diese laut diesen GitHub Eintrag nicht funktioniert.

Zum Glück wurde dort aber ein weiteres Repo verlinkt das angeblich mit v1 umgehen soll.

Also erstmal die ganzen dort beschrieben libraries heruntergeladen, installiert, kompiliert (juhu es baut \o/) und mich schon gefreut. Irgendwie hab ich den Schritt 3 aber nicht ganz verstanden und erstmal ausgelassen.

Ja laut Seriellen Log sendet das Ding auch fleißig aber ankommen tut am Gateway nix 🙁

Also nochmal über diesen Schritt 3 geguckt, hm man soll die Datei kopieren oh ich hab sie nur angepasst. Also nochmal diese MCCI lmic angeguckt und oh wunder da drinnen gibt es die Datei:

/Arduino/libraries/MCCI_LoRaWAN_LMIC_library/project_config/lmic_project_config.h

aufgemacht und shit… steht auf us915, na das kann ich ja bei uns in Europa nicht gehen. Geändert auf eu868 und oh wunder das Teil funktioniert 🙂

Danach noch den Decoder ins TTN kopiert und die ttnmapper Integration aktiviert und jetzt hab ich nen handlich kleinen Tracker.

Mein Mapping ist bereits hier zu sehen, ich hoffe da kommt nun bald mehr dazu, ich werde das Teil nun fleißig mit mir herumtragen 🙂

Vom unterversorgten Bürger über #rfzdf bis nach #rfnix

In letzter Zeit ist es hier wohl bisschen ruhig geworden. Aber es ist dennoch sehr viel im Freifunk passiert und das will ich hier jetzt mal bisschen aufdröseln. Angefangen hat alles mit einer Mail an die Freifunk Franken Mailingliste. Allein dieser Mailverlauf ist schon lesenswert wer ihn noch nicht gelesen hat

https://lists.freifunk.net/pipermail/franken-freifunk.net/2019-July/017323.html

Das ganze hat sich dann recht schnell dahin entwickelt, dass wir eine Person aus der Stadt Zirndorf kennen gelernt haben die dort in der IT arbeitet. Auch hier sind wir auf sehr positive Resonanz gestoßen und es ist grundsätzliches Interesse und auch Geld da, dass die Stadt selbst Freifunk macht und sich an unser Richtfunknetz anbindet. Nebenbei erwähnt betreibt die Stadt Zirndorf auch ein LoRaWAN Gateway.

Auch haben wir Kontakt zu Proact hergestellt. Die Firma betreibt in Nürnberg den N-IX und F3 Netze e.V. hat dort bereits Hardware angeschlossen und auch genug Transitkapazitäten. Wenn man also unser Richtfunknetz an den N-IX bekommt, würde man die ganzen Tunnel durch DSL und Kabelanschlüsse sparen und wäre “direkt im Internet”.

Der ganze Dreh- und Angelpunkt um das Projekt ist das Dach des FabLab Nürnbergs da dieses gute Sicht auf den SüdWestPark hat, gute Sicht nach Zirndorf und Oberasbach aber auch freie Sicht auf das Haus von Tim (Mail von oben) und wir dort oben auch genug Platz für Antennen haben. Die Strecken sind hier alle überschaubar und unter 5KM was für ordentliche Geschwindigkeit schon wichtig ist.

Da die Sache mit #rfnix noch etwas dauert (da müssen noch viele Randdaten geklärt werden) haben wir erstmal damit angefangen das Dach am FabLab auszubauen und TimP anzuschließen. Genug der Worte jetzt einfach mal ein Bild was mittlerweile am FabLab Dach steht:

Der Mast am FabLab Dach kurz nach dem Aufbau

Hier ist auch die Powerbeam in Richtung Hardhöhe hingezogen sowie eine weitere PBE-5AC-620 für die Verbindung zu TimP

Die Antennen sind optimal für diese Distanz und bringen die besten Modulation auch noch bei 40MHz. Der Link ist zwar schon in Betrieb aber auf der Gegenseite fehlt noch das Gateway, erst dann kann man ordentliche Speedtests machen und auch die Frequenzen richtig einstellen.

Die nächsten Pläne sind nun zu gucken wie wir Zirndorf weiter anbinden können, Projekt #rfzdf sowie auch an den N-IX ran kommen, Projekt #rfnix. Beides ist problemlos von dem neuen Mast erreichbar. Auch muss im FabLab noch vieles an Technik, Kabel usw. schön gemacht werden, da ist vieles noch ein großes Provisorium.

An dem Mast kommt noch ein Schaltschrank hin mit einem ES-10X sowie am anderen Rand des Gebäudes ein kleiner Mast auf einem Schirmständer für 2 weitere Verbindungen. Dort liegt bereits Glas und Strom und kommt ein EP-R6 hin mit den 2 weiteren Antennen.

Das LoRaWAN Gateway wird auch an den Mast umziehen.

Auch ist geplant das Dach autark mit Solar und vielleicht Windenergie zu betreiben. Es wurde aber zur Sicherheit dennoch ein Stromkabel neben dem Glas auf das Dach verlegt falls der Strom nicht ausreichen sollte.

Der Spruch: “Es wird großes entstehen” ist hier also gar nicht so falsch 😉 Es ist nur noch ganz ganz viel Arbeit und gibt viel zu tun.

Dieser Beitrag sowie das enthaltene Foto stehen unter CC-BY-NC-SA davon ausgeschlossen ist der Ubiquiti Screenshot.

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.

AS205165 im Freifunk

Nachdem mein AS205165 immer mehr im Freifunk verwendet wird, möchte ich heute mal aufzeigen wie das Netz eigentlich genau aufgebaut ist. Ich habe dazu mal eine Grafik erstellt

Aufbau AS205165

Seite in das Internet

Fangen wir mal in der Mitte des Bildes an. Dort finden sich meine 2 BGP-Router. Das sind eigentlich nur kleine VMs bei https://vserver.site/ gehostet. Pluto steht in Amsterdam und hat einen 1Gbit Link an den Speed-IX. Merkur steht in Frankfurt und hat einen 1Gbit Link an den locix sowie einen 100Mbit Link an den KleyRex. An allen 3 Internet Exchanges wird mit den dortigen Routeservern gepeert, so das schon darüber eine ganze Menge an Peerings zu div. Firmen entstehen. Es sind aber auch einige Einzelpeerings über den IX vorhanden, die ich jetzt nicht alle aufzähle speziell wird aber google gut benutzt (hauptsächlich über AMS) sowie Cloudfare (nur über FRA). Als Transitprovider wird an beiden Standorten Hurricane Electric verwendet. Leider hat sich schnell rausgestellt, das über HE das Cogentland nicht erreichbar ist. Nachdem es dann auf der Mailingliste von Freifunk Franken auch Nachfragen dazu gab, das osm.org nicht erreichbar ist(die erste Webseite die aufgetaucht ist, welche nur über cogent geht) musste schnell Abhilfe her. Irgendwie hat mir der Name meerfarbig GmbH & Co. KG schon immer gefallen und ist mir immer irgendwie ins Auge gesprungen. Also vor 2 Tagen mal eine nette Mail hingeschrieben und prompt ne Antwort: “Klar helfen wir”. So konnte ich dann gestern auch den Link in Betrieb nehmen und nun ist auch das Cogentland erreichbar. Vielen Dank nochmal hier an meerfarbig für die wirklich schnelle und total unproblematische Hilfe.

Zusätzlich wurde völlig freiwillig von Level66 auf meine Tweets bei Twitter reagiert und freiwillig angeboten mir Transit über den kleyrex zu schalten. Auch hier vielen vielen Dank für die Hilfe. Es freut mich zu sehen das es Firmen gibt die so völlig problemlos von selbst helfen. DANKE!

Aktuell kommt der meiste Traffic über den Speed-ix herein, vieles scheint google zu sein, einiges HE und ein bisschen was kommt über meerfarbig herein. Der Rest ist eher so da, das er halt da ist und wird nur wenig bis gar nicht genutzt.

Merkur und Pluto sind nicht direkt miteinander verbunden. Ich nutze hier einen kleinen Trick:

Auf beiden Servern wird ein unterschiedliches /48 Netz exportiert über welche sie jeweils direkt ansprechbar sind und auch die GRE-Tunnel aufgebaut werden. Dieses /48 Netz gehört also direkt zum jeweiligen Server. Weiterhin wird auf beiden Servern das /48 für Freifunk Franken exportiert welches damit aus Sicht des Internets ein Anycast Netz darstellt. Es kommt auf einen der beiden Servern herein und wird dann über die GRE-Tunnel zu fff-jupiter oder fff-io weiter geroutet.

Seite in das Freifunknetz

Rechts von den BGP-Gateways geht es dann ins Freifunknetz. Aktuell hängen die 2 BGP Gateways überkreuzt per Babel an 2 Server. fff-jupiter ist eine VM bei Hetzner-Root-Server und macht neben den Peerings ins Freifunknetz noch weitere diverse Sachen wie z.b. DNS oder wireguard Verbindungen aus der Stadt annehmen um dorthin das Layer 3 Babel Netz weiter zu tragen, welches dann per Richtfunk durch die Stadt verteilt wird. Auch per GRE hängen diverse weitere Server von vielen weiteren Personen mit dran die auch alle mein v6 Netz und das AS205165 nutzen können oder es auch schon nutzen. Damit nicht alles an Hetzner und meiner einen VM hängt, habe ich vor kurzen mir eine kleine 100mbit-Backup-VM bei OVH geklickt. Diese, Io genannt ein Mond des Jupiters, soll später mal Backup für fff-jupiter werden. Auch hier werden bald diverse Peerings ins Freifunknetz eingerichtet die aber nur als Backup dienen sollten, denn sonst ist der 100Mbit Link schnell voll. Somit wurden nahezu alle SPoF entfernt und das Netz sollte hoffentlich ziemlich ausfallsicher sein.

Hinter fff-jupiter hängt noch fff-uranus welches auch eine VM auf meinen Hetznerserver ist und dort zentrale v2 Gateways für diverse Hoods zur Verfügung stellt

Aufruf

Ich bin nach wie vor auf der Suche nach weiteren Peerings ins Freifunk-Franken-Netz sowie auch der Aufruf an alle Gatewaybetreiber egal ob v2 oder dezentral, nutzt mein Netz für euer Setup, es sind aktuell noch genug Kapazitäten, Ressourcen und IP-Adressen da. Wer will heute noch ein Netz ohne IPv6 betreiben 😉

Weiterhin würde ich mich über weitere Transitsponsoren an den genannten Internet-Exchanges freuen. Es ist zwar jetzt erst mal soweit das alles gut geht aber man kann ja nie genug haben 😉 Wer also noch etwas Kapazitäten frei hat, bitte meldet euch bei mir und helft mir damit ich Freifunk Franken weiter helfen kann. Speziell am Speed-IX und locix habe ich noch genug Traffic nach oben offen, der kleyrex mit seinen 100Mbit ist da immer bisschen knapp aber natürlich sage ich da auch nicht nein, wenn ihr mir helfen könnt.

Solaranlage im Winter…

Die letzten Tage gab es hier kaum Sonne. Um genau zu sein, waren es 10 Tage wo nur sehr wenig bis gar keine Sonne da war. Man sieht gut wie die Akkuspannung immer weiter eingebrochen ist.

Dank der überdimensionierten Solarzelle ist aber genau das eingetreten was ich gehofft habe, über den Tag wurde selbst bei bewölkten Himmel immer noch etwas Strom erzeugt, so das man nicht komplett auf den Akku angewiesen war.

Das Bild ist schon paar Tage alt, es wurde am 12.1 gemacht

Lange habe ich damit gerungen, wie tief die Akkuspannung nun einbrechen darf, von “keinesfalls <12V” bis “10,8V sind ok” habe ich alles gefunden.

Ich glaube nun mittlerweile das es hier sehr auf den Akku ankommt. Starterbatterien z.b. in Autos sollte man wirklich keinesfalls auf <12V entladen. Ich hab hier aber eine Semi-Traktionsbatterie für Solaranlagen. Hier gilt wohl die Regel, keinesfalls unter 10,8V. Was ich bisher so gefunden habe, gelten für mich nun folgende Werte:

Keinesfalls unter 10,8V fallen und den Akku keinesfalls längere Zeit (viele Tage) unter 11,5V betreiben. Sollte ich in diesen Zustand kommen und der Victronregler nicht abschalten fahre ich raus, bau den Akku aus und lade ihn daheim im warmen wieder auf.

Zum Glück waren die letzten 3 Tage schon wieder etwas sonniger, so das der Akku mittlerweile wieder deutlich voller ist:

Genauer können die Daten in meinen neu aufgesetzen Grafana angeguckt werden.

Jetzt wo die Tage auch langsam wieder länger werden und ab Freitag noch mehr Sonne gemeldet wird, bin ich guter Hoffnung die kürzesten Tage überstanden zu haben. Der Victronregler hat bisher nicht abgeschaltet. Jetzt kommen vermutlich dann die zwar etwas längeren aber dafür deutlich kälteren Tage. Ich bin gespannt wie sich der Akku da verhält und werde mich hier wieder melden wenn es spannende Neuigkeiten gibt.

Schaltplan zur Solaranlage

Da ich mehrmals schon darum gebeten wurde, einen Schaltplan zu zeichnen hab ich mich mal eben an Inkscape rangesetzt und “sowas wie einen Schaltplan” gezeichnet. Elektriker bitte weg gucken, ich weiß das ist bei weiten nicht perfekt aber ich denke es zeigt gut genug auf, was womit verbunden ist. Denkt bitte daran, dort wo viel Strom fließt auch einen entsprechenden Kabelquerschnitt zu nehmen, sonst bruzzelt euch das ganze ganz schnell wieder weg 😉 Meine 6mm² vom Regler zur Batterie sind bestimmt ein wenig übertrieben, aber je höher der Querschnitt desto weniger Kabelverluste man gewinnt also hier auch noch ein klein wenig Energie 😉 Viel Spaß beim nachbauen

Strom- und Spannungsmessung an einer Solaranlage mit LoRaWAN Übertragung

Hallo zusammen

Da mir bisschen vorgeworfen wurde, ich dokumentier zu wenig (jaja ihr habt ja recht…), hab ich mir jetzt mal vorgenommen zumindest diesen Teil mal hier ein wenig zu dokumentieren. Es geht darum das ich eine autarkes Richtfunkrelais betreibe, mit Solarstrom, eine Pufferbatterie sowie einen Solarregler. Da durch Solarstrom der Strom bekanntlich begrenzt ist, sind die 2 Litebeams einfach mit einen Ethernetkoppler zusammen gesteckt, es gibt keinen Switch o.ä. um etwas per Ethernet anzuschließen das Messwerte überträgt, hätte alles eh viel zu viel Strom verbraucht.

Die grundlegende Idee ist eigentlich ganz einfach. Ich hatte noch eine hand voll von den lora32u4 Controllern daheim rumfliegen, als Spannungsmessung machen wir einfach einen Spannungsteiler um die bis zu 15V Batteriespannung auf 3,3V zu bekommen, sowie einen ACS725 für bis zu +-30A. Wer seine Solaranlage kleiner auslegt kann zu gunsten einer besser Auflösung auch einen kleineren nehmen (gibt es wohl noch mit +-20A und +-10A), achtet dabei aber auf 3,3V Betriebsspannung die für den LoRa32u4 Controller zwingend nötig ist.

Vom Spannungsteiler weiß ich die Werte schon gar nicht mehr so genau, waren irgendwas um die 10kOhm zu 3kOhm oder so (der kleinere Wert waren sogar nochmal 2 Widerstände in Reihe da ich sonst nichts passendes gefunden habe). Am Ende ergab dann eine Messung das 17,6V über dem Spannungsteiler exakt 3,3V an einen Widerstand ausmacht. Für uns ein recht optimaler Wert da die Akkuspannung hoffentlich nie über 17,6V geht (dann würde der Analogeingang des Controllers mit >3,3V belastet werden was er vermutlich nicht überlebt, Angsthasen können hier noch eine “Sicherheits-Z-Diode” einbauen die ab 3,3V kurz schließt) und wir auch nicht ewig weit drüber sind so das wir nicht zuviel Auflösung verlieren.

Da wir nur 12V an der Batterie haben, der LoRa32u4 aber 5V über USB benötigt, habe ich noch einen kleinen StepDown Wandler davor geschaltet der direkt an der Batterie mit dran hängt und am Ausgang stabil bisschen über 5V liefert.

Die restliche Verkabelung ist recht leicht:

Der Spannungsteiler hängt mit einer Seite am + der Batterie, mit der anderen Seite am – und dort wo gegen – maximal 3,3V anliegen ist er mit dem A0 Pin des LoRa32u4 verbunden

Der ACS725 bekommt 3,3V und Masse vom LoRa32u4 und der Out Ausgang hängt am A1 Pin des LoRa32u4. Da Strom immer in Reihe gemessen wird, muss er mit den dicken Kabeln sowohl an der Batterie als auch am Solarcontroller angeschlossen werden.

Fertig ist der Verkabelung, das war der leichte Teil. Das Programm ist dann schon etwas komplexer vorallem weil ich diese LMIC immer noch nicht so genau angeguckt habe und meine C Kenntnisse nunja “vorhanden” *hust* sind. Mittlerweile hab ich das Ding aber soweit verstanden das ich es zumindest benutzen kann. Mein Code ist hier zu finden und darf gerne angeguckt und kopiert (haha, das meiste ist eh ausm example :P) werden, denkt daran eure NWKSKEY, APPSKEY und DEVADDR anzupassen.

Wie man in Zeile 129 sieht, hab ich einfach ein 60 Sekunden delay drinnen, jegliches PowerDown hat leider nicht so funktioniert wie ich wollte also muss es halt so gehen, soviel Strom wird das kleine Ding schon nicht aus meiner 120Ah Batterie raus saugen 😉

Übrigens als “Trennzeichen” und “Endzeichen” für den String der übertragen wird, verwende ich einfach ein “a”. Warscheinlich gibts auch da 1000 schlauere Wege aber ich und C und programmieren und hachja…. Es tut auch so 😉

So jetzt landen unsere Daten schon im TTN. Wie verarbeite ich die nun weiter? Tja da sowohl MQTT als auch der ganze andere neumodische Mist nicht wirklich meinst ist, bin ich recht froh, dass das TTN eine http Integration anbietet. Es werden damit also einfach die Daten an meinen Server geschickt wo es ein kleines PHP Script entgegen nimmt und in eine Datenbank weg speichert.

Das PHP Script hab ich ebenfalls mal auf Github geladen und könnt ihr euch hier angucken. Wie ihr seht, sind auch da noch 100 Debugausgaben drinnen und schön ist das ganze auch nicht gerade 😉 Aber ihr kennt mich ja “es funkioniert” 🙂

Paar kleine Erklärungen noch dazu:

Zeile 6 ist sehr wichtig, ich hab bis heute nicht ganz verstanden was sie tut aber ohne der gings nicht. Daran bin ich ewig verzweifelt. Also wer mal HTTP Integration vom TheThingsNetwork verwendet und die Daten per PHP Abfragen will: Zeile 6 da oben!

Danach wird einfach bissle das json zerlegt, die Daten die ich will rausgeholt (auch nur von einem GW, falls ein 2. die Daten auch empfängt werfe ich das unter den Tisch) und ab Zeile 37 der payload decodiert. Zuerst wird in 38 der String wieder nach dem “a” aufgetrennt, und danach aus den “Digits” des Controllers wieder Spannungswerte gemacht. Wer nachrechnet wird feststellen, das bei Zeile 39 die Multiplikation mit 17 evtl. etwas niedrig ist, da ich oben von ca. 17,6V gesprochen habe, wäre als Multiplikator eigentlich ~17,18 richtig (17,6/1024). Ist mir erst danach aufgefallen und vom Vergleich mit dem Victron 100/20 (der hat Bluetooth und man kann sich die Werte am Handy anzeigen lassen) kam das schon auf ca. 50-100mV hin (aber tatsächlich war mein Wert immer minimal geringer als der vom Victron). Da ich aber lieber bisschen weniger als mehr messe, werde ich das jetzt so lassen.

Beim Strom ist es im Prinzip das gleiche. Ich hab einen Messbereich von 60A (-30A bis +30A) somit entspricht also ein “Digit” ziemlich genau 58,59375mA (60000/1024). Da wir dann aber genau in der Mitte sind, ziehen wir die Hälfte ab (30000) und multiplizieren mit -1 um das Vorzeichen umzudrehen. Ich hab das Ding natürlich genau verkehrt herum eingebaut, sinnigerweise sollte er + Werte anzeigen wenn Strom in die Batterie fliest und – wenn Strom aus der Batterie entnommen wird.

Der Rest ist dann nur noch bisschen Datenbank geschiebe und in eine File wegschreiben damit ich direkter an die Daten ran komme. Schlussendlich wird der Wert dann hier angezeigt, sowie ein Diagramm mit jpgraph erstellt.

Fertig ist die Überwachung der Solaranlage.