Forum: Mikrocontroller und Digitale Elektronik Stromsparende Anwendung Attiny85 (Feuchtigkeitssensor)


von Ben (Gast)


Lesenswert?

Hallo zusammen,

ich habe eine Schaltung aufgebaut mit der ich alle 30 Minuten eine 
Feuchtigkeitsmessung mit einem Feuchtigkeitssensor (resistiv) durchführe 
und per 433MHz RF an einen Empfänger sende.

Die Anwendung läuft aktuell über eine Knopfzelle (3,3V).

Es treten jedoch ein paar Probleme auf.
1. Mir ist aufgefallen, dass die Baudrate anscheinend sowohl von der 
Batteriespannung als auch von der Temperatur abhängt. Vermutlich 
schwankt die Frequenz der internen Clock zu stark.

2. Um die Genauigkeit zu erhöhen will ich einen kapazitiven Sensor 
verwenden. Dieser läuft aber mit der 3,3V Spannung nicht vernünftig. 
Außerdem hängt das Messergebnis ebenfalls von der Eingangsspannung ab.

Deshalb habe ich vor einen externen Quarz zu verwenden. Muss ich dabei 
auf was spezielles achten? Er sollte ja möglichst energiesparend 
arbeiten, da er dauerhaft in Betrieb sein wird.

Außerdem bin ich wohl gezwungen einen Voltage Regulator einzusetzen um 
eine stabile Spannung für den Sensor zu bekommeen. Gibt es da was 
geeignetes, dass ebenfalls energiesparend arbeitet?
Ich werde dann 2x2032 Knopfzellen in Reihe schalten.

Vielen Dank und beste Grüße!

von batman (Gast)


Lesenswert?

Könnte man auch softwaremäßig lösen, indem man Temperatur und Vcc mißt 
und damit Baudrate und Meßwerte kompensiert.

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


Lesenswert?

WArum nicht 3 AAA in Reihe? Mit ein wenig Software zum Shutdown läuft 
das dann mehrere Jahre. Wenn mans richtig macht, zieht so ein Tiny dann 
unter 1µA.

Ben schrieb:
> Mir ist aufgefallen, dass die Baudrate anscheinend sowohl von der
> Batteriespannung als auch von der Temperatur abhängt.

Da solltest du dich sowieso nicht drauf verlassen. Mache dir ein fehler- 
und Baudraten tolerantes Protokoll, dann spielt das keine Rolle. Tipp:
IRMP hat Sender und Empfängersoftware, die zwar eigentlich meist für IR 
benutzt wird, aber genauso gut auf 433MHz verwendet werden kann.
https://www.mikrocontroller.net/articles/IRMP

Ben schrieb:
> Dieser läuft aber mit der 3,3V Spannung nicht vernünftig.

Wieviel braucht er denn?

: Bearbeitet durch User
von batman (Gast)


Lesenswert?

Matthias S. schrieb:
> WArum nicht 3 AAA in Reihe? Mit ein wenig Software zum Shutdown läuft
> das dann mehrere Jahre. Wenn mans richtig macht, zieht so ein Tiny dann
> unter 1µA.

Mit laufendem Timer?

von HildeK (Gast)


Lesenswert?

batman schrieb:
> Mit laufendem Timer?

Evtl. nicht mit dem 'genauen' Timer, aber mit dem WD-Timer schon, auch 
wenn er alle 8s aufwachen muss, um festzustellen, ob die 30 Minuten 
schon um sind.
Und für die Anwendung dürfte ein exakter Wert für die 30 Minuten nicht 
relevant sein, den Timestamp wird man im Empfänger festhalten und auch 
weiterverarbeiten können, wenn es keine genauen 30 Minuten sind.
Muss es genau sein, dann nimmt man einen RTC und lässt sich alle 30 
Minuten über den INT0 wecken. Braucht dann eben vielleicht 2-3µA Strom.

Und ob 'unter 1µA' oder auch 3µA ist fast egal, da werkelt die 
Selbstentladung der AAAs in der selben Größenordnung.
Da dürfte der Sender eher das Problem sein.

von batman (Gast)


Lesenswert?

HildeK schrieb:
> Evtl. nicht mit dem 'genauen' Timer, aber mit dem WD-Timer schon,

Nach meinem DB zieht er da 4µA, bei 25°C und 3V.

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


Lesenswert?

Mit einem Timer wird das sicher mehr als 1µA sein, aber wenn es nicht 
gerade LR44 Knopfzellen sind, machen ja auch 4µA oder so nicht viel aus. 
Das Problem ist bei den Knopfzellen, das sie es nicht mögen, wenn man 
ihnen kurz mal mehr Strom entnimmt, wie es für einen 433MHz Sender 
gebraucht wird - deswegen mein Vorschlag mit 3 AAA. Das ist 
leistungsfähig und vermutlich auch billiger als 2 Stück CR2032. Das 
einzige was dagegen spricht, ist die Grösse, aber nicht alles muss man 
ja dem Miniaturisierungswahn opfern.

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Der 32kHz Quarzoszillator verbraucht viel weniger Strom als der 
schnellere. Allerdings erlaubt er auch nur Recht niedrige Baudraten.

von Dietrich L. (dietrichl)


Lesenswert?

Stefan ⛄ F. schrieb:
> Allerdings erlaubt er auch nur Recht niedrige Baudraten.

was bei den Anfordrungen ...

Ben schrieb:
> alle 30 Minuten eine
> Feuchtigkeitsmessung mit einem Feuchtigkeitssensor (resistiv) durchführe
> und per 433MHz RF an einen Empfänger sende.

... wohl kein Problem wäre. Es sei denn, der Empänger kann das nicht.

von c-hater (Gast)


Lesenswert?

Dietrich L. schrieb:

> was bei den Anfordrungen ...
> ... wohl kein Problem wäre. Es sei denn, der Empänger kann das nicht.

Naja, das Problem ist, dass du bei niedrigen Baudraten lange wach 
bleiben (oder zumindest für die Zeit der Übertragung häufig aufwachen) 
musst. Das knabbert an der Energiebilanz.

Wenn der Empfänger "Nichstandard"-Bitraten beherrscht, hält sich der 
Schaden in Grenzen, dann gehen halt 16384bps (via USI), was sicher für 
diese Anwendung völlig ausreichend ist.

Wenn der Empfänger aber nur Standardbitraten unterstützt, dann musst du 
leider sehr viel weiter runter, bis du unter 2% systematischem Fehler 
bist.

von HildeK (Gast)


Lesenswert?

batman schrieb:
> Nach meinem DB zieht er da 4µA, bei 25°C und 3V.

Du hast recht, ich habe gerade in einer Schaltung mit Tiny25 7µA bei 
4.7V gemessen. Vermutlich hatte ich da die Stromaufnahme im Tiefschlaf 
im Hinterkopf, sorry.

von batman (Gast)


Lesenswert?

Ja, der WDT verzehnfacht den Verbrauch im Power-Down. Aber das ist schon 
Jammern auf hohem.. ääh tiefem Niveau. :-)

von Christopher J. (christopher_j23)


Lesenswert?

Matthias S. schrieb:
> deswegen mein Vorschlag mit 3 AAA. Das ist leistungsfähig und vermutlich
> auch billiger als 2 Stück CR2032

batman schrieb:
> Nach meinem DB zieht er da 4µA, bei 25°C und 3V.

Was ja immer noch im Bereich der Selbstentladung von Alkaline-Zellen 
liegt. 4µA über ein Jahr sind auch nur ca. 25mAh. Dann würde eine AAA 
mit ca. 1000mAh theoretisch 40 Jahre halten (ohne Funk, Selbstentladung, 
etc.) daran sieht man dann auch ganz gut, dass es relativ egal ist ob 
man jetzt 4 oder 8µA im Standby verbraucht, denn
c-hater schrieb:
> Naja, das Problem ist, dass du bei niedrigen Baudraten lange wach
> bleiben (oder zumindest für die Zeit der Übertragung häufig aufwachen)
> musst. Das knabbert an der Energiebilanz.

Das sehe ich nämlich auch so. Schau lieber auf den Verbrauch wenn das 
Ding funkt. Alle 1000s für eine Sekunde 10mA ist wie 10µA über 1000s. 
Brauchst du dann zwei Sekunden, sind es schon 20µA 
"Dauerstromäquivalent" (so in etwa jedenfalls, theoretisch sogar mehr, 
weil geringere Kapazität bei höheren Entladeströmen, etc.)

von Timo N. (tnn85)


Lesenswert?

was für eine Feuchtigkeit wird denn gemessen? Luftfeuchtigkeit?
Da kann man ja auch einen BME280 nehmen.

von TR.0LL (Gast)


Lesenswert?

Timo N. schrieb:
> was für eine Feuchtigkeit wird denn gemessen? Luftfeuchtigkeit?

Bodenfeuchtigkeit

Schau dir das bitte mal an: 
https://www.adlerweb.info/blog/2020/02/23/bitbastelei-373-upoff-akkusparen-fuer-batterieanwendungen/

von Chris (Gast)


Lesenswert?

Nimm Manchester encoding, zb. hier
http://ww1.microchip.com/downloads/en/AppNotes/Atmel-9164-Manchester-Coding-Basics_Application-Note.pdf
Ich würde zwei Zellen nehmen mit Spannungsverdoppelung für Sensor und 
4096mv
Vref oder so ähnlich und damit auch die Batteriespannung messen sowie 
auch  übertragen.

von Ben (Gast)


Lesenswert?

Vielen Dank für die vielen konstruktiven Vorschläge, jetzt komme ich 
endlich dazu mich wieder mit dem Projekt zu beschäftigen.

Chris schrieb:
> auch  übertragen.

batman schrieb:
> Könnte man auch softwaremäßig lösen, indem man Temperatur und Vcc mißt
> und damit Baudrate und Meßwerte kompensiert.

Wäre eine elegante Lösung, würde aber einen Temperatursensor 
voraussetzen.

Matthias S. schrieb:
> WArum nicht 3 AAA in Reihe? Mit ein wenig Software zum Shutdown läuft
> das dann mehrere Jahre. Wenn mans richtig macht, zieht so ein Tiny dann
> unter 1µA.
Möchte möglichst klein bauen.
Powerdown-Modus usw. ist alles schon programmiert und läuft sehr gut.
Aktuell scheitert es an der schwankenden Baudrate und da weiß ich noch 
nicht wie ich das softwareseitig kompensieren kann.

Die Abhängigkeit des Bodenfeuchtesensors von der Batteriespannung muss 
ja auch kompensiert werden.

Chris schrieb:
> Nimm Manchester encoding
Arbeite aktuell mit der Radiohead library. Würde Manchester encoding 
eine höhere Robustheit gegen Baudraten-Schwankungen mit sich bringen?

von batman (Gast)


Lesenswert?

Ben schrieb:
> Wäre eine elegante Lösung, würde aber einen Temperatursensor
> voraussetzen.

Daran haben die Entwickler des Tiny schon gedacht und ihm gleich einen 
eingebaut.

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.