Hallo,
ich habe folgende Komponenten nach angehängtem Schaubild zu einem
kostengünstigen Pflanzensensor kombiniert, der per WLAN die Daten an
einen MQTT Broker sendet. Das funktioniert auch ganz gut, allerdings
hält der Akku max. einen Tag. Ist der Stromverbrauch zu hoch, um das
ganze per Akku zu betreiben?
Ich habe zwei 3,7V Akkus parallel geschaltet.
Anbei der Code:
Benjamin P. schrieb:> Ist der Stromverbrauch zu hoch, um das> ganze per Akku zu betreiben?
Keine Ahnung. Das müsstest du mal messen. Das geht nicht aus der Ferne.
Benjamin P. schrieb:> Ist der Stromverbrauch zu hoch, um das> ganze per Akku zu betreiben?
Lässt sich vermuten.
Einfach mal die Stromaufnahme messen (und loggen).
Wie lange hält die Batterie ohne den Feuchtigkeitssensor?
Als Beispiel, dass es auch länger geht:
Mein ESP-01 mit DHT-22 lutscht eine 18650-LiIon-Zelle in einer Woche
leer.
Er misst ein Mal pro Minute und läuft ohne Sleepmode durch.
Der Datenversand erfolgt an ein HTTP-Server per WLAN nach jeder Messung.
pegel schrieb:> Die delay() Aufrufe sind sicher schon mal gut geeignet um Leistung zu> verbraten.
Oh, das stimmt, da hab ich gar nicht dran gedacht, dass ja die LED mit
delay auch ordentlich was zieht. Hatte ich anfangs zur Kontrolle um zu
schauen ob der Sensor läuft. Die schmeiß ich dann mal raus.
STK500-Besitzer schrieb:> Mein ESP-01 mit DHT-22 lutscht eine 18650-LiIon-Zelle in einer Woche> leer.
Den wollte ich erst auch nehmen, hat aber leider keinen Analog PIN.
Benjamin P. schrieb:> Ist der Stromverbrauch zu hoch, um das ganze per Akku zu betreiben?
Nimm ein Messgerät und messe den Strom. Allerdings wird das Ding mit den
schnellen Pulsen beim Senden etwas überfordert sein.
Deshalb ist der Ansatz der Spannungsmessung mit einem Oszilloskop schon
zielführender.
1. Wie sieht die Versorgungsspanung aus? Bricht sie beim Senden ein?
2. Nimm einen 0,1 Ohm Shunt und miss den Spannungsabfall darüber. der
ist wegen I = U/R proportional zum Strom.
Benjamin P. schrieb:> Den wollte ich erst auch nehmen, hat aber leider keinen Analog PIN.
Da gibt es solche schnuckeligen externen ADC, die allemal besser sind
als das, was in den ESP drin ist.
BTW: es wäre mit Sicherheit gut, wenn du da einen 100µF-Elko zum Puffern
dazuschalten würdest.
BTW2: wenn es wirklich richtig ans Stromsparen geht (um Laufzeiten im
Bereich von mehreren Monaten), dann muss man das Datenblatt der
verwendeten Bauteile und die darin aufgeführten Stromsparmodi genau
studieren.
Ich habe vor einigen Jahren eine Platine für so einen Erdfeuchtesensor
entworfen: Layout von dem kapazitiven Sensor grob übernommen, ESP32,
LiPo mit ca. 500mAh und Mikro-USB-Buchse mit Ladecontroller.
Kommunikation einmal pro Stunde über MQTT, ansonsten im Sleep-Modus.
Akkulaufzeit ist ca. ein halbes Jahr. Ich kann heute Abend ein paar mehr
Infos dazu hochladen.
Wichtig ist vor allem, den Strom im Ruhezustand zu minimieren und die
meiste Zeit auch in diesem Zustand zu verbringen. Das fängt mit dem
Schaltungsdesign schon an: Ein Spannungsteiler, um die Batteriespannung
zu messen? Darf nicht ständig aktiv sein, zieht sonst die Batterie leer.
Sebastian R. schrieb:> Benjamin P. schrieb:>> Ist der Stromverbrauch zu hoch, um das>> ganze per Akku zu betreiben?>> Keine Ahnung. Das müsstest du mal messen. Das geht nicht aus der Ferne.
Ich habe mit dem o.g. Code zwischen 77 und 86mA. Im DeepSleep dann 9,6mA
gemessen. Ich werde nachher mal den Code anpassen und berichten.
Benjamin P. schrieb:> Im DeepSleep dann 9,6mA gemessen.
Wenn du das um den Faktor 1000 reduzieren kannst, wird es gut.
Im Anhang zur Inspiration mein Sensor. Bin aber noch nicht ganz
glücklich damit. Die Bauteile sitzen zu nahe an der Erde. Beim gießen
wird dann doch mal alles nass und trotz Schutzlack gammelt dann langsam
alles weg ;)
Benjamin P. schrieb:> Ich habe mit dem o.g. Code zwischen 77 und 86mA. Im DeepSleep dann 9,6mA> gemessen.
Dann darfst du dich nicht wundern. Beim Senden sind es eher mehr als
350mA.
Benjamin P. schrieb:> Ist der Stromverbrauch zu hoch, um das> ganze per Akku zu betreiben?
Ja. Dein Ziel sollte ein durchschnittlicher Stromverbrauch von unter
100µA sein. Wenn Du nur alle paar Stunden sendest und dazwischen alles
was nicht gebraucht wird sauber ausschaltest bzw. mittels Transistoren
abtrennst, sollte das möglich sein.
Habe selber mit einem STM32F103C8T6 so einen Pflanzensensor gebastelt
und der braucht im Durchschnitt ca. 30µA, ist aber ohne Funk, misst alle
2 Sekunden und nach der Messung blitzt jeweils kurz eine grüne oder rote
LED auf.
Ich betreibe meine Akku- bzw. Batteriesensoren mit einem Atmega328 mit
ca. 3.3V und als Sender ein LoRa-Modul. Das verbraucht viel weniger
Strom und ist von der Reichweite günstiger. Im Haus steht dann ein
Empfänger, der die LoRa-Daten aller Sensoren ins WLAN sendet. Da hab ich
Netzanschluss, da ist der Stromverbrauch egal.
Leg das Dingen pennen.
Und wieso musst du jede Sekunde abfragen. Das ist schon lt. Anleitung
für das Teil nicht erlaubt.
Mein Tipp.
Leg das Teil 30 Min pennen, dann frag ab und lege es wieder pennen.
Das sollte für eine Blumenüberwachung locker reichen. Ich habe meine am
Strom hängen und frage nur alle akt. 3 Std. ab. Hängt aber am Strom weil
das System auch die Pumpe anschmeißen kann.
Vielen Dank für die vielen Hilfreichen Tipps. Wenn ich nächste Woche
wieder zu Hause bin, werde ich mich mal an die Umsetzung machen und das
Ergebnis hier berichten.
Schlaumaier schrieb:> Leg das Teil 30 Min pennen, dann frag ab und lege es wieder pennen.
Genau so.
Und: Merk Dir den Wert und schmeiss das WiFi nur an wenn eine bestimmte
Differenz gemessen wird. Das reicht locker - Pflanzen saufen das Wasser
nicht so schnell wie wir das Bier ;-)
Benjamin P. schrieb:> Ich habe mit dem o.g. Code zwischen 77 und 86mA. Im DeepSleep dann 9,6mA> gemessen. Ich werde nachher mal den Code anpassen und berichten.
Was zieht denn da so viel Strom?
Wenn das normale LiIon-Akkus sind, mit jeweils etwa 2Ah, dann hast du
4Ah.
Beo 10mA permanenten Verbrauch, ohne dabei aufzuwachen würde dein Gerät
nur etwa 2 Wochen damit auskommen. Wenn du dann noch aufwachst um die
Datenpakete weg zu schicken, dann kann man mit einer Woche rechnen.
Ist der Feuchtigkeitssensor permanent aktiv? Versuch den einfach mal mit
Hilfe eines Transistors abzuschalten und dann nur jede Stunde zu
aktivieren, kurz bevor der ESP die Daten abgreift.
> Ist der Feuchtigkeitssensor permanent aktiv? Versuch den einfach mal mit> Hilfe eines Transistors abzuschalten und dann nur jede Stunde zu> aktivieren, kurz bevor der ESP die Daten abgreift.
So heute weitergebastelt und festgestellt, das der Sensor defekt war.
Heute kam ein neuer. Will gleich mal weiter den Stromverbrauch testen.
Wie muss ich denn einen Transistor in die Schaltung integrieren? Was für
einen Transistor muss ich nehmen. Hast Du evtl. ein Bsp. Schaltbild?
Benjamin P. schrieb:> So heute weitergebastelt und festgestellt, das der Sensor defekt war.> Heute kam ein neuer. Will gleich mal weiter den Stromverbrauch testen.
Stimmt die Spannung am Sensor? Braucht er 3,3V oder 5V?
> Wie muss ich denn einen Transistor in die Schaltung integrieren? Was für> einen Transistor muss ich nehmen. Hast Du evtl. ein Bsp. Schaltbild?
Am besten du nimmst eine P-Kanal MosFET zum schalten des Stroms für den
Sensor. Source an 3,3V und Drain geht zur positiven Versorgung der
Sensorplatine. GND der Sensorplatine liegt auf GND des ESP.
Gate mit 100k bis 1MOhm nach 3,3V.
Das Gate würde ich dann mit einem NPN-Transisor nach Masse ziehen. Die
Basis über 50k an einen I/O-Pin, Collektor an das Gate, Emitter an GND.
Helmut -. schrieb:> Vieviel Strom braucht denn der Sensor?
Leider habe ich keine verlässigen Angaben gefunden.
angeblich 5mA
Kann man da nicht direkt einen
> Prozessorpin verwenden?
Habe ich versucht, aber dann kommen am A0 nur unsinnige Werte. Ich
vermute, die Leistung reicht nicht aus.
Wie wird der ESP versorgt?
Die üblichen ESP-Boards haben meistens ineffiziente Linearregler. Da
wird die meiste Leistung im Regler verbraten und nicht im ESP selbst.
Ich habe mir folgendes überlegt.
Spannungsversorgung zwei in Reihe geschaltete 3,7V Akkus = 7,4V.
Da der D1 mini einen Spannungsregler hat, sollte das funktionieren,
oder?
Dazu die Transistorschaltung um den Sensor nur zum messen über D4 zu
aktivieren. Sollte doch eigentlich so funktionieren. Oder habe ich einen
Denkfehler?
Kurzes Update:
Habe die Schaltung jetzt einfach mal ausprobiert, allerdings mit nur
einem Akku, also einer Eingangsspannung von 3,7V. das Funktioniert auch,
nur müssen im Programm die Werte für den Sensor (Airvalue & Watervalue
angepasst werden.
Der bereinigte Code (keine LED mehr, keine Serial.print und weniger
delays):
Benjamin P. schrieb:> char Value [10];> char aValue [10];> itoa (soilmoisturepercent,Value,10);> itoa (sensorValue,aValue,10);
10 chars reichen nicht aus, um alle Werte im ganzen Wertebereich eines
int abzudecken. Mindestens 10 + Vorzeichen + Nul, also 12.
Danke für den Hinweis. Theoretisch auch richtig. Praktisch gesehen
bräuchte ich aber noch nicht mal die zehn, da der Sensor nicht über 1024
ausgibt. Naja und alles was über 100% Feuchtigkeit geht ist eh falsch.
Aha. Du nimmst also den doch den Billigsensor ohne richtigen Verguss
her.
Nadann:
https://hackaday.com/2022/03/02/soil-moisture-sensor-coating-lessons-learned-the-hard-way/
Da wirst du noch zig Seiten finden, mit defekten Sensoren.
Hör auf die Leute hier.
Da gab es in einem anderen Forum einen Langzeittest mit verschiedenen
Vergussmaterialien.
Was kam bei raus:
Ohne Polyurethanverguss wird das nichts.