Batteriebetriebenen Co2 Sensor am Weimos D1 mini - Wie Sensor abschalten?

Begonnen von Adimarantis, 19 Mai 2023, 19:59:16

Vorheriges Thema - Nächstes Thema

Adimarantis

Hallo,

Ich baue mir gerade einen Co2 Sensor mit LED Anzeige und Temperatursensor.
Soweit habe ich alles schon funktionsfähig (mit MH-Z19E und DHT-11) und feile gerade am Stromverbrauch. An der LiFePo Batterie läuft das Ding erstmal nur ein paar Stunden.

Jetzt bin ich soweit, dass ich den ESP in den Deep Sleep schicken kann und dem DHT11 den Strom über GPIO kappe. Die LED soll leuchten bleiben.

Mein Problem ist jetzt der MH-Z19E - der schluckt anscheinend bis zu 150mA und das ist ja zuviel für eine GPIO.

Jetzt suche ich nach einem Weg diesen irgendwie aus- und einzuschalten.
Der braucht zwar ein wenig zum warmlaufen - aber wenn ich den ESP nur alle 10 Minuten aufwecke, dem Sensor 1 Minute gebe um sinnvolle Messwerte zu liefern, und dann wieder alles abschalte, spart das doch sicher einen Haufen Energie.

Nur wie?
Bin leider kein versierter Elektroniker und stecke meistens nur Module zusammen.
Ich habe ein wenig mit Transistoren rumprobiert, aber so richtig klappt das nicht (weil ich es auch nicht vollständig verstehe).
Ich hab so ein Transistoren Set mit BC337, BC327, 2N2222, 2N2907, 2N3904, 2N3906, S8050, S8550, A1015 und C1815 rumliegen.

Gibt es hier im Forum jemand, der mir da eine Schaltung aus dem Ärmel schüttelt?
Nochmal kompakt: mit 3.3V GPIO einen Verbraucher mit 3.3V und ~50 bis ~150 mA ein/ausschalten

Danke und Gruß,
Jörg


Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

DerD

BC337 ist doch gut. Eigentlich brauchst du nur einen 1k Widerstand zwischen GPIO und Basis, Emitter auf GND und Kollektor an GND des Sensors.
Allerdings hätte ich bzgl des Aufbaus folgende andere Fragen:
- laut Datenblatt (Reichelt) sollte der CO2 Sensor an 5V laufen nicht 3,3V.
- LED Anzeige dauernd an an Batterie/Akku? 20mA oder eher 50mA braucht die doch mindestens. Und wie soll die anzeigen, wenn der ESP schläft?
- nicht doch einen stromsparenden CO2-Sensor wählen?
Gruß,
Dieter

MadMax-FHEM

Kann mich nur anschließen...

Ich habe auch viel mit ESP und Stromsparen rumprobiert: nicht wirklich erfolgreich... :-\

Der ESP schaltet ja auch bei deep-sleep nicht wirklich ab bzw. "bootet" er ja doch immer wieder und durchläuft einen "Schleifenzähler" und erst bei x Schleifen bleibt er dann wach usw.
(zumindest war das mal beim ESP8266 so)

Habe daher einen ATTiny genommen, um den gesamten "Sensor" ein-/auszuschalten aber selbst damit kam ich mit einer Powerbank nicht über 2-3 Monate.
Weil alleine das Aufbauen von WLAN, kurz was senden und wieder ausschalten einfach viel Strom braucht.

Eine Dauerhafte LED: vergiss es...
...außer du hast einen wirklich großen Akku...

Oder anders: wenn du es schaffst wäre ich interessiert wie...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Papa Romeo

.. bei Batterie bzw. Akku betriebenen Sensoren hatte ich den NRF24l01 an einem modifizierten Arduino Mini in Verwendung. Ein Gateway sammelte die Daten aller Sensoren und sendete sie dann über einen ESP per WLAN weiter. Der NRF braucht beim Senden knapp 120 mA (ESP ~ 500 mA) und im Standby etwas um die 4 uA.

Vielleicht ne Option.

LG
Papa Romeo
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

Adimarantis

Danke für die Antworten.
Das mit den 5V hatte ich jetzt nicht bedacht. Der Sensor läuft auch mit 3.3V, aber ob dann die Messwerte plausibel sind, habe ich jetzt nicht wirklich validiert.
Die LED ist digital, die lasse ich also an 3V3 und ändere nur die Farbe. Das klappt auch mit DeepSleep. Wenn die so viel braucht, ist sie aber eher optional, die Werte werden ja über MQTT gesammelt.
Mein Anspruch ist jetzt nicht, dass der Sensor wochenlang an der Batterie läuft.
24h reichen schon, damit ich testweise über eine Nacht platzieren kann, ohne eine Steckdose zu brauchen.

Muss das morgen mal probieren. Hatte mit einem 2N2222 zwar schon erfolgreich eine (normale) LED geschaltet, aber für den Sensor hatte der Strom irgendwie nicht gereicht.

Der Vollständigkeit halber, ich verwende die "D" version und nicht wie zuerst geschrieben "E"
https://www.winsentech.com/npublic/opdfjs/web/viewer.html?u=1613362950228529152&fileName=MH-Z19D CO2 Sensor Manual-V1.3

Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Adimarantis

Da scheint jetzt soweit zu klappen.
Laut Spec ist der Sensor ja nach 60s bereit - die Heizung geht aber sichtbar schon früher aus, daher polle ich nach 30s nach "plausiblen" Werten (solange bis sich PWM und Serieller Wert eingependelt haben).
Hier ist interessant, dass der Sensor eigentlich sofort sinnvoll aussehende Serielle Werte liefert - aber der PWM Wert erst deutlich später.

Ich verwende eine PL9823 LED - die hat wohl bis zu 100mA und muss dann wohl auch aus.

Ob die Werte jetzt mit 3.3v brauchbar sind, muss ich noch schaun (mal einen zweiten mit 5V zum Vergleich laufen lassen).
Gibt es eine einfache Möglichkeit dem Sensor seien 5V zu geben, obwohl ich nur 3.3V habe?
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

DerD

Ob 2N2222 oder BC337 sollte eigentlich keinen Unterschied machen

Ah, 24h, tragbar ohne Steckdose, da musst du nicht so ganz auf das Stromsparen achten. Ursprünglich dachte ich dabei an monatelangen Betrieb.

Als Stepup-wandler nehme ich üblicherweise solche: Step-Up. Dann aber den per Transistor anschalten und die 5V nur erzeugen, wenn der Sensor laufen soll. Mag aber sein, dass der die 5V nur für die Heizung braucht, die Elektronik scheint ja 3,3V zu haben.
Gruß,
Dieter

Adimarantis

Also grundsätzlich scheinen die 3.3V für die Heizung zu reichen.
Aber: Solange ich das am USB ausprobiere (wohlgemerkt trotzdem nur die 3.3V abgegriffen) pendelt sich der Sensor schnell auf plausible Werte ein, wenn ich ihn dann aber an die Batterie hänge, driften die Werte kontinierlich ab (da geht er auch schon mal auf 1200ppm obwohl der Raum gelüftet ist und eigentlich eher so knapp über 400ppm hat)

Wenn ich den Sensor dann aber an den Dauerstrom (immer noch Batterie) hänge, schauts wieder besser aus.
Kann es sein, dass am Transitor zu viel Strom abfällt und es deswegen nicht mehr für den Sensor reicht?
Kann man da noch was tunen (z.B. mit dem Basiswiderstand?)
Ich hab an der GPIO auch noch einen 10K Pulldown auf Masse - kann das stören?

Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

DerD

Über CE fällt natürlich eine Spannung ab - wenn man den Widerstand verringert, würde noch etwas gehen. Vermutlich ist da aber einfach das Ende der Fahnenstange erreicht, beliebig unterhalb der Spezi arbeiten geht halt doch nicht.

eine Möglichkeit wäre noch per LowLevel-Mosfet zu schalten, eine Möglichkeit wäre eventuell der IRLZ34N, obwohl mir der etwas überdimensioniert erscheint.
Gruß,
Dieter

Papa Romeo

Zitat von: Adimarantis am 21 Mai 2023, 14:42:34Ich hab an der GPIO auch noch einen 10K Pulldown auf Masse - kann das stören?

Pulldown macht keinen Sinn !

Was mit deinen Transistoren vielleicht noch eine Option wäre, um die Uce niedrig zu halten, wäre ein Darlington Aufbau.
Heißt du brauchst zwei Transistoren und verschaltest sie wie im Anhang gezeigt.

LG
Papa Romeo
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

Adimarantis

Danke.
Ich habe die Konstruktion jetzt mal ohne LED und mit Sensor direkt an 3V3 laufen lassen. Das hält schonmal etwas länger, aber reicht noch nicht.

Anscheinend funktioniert der Sensor dann aber nicht sehr lange (wahrscheinlich weil die Batteriespannung etwas abfällt).
Hab den selben Effekt, dass die ppm nach oben abdriften und schon nach 3-4 Stunden hängt er beim Maximum von 5000ppm.
Muss jetzt wohl erstmal so einen "step up" besorgen und den Sensor wirklich mit 5V betreiben.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)