Forum: Mikrocontroller und Digitale Elektronik Sparsamer, batteriebetriebener Sender mit NRF24L01+


von Timo (Gast)


Lesenswert?

Hey Leute,

habe noch einige NRF24L01+ Module herumliegen. Die würde ich gerne für 
ein Funktermometer verwenden. Sprich, würde gerne eine kleine, 
batteriebetriebene Schaltung mit 1-Wire Temperatursensor, 
Mikrocontroller und NRF24L01+ zum Senden des Temperaturwerts basteln.

Nur sparsam muss es sein, damit die Batterie möglichst lange hält. 
Jemand sowas schonmal gebaut? Wenn ja, wie ungetzt?

von Timmo H. (masterfx)


Lesenswert?

Sender mit avr und Sleep mode (avr + nrf) und jede Minute/ Stunde 
aufwachen und Daten an einen Server mit always on nRF als receiver (z.B. 
RPi)  auf sd karte speichern

von Timo (Gast)


Lesenswert?

Der Empfänger ist quasi vorhanden. Das Thermometer (bisher mit 
Kabelgebundenen 1-Wire Sensoren) wird von einem AVR gesteuert. Da könnte 
ich ein NRF24L01 Modul als Empfänger dranlöten.

von Timo (Gast)


Lesenswert?

Und dann stellt sich noch die Frage nach der Spannungsversorgung. 3V 
Knopfzelle oder 2x Mignonbatterie in Reihe. Des Weiteren sollte der 
Sender im Winter draußen liegen. Ist das für die genannten Batterien ein 
großes Problem?

von Einer K. (Gast)


Lesenswert?

Timo schrieb:
> Mikrocontroller und NRF24L01+ zum Senden des Temperaturwerts basteln.
Möglich, da man den nRF auch in den Schlaf schicken kann.

Timo schrieb:
> Da könnte
> ich ein NRF24L01 Modul als Empfänger dranlöten.
Der darf dann natürlich nicht schlafen, weil er sonst taub und blind 
wird.

von Timmo H. (masterfx)


Lesenswert?

Knopfzellen können nur recht wenig strom liefern. Also entweder sorgst 
du mit einem relativ großen Kondensator dafür dass der kurzzeitige Strom 
Impuls (sind ja nur ein paar µs/ms mit etwa 15mA, danach ~1µA) gepuffert 
wird oder du musst was anderes nehmen. Ich glaube Lithium-basierende 
Zellen mögen nicht so gerne < 0°C, zumindest nimmt der Innenwiderstand 
dann noch mehr zu.

von Dumpfbacke (Gast)


Lesenswert?

Arduino F. schrieb:
> Der darf dann natürlich nicht schlafen, weil er sonst taub und blind
> wird.

Diese Ausage zeigt wieder mal dass du wenig bis keine Ahnung hast.
Aber Hauptsache du hast hier was zum Labern.

Aus dem Manual des NRF24:

------------------------------------------------
6.1.2 Power Down Mode

In power down mode nRF24L01+ is disabled using minimal
current consumption. All register values available are
maintained and the SPI is kept active, enabling change of
configuration and the uploading/downloading of data
registers. For start up times see Table 16. on page 24. Power
down mode is entered by setting the PWR_UP bit in the CONFIG
register low.
------------------------------------------------

von Einer K. (Gast)


Lesenswert?

Dumpfbacke schrieb:
> Diese Ausage zeigt wieder mal dass du wenig bis keine Ahnung hast.

Ist schon klar...

Der Empfänger empfängt auch dann noch, wenn nur noch das SPI 
funktioniert...
Schon klar, keine Fragen mehr... Alles klar.

> Autor: Dumpfbacke (Gast)
Du machst deinem Name alle Ehre!
(du ab jetzt auf meiner Ignorierliste stehend)

von Timmo H. (masterfx)


Lesenswert?

Ja so ist es. Wenn man den Empfänger in Sleep versetzt empfängt er auch 
nicht mehr. Der muss schon immer an bleiben ~13mA.

Was aber auch geht (möchte man auch beim Empfänger Strom sparen)... dass 
er sich anfangs aus den Sender synchronisiert (sagen wir nach dem 
letztem Empfangen 1s schläft) und dann für 100ms kurz aufwacht und 
horcht ob was kommt. Das sollte normalerweise so wenig auseinander 
driften dass das klappt.

von Löten an Klöten kann Leben töten (Gast)


Lesenswert?

Ist hier im Einsatz. 3.3V Knopfzelle ist "schnell" (paar Monate reicht 
es) unter 3V, auch mit Sleepmodes, kein Problem für MC + nRF aber der 
Sensor (DS18-irgendwas) geht  nur bis 2.7V, da fängt er dann an Unsinn 
zu messen.
Deshalb 3xAA(A) da haste genug Reserven, sowohl bei der Spannung als 
auch von der Kapazität her.
Ein temperaturabhängiger Widerstand am ADC ist da sinnvoller, wenn ich 
mich recht erinnere kürzt sich in der Umrechnungsformel die Spannung 
raus, sollte aber hoch genug sein dass der ADC noch läuft, das geht ja 
meist mit 1.1V Refspannung also wenn die Bat schon längt leer ist und 
der MC (je nach Modell) oder der nRF (iirc min 1.9V)  schon nicht mehr 
läuft. Je nach MC kann man auch deren interne Tempsensoren nehmen und 
vorher kalibrieren, das spart den Code für One-Wire und kann auch 
niedrigere Spannungen fahren, weil die auch wieder über den internen ADC 
messen, wie z.B. beim Tiny. Den ADC immer abschalten beim Sleep und auch 
sonst alles deaktivieren, dann kommt man mit einer Knopfzelle auch recht 
lange hin. Ich habe hier nen anderen Sender der per ADC den Wasserstand 
misst, alle 5 Minuten, läuft auch schon drei Monate mit einer CR2032.

von Blauzahn (Gast)


Lesenswert?

Wenn du die Nordic-Teile magst, kannst du dir ja mal die aktuellen SoC 
anschauen: 
https://www.nordicsemi.com/eng/Products/Bluetooth-low-energy/nRF52832

Die können nicht nur BLE 5.0 und drunter, sondern auch OpenThread, Ant 
und son Kram. Und fressen im tiefsten Schlafmodus 0,3µA und sonst recht 
sparsam ist, obwohl nen M4 mit FPU drin sitzt.

von Timo (Gast)


Lesenswert?

Danke Blauzahn, aber vorerst will och die NRF24-Dinger verwenden. Von 
denen hab ich halt noch einige rumliegen.

von Timo (Gast)


Lesenswert?

Mir ist gerade auch noch aufgefallen das nicht nur der Sensor mit der 
Spannung von 2 Mignonzellen Probleme hat. Auch der AVR kann ja nur bis 
1,8V. Hab gelesen, das die Batteriespannung bis auf 0,7V (pro Zelle) 
absinkt, bevor sie leer ist. Wären dann nur noch  1,4V. Eine dritte 
Mignon wiederum würde irgendwas zwischen 2,1 und 4,5V bedeuten. Wäre OK, 
wenn ich statt dem Dallas 1-Wire nen NTC als Sensor nutze. Nur, sind die 
4,5V bei vollen Batterien dann wiederum tödlich für den NRF24L01+, oder?

von Mike J. (linuxmint_user)


Lesenswert?

Ich nutze hier einen ATmega8L und ein NRF24L01+ Modul mit einem 
Klingeltaster.
Das ganze System verbraucht im Sleep (PowerDown) nur 0.6µA und wird eben 
durch einen externen Interrupt aufgeweckt.
Als Energiequelle nutze ich einen LiIon-Handyakku von Nokia, die halten 
auch im Winter bei -20° noch ihre Spannung und der Innenwiderstand ist 
dann immer noch bei einem akzeptablem Niveau.

Bei jedem mal klingeln wird auch der Spannungswert des Akkus ermittelt, 
damit eine Akku-Warnmeldung an die Basisstation geschickt werden kann 
und sich die Klingel abschaltet wenn eine zu niedrige Spannung erreicht 
worden ist.

Es gibt aber auch LiIon-Akkus die ab +5°C ihren Innenwiderstand schon 
merklich erhöhen und bei Minusgraden quasi keine Spannung mehr liefern.

von Timo (Gast)


Lesenswert?

Wie wäre es denn mit der Verwendung von 3 NiMh Mignonakkus? Davon hätte 
ich auch noch einige. Halten die den winterlichen Temperaturen stand?

von Einer K. (Gast)


Lesenswert?

NiCd sind (etwas) besser für tiefe Temperaturen geeignet

von Heinz (Gast)


Lesenswert?

schau Dir mal www.mysensors.org an - da wird genau so was gemacht und im 
FOrum findest Du viel über Energiebedarf, Batterien usw

von Mike J. (linuxmint_user)


Lesenswert?

Timo schrieb:
> Halten die den winterlichen Temperaturen stand?
Ja.

Arduino F. schrieb:
> NiCd sind (etwas) besser für tiefe Temperaturen geeignet

Wegen dem vermutlichen bisschen besser, würde ich nicht zu NiCd greifen.
Der LiIon-Akku an meinem Klingel-System hat auch im Winter seinen Dienst 
getan. Es waren dieses Jahr hier ja auch mal unter -15°C und die Zelle 
ist immer noch heil. Ich habe aber auch einen größeren Kondensator auf 
dem Board der die Energie etwas puffert.



Ich habe das mal im Temperaturbereich von +15 bis -40°C getestet, aber 
nicht mit verschiedenen Ladeständen der Zellen.

Bei dem NiMH-Akku (750mAh) lag die Zellspannung bei 1.31V @ +15°C.

Im Gegensatz zu +15°C hatte sich der Innenwiderstand bei -20°C etwa 
verdoppelt (auf 0,33 Ohm) und die Leerlaufspannung sank um 10mV.
Bei -30°C war die Leerlaufspannung um 12,5mV niedriger und der 
Innenwiderstand drei mal so groß (0,5 Ohm).
Bei -37°C gab es dann einen Knick und der Innenwiderstand ist immer 
stärker gestiegen.
Bei -42°C lag die Leerlaufspannung immer noch bei 1,275V , aber der 
Innenwiderstand lag schon bei 3,67 Ohm.


Selbst bei einer alte LiIon-Laptopzelle (3.6V Typ) stieg der 
Innenwiderstand erst ab -10°C stark an. Bei -42°C ist die 
Leerlaufspannung aber mit der Zeit immer weiter gesunken, da muss intern 
dann doch schon etwas passiert sein.

Also ich würde sagen dass es mit LiIon funktioniert, die 
Leerlaufspannung bricht nicht so sehr ein, allerdings muss man mit einem 
steigenden Innenwiderstand rechnen. Aus einem 1Ah-Akku würde ich bei 
-20°C einfach keine 1A ziehen, sondern nur zum Beispiel 50mA und schon 
passt das wieder.

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.