Schlagwort: ESP

Quicktipp: GND ist nicht gleich GND

Zum Ausprobieren habe ich mir ein ESP32 Cam Modul gekauft. Beim ersten Versuch habe ich es aber nicht geschafft, die Software zu flashen. Es gab bei jedem Mal einen Fehler.

Als ich schon dachte, ein defektes Modell erwischt zu haben, bin ich dann doch noch auf die Lösung gestoßen: Bei dem Pin, der mit „GND/R“ beschriftet war, handelt es sich nicht um einen GND-Pin. Das Modul hatte also gar keinen Strom.

Mit dem / in „GND/R“ ist also nicht „sowohl als auch“, sondern „entweder oder“ gemeint. Die Belegung des Pins wird durch einen Jumper (0 Ohm Widerstand) festgelegt:

Befindet sich dieser in der oberen Stellung, handelt es sich tatsächlich um einen GND-Pin. Befindet er sich in der unteren Stellung, so wie bei mir, handelt es sich um den Reset-Pin.

Pooltemperatursensor – autonome Stromversorgung mit Solar

Vor anderthalb Jahren habe ich davon berichtet, wie ich einen Pooltemperatursensor gebaut habe. Der Akku hielt zu Beginn noch ca. 2–3 Monate. Da ich aber oft vergessen habe, ihn rechtzeitig aufzuladen, war er oft sehr tief entladen, was dazu führte, dass die Akkulaufzeit sich nach dem 3. bis 4. Mal aufladen schon auf 1–2 Wochen verkürzte. Deswegen sollte ein Solar-Panel helfen, die Akkulaufzeit auf den ganzen Sommer zu verlängern, wenn nicht sogar den Sensor komplett autonom mit Strom zu versorgen.

Welche Leistung muss die Solarzelle haben?

Diese Frage stand natürlich bei der Planung als Erstes im Raum. Von der PV-Anlage auf dem Dach hatte ich einige Daten, die ich versucht habe, ins Kleine zu übertragen.

Im Sommer (von April bis Oktober) produzierte diese durchschnittlich ungefähr 40 kWh pro Tag. Bei einer Maximalleistung von 10kW sind das 4 kWh/kW/Tag bzw. 4 Wh/W/Tag.

Den Leistungsbedarf des Sensors berechnete ich aus Akkulaufzeit und Akkukapazität. Der Akku hat 2500mAh bei 3,7V. Das sind 9,25Wh. Das reichte für ca. 6,5 Tage (hier mache ich den größten Fehler, da die Akkukapazität aufgrund der vielen Ladevorgänge schon sehr gering war. Dieser Fehler bewegt mein Endergebnis nach oben, d. h. ich berechne zu viel Leistung. Das ist besser als zu wenig.). Damit komme ich auf 1,42Wh/Tag. Pro W produziere ich 4Wh. Insgesamt benötige ich also 1,42Wh/Tag : 4Wh/W/Tag = 0,35W.

Als nächstes berechnete ich den Verlust meines Ladereglers. Hier habe ich auf der 5V Seite bei 3,7V 0,16A gemessen (die Spannung bricht auf 3,7V zusammen, wenn entsprechend wenig Leistung vorhanden ist). Das sind 0,592 W. Auf der Seite des Akkus habe ich bei 3,47V 0,121A gemessen. Das sind 0,42W. Es kommen also nur ca. 0,42W/0,592W = 71 % der Energie durch. Hier mache ich wieder einen größeren Fehler, da ich eigentlich schon einen Verlust bei der Berechnung im 2. Absatz einen Verlust mit eingerichtet habe, nämlich den Verlust des Wechselrichters. Da ich diesen aber nicht kenne, rechne ich den Verlust meines Ladereglers nochmal obendrauf. Auch hier wird das Endergebnis nach oben bewegt, was aber, wie schon erwähnt, nicht so schlimm ist, als andersherum. Meine 0,35W multipliziere ich jetzt also noch mit 1/0,71, um dann auf ein Endergebnis von 0,35W*(1/0,71) = 0,49W zu kommen.

Eine Solarzelle mit mindestens 0,5W wird also laut dieser Rechnung locker ausreichen, da ich an zwei Faktoren zu viel gerechnet habe.

Auswahl der Komponenten

Auf der Suche nach einer passenden Solarzelle bin ich auf dieses Modell mit 0,75W gestoßen. Diese müsste eigentlich locker reichen. Da ich aber noch nicht so viel Vertrauen in meine Rechnung gehabt habe, habe ich zusätzlich noch ein größeres Panel mit 2,9W bestellt.

Das Solar-Panel schließe ich dann direkt per Micro-USB-Kabel an die Ladeplatine von meinem Sensor an.

Zusammenbau

Die Solarzelle habe ich auf eine Abzweigdose geklebt, worin ich sie dann an das Kabel, das von der einen Dose in die andere geht, angeschlossen habe. Als Verbindungsstück zwischen den 2 Dosen dient eine 3D-gedruckte Halterung, mit der ich die Solarzelle auch ausrichten kann.

Im Gehäuse ist das Solar-Panel einfach per USB-Kabel an die Ladeplatine direkt angeschlossen.

Geht meine Rechnung auf?

Ich hatte ja schon Bedenken, ob ich in meiner Rechnung nicht irgendwo einen Denkfehler drin haben könnte.

In folgendem Diagramm sieht man die Spannung des Akkus in den letzten 7 Tagen. Man sieht, dass sie zwar nachts etwas gesunken ist, tagsüber konnte der Akku aber wieder komplett aufgeladen werden und das, obwohl die letzten Tage eher bewölkt und regnerisch waren.

Pool-Temperatursensor mit dem ESP

Ich weiß nicht, wie ich auf die Idee gekommen bin, die Temperatur im Pool zu messen. War dann aber doch ein interessantes Projekt.

Hardware

Batteriebetrieben sollte er sein, da Netzspannung im Pool … Ihr wisst, was ich meine. Also fiel ein Raspberry schon mal weg – der braucht zu viel Strom. Etwas Kleineres musste her, ein Microcontroller, ein ESP, genauer gesagt ein Wemos D1 mini. Dazu noch ein Akku und ein Board, um den Akku aufzuladen und den ESP mit Strom zu versorgen.

Die Verkabelung des Sensors ist relativ einfach – Plus (rot) auf 5V, GND (Schwarz) auf GND und den Daten-Pin (Gelb) auf D4. Zwischen D4 und 5V muss dann noch der 4,7kOhm Widerstand geschalten werden.

Damit später der deepSleep funktioniert, müssen wir D0 mit RsT verbinden. Da jedoch dann die Verbindung über USB nicht mehr funktioniert, ist es nicht besonders sinnvoll, diese direkt zusammen zu löten. Ich mache das mit 2 kurzen Kabeln und einer Klemme.

Im Gehäuse sieht das ganze bei mir dann so aus:

Software

Eines vorweg: Mein Programm ist nicht schön und es gibt bestimmt viele Wege, es besser zu machen, aber es funktioniert. Ich sende meine Werte direkt in die Influx Datenbank (wäre – besonders bei mehreren Sensoren – über MQTT wohl sinnvoller).

Der ESP sendet dann alle 30 Minuten die Temperatur. Die Daten landen auf meinem Homeserver, wo ich sie dann mit Grafana visualisieren kann.

Visualisierung

Hier noch ein paar Beispieldaten über 7 Tage. In grün die Pooltemperatur und in gelb die Außentemperatur:

Beispieldaten Pooltemperatursensor