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?
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
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.
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?
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.
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.
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.
------------------------------------------------
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)
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.
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.
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.
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?
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.
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.