Forum: Mikrocontroller und Digitale Elektronik Sensor in Deepsleep abschalten


von rrhan (Gast)


Lesenswert?

Hallo zusammen,

zu meinem Projekt:
ich habe vor den Wasserstand und die Temperatur unseres Gartenbrunnens 
zu überwachen. Dabei handelt es sich um einen selbstgebohrten Brunnen 
welcher in einem 125mm (5") Rohr ausgeführt etwa 9m tief ist. Nun möchte 
ich im Jahresverlauf den Wasserstand überwachen sowie die 
Grundwassertemperatur. nice-to-have wäre noch in höherer Zeitlicher 
Auflösung das Nachlaufen des Wasserstandes im Rohr während und nach dem 
Pumpvorgang. Dazu habe ich auch schon Ideen, aber das kommt später.
Mein Grundsätzliche Idee war eigentlich einen ESP8266 (Wemos D1 mini 
oder ESP-01s) mit einem MS5803 (Absolutdrucksensos im Wasser) sowie 
einem BME280 (Drucksensor an der Oberfläche) zu kombinieren und die 
entsprechenden Differenzen zur Erfassung des Wasserstandes zu verwenden.
Erste Hürde war die Kabellänge des Sensors, da I2C nicht für so lange 
Kabel gedacht ist, musste ich einen P82B715 Bus Extender verwenden bzw. 
2 davon. Nun habe ich aber gar nicht darauf geachtet, dass der 
erstaunlich viel Strom verbraucht. In meiner Testschaltung (angelehnt an 
diesen Artikel: 
http://www.raspberry-pi-geek.de/Magazin/2017/02/I2C-Reichweite-steigern-mit-dem-P82B715/(offset)/2) 
verbraucht im Deepsleep der ESP (Wemos D1 mini) 0.02mA, der I2C-Teil 
verbrät etwa 27mA. Für Batteriebetrieb wäre das etwas viel. Es wäre zwar 
Strom vorhanden, jedoch würde ich gerne darauf verzichten, wenn es geht.
Nun dachte ich daran den I2C-Teil im DeepSleep vom ESP abzuschalten, 
z.B. über einen Optokoppler oder ähnliches, leider fehlt mir dazu aber 
die Erfahrung. Macht das Sinn? Gibt es bessere Lösungen? Würde es 
genügen nur die 3.3V-Leitung abzuschalten oder müsste auch GND raus?

Danke schon mal!

von rrhan (Gast)


Lesenswert?

Nach etwas Recherche bin ich auf den 2N2222 Transistor gestoßen, würde 
sowas mit entsprechendem Vorwiederstand an der 3.3v - Leitung der 
I2C-Schaltung
funktionieren? Ich würe dann den Transistor über einen GPIO steuern, der 
natürlich nur High ist, wenn der ESP8266 auch eingeschaltet ist.

von Larry (Gast)


Lesenswert?

> Nach etwas Recherche bin ich auf den 2N2222 Transistor gestoßen

> dass der erstaunlich viel Strom verbraucht

Ich glaub du solltest das ganze besser lassen.

Ansonsten schau dir den IRLML6402 an.

WiFi ist fuer Stromsparen eigentlich wirklich nix.
Deepsleep hin oder her...

von STK500-BEsitzer (Gast)


Lesenswert?

rrhan schrieb:
> entsprechenden Differenzen zur Erfassung des Wasserstandes zu verwenden.

Barometrische Höhenformel, oder wie willst du den Wasserstand messen?
Normalerweise misst man den Druck am Boden einer Zisterne. Bei einem 
Brunnen ist der Boden (hoffentlich) etwas weiter weg von der 
Eroberfläche.
Du müsstest den Sensor also auf der Wasseroberfläche schwimmen lassen.
Kann aber auch sein, dass ich deine Beschreibung falsch verstehe.

Die Wasserstandshöhe kann man dann besser optisch oder per Ultaschall 
messen. Bei Ultraschall gibt es aber das Problem der Reflexionen an der 
Rohrwand.

Das Abschaltproblem dürfte zu Anfang erst mal nebensächlich sein.

von rrhan (Gast)


Lesenswert?

Der Absolutdrucksensor wird am Boden des Brunnen versenkt, der Sensor 
misst die darüberliegende Wassersäule, der BME280 misst den Luftdruck an 
der Erdoberfläche, dadurch kann ich die Wetterbedingten 
Druckschwankungen aus der Luft rausrechnen. Auch wenn das nicht sehr 
viel ausmacht, erhöht es doch etwas die Genauigkeit.

Der Stromverbrauch vom WIFI ist eigentlich gelöst. Bei nichtbenutzen der 
Pumpe hatte ich an Intervalle im Stundenbereich gedacht. Da sollte der 
Akku mindestens ein Jahr durchhalten. Bei Funk-Alternativen (433,868 
oder LoRaWAN) bräuchte ich jeweils noch die Basis, die ich aktuell nicht 
habe. Ich sehe keinen Grund von WIFI wegzugehen.

Den IRLML6402 schaue ich mir mal an. Sieht schonmal vielversprechend 
aus.

von Wolfgang (Gast)


Lesenswert?

rrhan schrieb:
> Nun dachte ich daran den I2C-Teil im DeepSleep vom ESP abzuschalten,
> z.B. über einen Optokoppler oder ähnliches, leider fehlt mir dazu aber
> die Erfahrung.

Warum sollte ein Optokoppler keinen Strom benötigen?
An was für eine Schaltung hattest du dabei gedacht?

rrhan schrieb:
> Nach etwas Recherche bin ich auf den 2N2222 Transistor gestoßen ...

Das waren dann wohl historische Dokumente aus dem vorigen Jahrhundert 
;-)
Warum keinen LLevel MOSFETs?

von Wolfgang (Gast)


Lesenswert?

rrhan schrieb:
> Auch wenn das nicht sehr viel ausmacht, ...

Täusche dich da nicht.

Der Unterschied zwischen einem anständigen Tiefdruckgebiet (980hPa) und 
einem satten Hoch (1030hPa) entspricht einer Wassersäule von ca. 50 
Zentimetern. Der Unterschied der Extremwerte des vorigen Jahrhunderts 
für Deutland entsprechen etwas 110 Zentimetern Wassersäule (lt. 
Wikipedia).

von STK500-BEsitzer (Gast)


Lesenswert?

rrhan schrieb:
> Der Absolutdrucksensor wird am Boden des Brunnen versenkt, der Sensor
> misst die darüberliegende Wassersäule, der BME280 misst den Luftdruck an
> der Erdoberfläche, dadurch kann ich die Wetterbedingten
> Druckschwankungen aus der Luft rausrechnen. Auch wenn das nicht sehr
> viel ausmacht, erhöht es doch etwas die Genauigkeit.

Ich hatte die 9m überlesen (ich bin von einem "bodenlosen" Brunnen 
ausgegangen).
Für 9m ist I²C bei 400kHz eher schlecht zu gebrauchen.
Der Bus wurde für den geräteintern Datenaustausch entwickelt.
Es könnte gehen, muss es aber nicht (zuverlässig).

Bei den Zisternenbetreibern wird auch gerne die Methode Luft einzuperlen 
verwendet. Dafür braucht man eine Luftpumpe und einen 
Differenzdrucksensor.

Hat aber eigentlich nichts mit deinem Problem zu tun.

Verbraucher, die miteinander kommunizieren brauchen das gleiche 
Masse-Potential ("GND"), da sich auf dieses i.d.R. der Signalpegel 
bezieht.
Würde man die Massen mit Hilfe eines Transistors trennen, gäbe es 
Probleme.
Daher verwendet man sog. Highside-Switches - im einfachsten Fall ein 
PNP- oder P-Kanal-Transistor.
Der 2N2222 ist dafür nicht geeignet, da es ein NPN ist.

von rrhan (Gast)


Lesenswert?

Wolfgang schrieb:
> Warum sollte ein Optokoppler keinen Strom benötigen?

Zumindest wenn er nicht beschaltet ist (worum es geht) wird er wohl 
keinen Strom verbrauchen.

STK500-BEsitzer schrieb:
> Daher verwendet man sog. Highside-Switches - im einfachsten Fall ein
> PNP- oder P-Kanal-Transistor.

Ich denke das verfolge ich mal, habe mir einen Satz Transistoren 
bestellt.

STK500-BEsitzer schrieb:
> Für 9m ist I²C bei 400kHz eher schlecht zu gebrauchen.

Mit den P82B715-Bus-Extendern habe ich bereits eine Länge von ~50m 
problemlos getestet. Im Moment läuft seid einem Tag über das geplante 9m 
(CAT-7) Kabel alle 5 Sekunden eine Messung, kann keine Schwierigkeiten 
feststellen. SDA habe ich mit VCC und SCL mit GND jeweils im Paar 
angeschlossen.

von rrhan (Gast)


Lesenswert?

Ich glaube meine Schaltung funktioniert nun. Habe mir nur leider bei 
meinen Tests das WEMOS D1 Mini geschrottet :( der ESP darauf 
funktioniert zwar noch, aber die USB-Schnittstelle scheint es zerstört 
zu haben.

Jedenfalls sieht die Schaltung nun so aus (grob vereinfacht)

GPIO -> 4.7k Rb -> Basis des BC557 PNP-Transistor -> Sensor -> GND

Der GPIO wird nun nur zur Messung geschaltet. Die Messungen sind auch 
plausibel, und die Stromaufnahme im Deepsleep wieder im normalen 
Bereich.

Gibt es bedenken bei der Schaltung?

von Lutz S. (lutzs)


Lesenswert?

Vor vielen Jahren hatten wir die Füllstandsmessung in Wasser- und 
Ölbehältern einfach so realisiert dass die Kapazität zwischen zwei 
isolierten Drähten gemessen wurde. Das passierte ganz simpel über einen 
Oszillator in kapazitiver Dreipunktschaltung (1 Transistor und ein paar 
Bauelemente). Dessen Rückkopplung und damit seine Stromaufnahme änderte 
sich mit dem Füllstand, dieses Gleichstromsignal konnte ähnlich wie bei 
4-20 mA Signalen auch über viele Meter übertragen werden.

Billig und robust, funktionierte jahrelang zuverlässig. Einmaliger 
Abgleich des Füllstandes an den nichtlinearen Verlauf ist natürlich 
erforderlich.

: Bearbeitet durch User
von Dunno.. (Gast)


Lesenswert?

was i2c angeht:

Den bus kann man auch sehr sehr langsam betreiben, je langsamer, umso 
höher natürlich die mögliche Kabellänge ohne extender Oder sonstwas.

Außerdem macht es Sinn, sich die Werte der pull-ups anzusehen, 
vielleicht sind die ja zu hoch.

Vermutlich macht es in der Praxis sowieso Sinn, sich in jedem Durchgang 
je 2 Messungen zu holen und die Werte auf Plausibilität zu prüfen, um 
Übertragungsfehler zu erkennen.

von rrhan (Gast)


Lesenswert?

Dunno.. schrieb:
> Den bus kann man auch sehr sehr langsam betreiben, je langsamer, umso
> höher natürlich die mögliche Kabellänge ohne extender Oder sonstwas.

Das hatte ich auch überlegt, aber jetzt habe ich schon alles 
zusammengelötet und weil es funktioniert lasse ich es erstmal so. Läuft 
zuverlässig mit 400khz.

Dunno.. schrieb:
> Vermutlich macht es in der Praxis sowieso Sinn, sich in jedem Durchgang
> je 2 Messungen zu holen und die Werte auf Plausibilität zu prüfen, um
> Übertragungsfehler zu erkennen.

Das ist eine gute Idee, ich denke das werde ich auch so implementieren.

Jetzt muss ich nur noch auf die BME280 warten ... diese Chinaware dauert 
immer so ewig :(

Achso und noch eine Frage zur Elektrovergussmasse, was hält denn 
dauerhaft unter Wasser dicht? Kann ich das hier nehmen:
https://www.amazon.de/Vergussmasse-Elektro-Gie%C3%9Fharz-Transparent-Elektroverguss/dp/B07LGGYN35/ref=sr_1_6?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&keywords=elektrovergussmasse&qid=1571727703&sr=8-6&th=1

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Die Temperaturmessung des Grundwassers ist nach meiner Erfahrung 
überflüssig. Da ändert sich im Jahresverlauf nix.
Hier sinds aus 7m Tiefe immer konstant 7°C - egal ob Sommer oder Winter.

von rrhan (Gast)


Lesenswert?

Lutz S. schrieb:
> Vor vielen Jahren hatten wir die Füllstandsmessung in Wasser- und
> Ölbehältern einfach so realisiert dass die Kapazität zwischen zwei
> isolierten Drähten gemessen wurde. Das passierte ganz simpel über einen
> Oszillator in kapazitiver Dreipunktschaltung (1 Transistor und ein paar
> Bauelemente). Dessen Rückkopplung und damit seine Stromaufnahme änderte
> sich mit dem Füllstand, dieses Gleichstromsignal konnte ähnlich wie bei
> 4-20 mA Signalen auch über viele Meter übertragen werden.
>
> Billig und robust, funktionierte jahrelang zuverlässig. Einmaliger
> Abgleich des Füllstandes an den nichtlinearen Verlauf ist natürlich
> erforderlich.

Ich stelle mir das jetzt so vor, dass zwei Drähte parallel zueinander 
bis zum Grund verlaufen. Mit höherem Wasserstand erhöht sich auch die 
Kapazität?
Ist das nicht ziemlich ungenau? Der Abstand der beiden Drähte müsste 
immer identisch sein? Ich wüsste auch gerade nicht so genau wie ich das 
Kalibrieren könnte.

von rrhan (Gast)


Lesenswert?

Matthias S. schrieb:
> Die Temperaturmessung des Grundwassers ist nach meiner Erfahrung
> überflüssig. Da ändert sich im Jahresverlauf nix.
> Hier sinds aus 7m Tiefe immer konstant 7°C - egal ob Sommer oder Winter.

Werde ich dann sehen, theoretisch müsste Sie sich die Temperatur in der 
Tiefe nämlich ändern. Hängt aber sicherlich auch vom Standort ab. Mir 
ist das für mein zukünfigtes Projekt wichtig den Verlauf zu kennen.

von Peter D. (peda)


Lesenswert?

Lutz S. schrieb:
> Vor vielen Jahren hatten wir die Füllstandsmessung in Wasser- und
> Ölbehältern einfach so realisiert dass die Kapazität zwischen zwei
> isolierten Drähten gemessen wurde.

Heutzutage nimmt man einen MC (z.B. ATtiny25), der die Kapazität digital 
mißt, z.B. mit dem ADC. Dabei wird das Verhältnis der internen 
S&H-Kapazität zur externen Kapazität gemessen, was sehr genau ist.
Als Sensor kann man Flachkabel nehmen, z.B. Lautsprecherkabel. Führt man 
das Ende wieder nach oben, braucht man unten keinen wasserdichten 
Abschluß.
Sinkt der Wasserspiegel, bleibt etwas Wasser am Kabel hängen, d.h. es 
wird ein zu hoher Pegel gemessen. Man muß daher etwas warten. Ein 
Problem kann nach längerer Zeit auch Bewuchs und Verschmutzung des 
Kabels werden.
Die Daten können über die UART oder Pulsmodulation wie bei IR-FBs 
gesendet werden.

von Lutz S. (lutzs)


Lesenswert?

rrhan schrieb:
> Ist das nicht ziemlich ungenau? Der Abstand der beiden Drähte müsste
> immer identisch sein?

Nein, das Wasser ist ja nicht das Dieelektrikum, sondern das wird durch 
die Isolation der Drähte gebildet. Und die ist schon recht konstant in 
ihrer Stärke.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.