Batterieleistung fĂŒr MySensors-GerĂ€te

Diese Musik hÀlt ewig, wenn ich die Batterien austausche (C)



Dieses Werk widmet sich meiner Forschung zur Leistung autonomer drahtloser GerÀte, die Teil des MySensors Smart Home-Systems sind.


Zuerst gab es Lithium ...


Vielmehr Lithium-Ionen- und Lithium-Polymer-Batterien.


Diese Batterien aus alten GerĂ€ten haben sich lange Zeit in einer Box angesammelt. Ich dachte - hier ist es, universelle Leistung fĂŒr alle kleinen Mikrocontroller. DarĂŒber hinaus ist die Spannung von 3,3-4,2 V sowohl fĂŒr AVR als auch fĂŒr alle Arten von ESP und STM hervorragend. Aus GrĂŒnden der ZuverlĂ€ssigkeit können Sie einen LDO-Stabilisator mit der erforderlichen Leistung einsetzen und fĂŒr MK und die gesamte Peripherie stabile 3.3 erhalten.



Aber wie sich herausstellte, ist nicht alles so gut.


  1. Batterien mussten aufgeladen werden. Zu diesem Zweck mussten sie entfernbar gemacht oder Ihrem GerĂ€t ein Lademodul hinzugefĂŒgt werden, was wiederum zusĂ€tzliche Kosten, Abmessungen und Ladelöcher im GehĂ€use verursachte. Und es ist nicht immer bequem, GerĂ€te wie einen Wettersensor außerhalb des Fensters aufzuladen.
  2. Lithiumbatterien (wie die meisten Netzteile im Allgemeinen) sind nicht fĂŒr den Einsatz bei niedrigen Temperaturen geeignet. Bei einem am Fenster angebrachten Wettersensor sank die Batterie im Winter sofort im Frost.
  3. Wenn die Batteriespannung im Langzeitbetrieb nicht rechtzeitig ĂŒberwacht wird, können Sie sie "auf Null" entladen, dh unter dem zulĂ€ssigen Wert, der sie garantiert tötet. Sie brauchen also Schutz vor Überentladung.
  4. Eine Vielzahl von BatteriegrĂ¶ĂŸen und -kapazitĂ€ten hat die Wiederholbarkeit von GerĂ€ten in identischen GehĂ€usen erheblich eingeschrĂ€nkt. Und die Reserven an alten Batterien gingen schnell zu Ende - deshalb musste man irgendwo Neues kaufen. Und wie sich herausstellte, waren die Kosten fĂŒr solche Stromquellen ziemlich hoch und erhöhten die Kosten fĂŒr jedes GerĂ€t um mindestens 2 US-Dollar (unter BerĂŒcksichtigung der Ladetafel und mehr). DarĂŒber hinaus gab es keine Wirtschaftlichkeit beim Wiederaufladen, da die meisten autonomen Steuerungen sehr wenig Energie verbrauchten und viele Monate ohne Aufladen arbeiten konnten.

NiMH und andere AA / AAA-Batterien waren noch schlechter. Sie mussten in einem speziellen LadegerĂ€t aufgeladen werden, hatten einen „Memory-Effekt“ und eine anfĂ€nglich niedrige Spannung (1,2-1,3 V), und wenn sie aufgrund des unterschiedlichen Innenwiderstands in Reihe geschaltet wurden, konnte eine der Batterien mehr als andere entladen werden, was wiederum zu ihrer fĂŒhrte Verderb.


Und wieder Lithium ...


Jetzt gibt es runde kleine 3,0-V-Lithiumbatterien, fĂŒr die ich mich entschieden habe, launische und teure Batterien aufzugeben.


CR2032-Batterien werden in einer Vielzahl von BIOS-Computern, StromzĂ€hlern und anderen GerĂ€ten mit RTC, Uhren, Taschenrechnern und verschiedenen Spielzeugen verwendet. Mit kleinen Abmessungen und niedrigem Preis haben sie eine Spannung von 3,0 V, was fĂŒr MK völlig ausreichend ist, und eine anstĂ€ndige KapazitĂ€t von 200 bis 250 mA / h fĂŒr ihre Abmessungen.



Aber wieder Probleme. Die Tatsache der Sache. dass der Gleichstrom einer solchen Batterie nur 0,4mA betrĂ€gt. Wenn Sie es mit einem höheren Strom laden, fĂ€llt die Batteriespannung ab, obwohl es sich dann teilweise oder vollstĂ€ndig erholen kann. Ein typischer Mysensor-Schlafmodus verbraucht mehrere Mikroampere. Aber im Übertragungsmodus - schon ca. 15-20mA. Gleichzeitig zwingen neue Versionen der MySensors-Bibliothek GerĂ€te dazu, viele Pakete zu senden - Ping, BegrĂŒĂŸung, PrĂ€sentationen, Suche nach einem Gateway oder Router, was zu einem langen, manchmal mehrere Sekunden dauernden Betrieb des Funkmoduls fĂŒhrt. Bei einer Spannung von ca. 2 V beginnt das billige chinesische NRF24L01 zu versagen, und manchmal ist es nicht einmal möglich, sie von MySensors in den Schlaf zu versetzen ().


Infolgedessen funktioniert alles irgendwie mit einer frischen Batterie, aber wenn sich die Batterie entlĂ€dt, die Kommunikationsprobleme zunehmen, beginnt das Funkmodul mehr in die Luft zu fluten, was die Batterieentladung erhöht. Am Ende fĂ€llt die Spannung bis zu dem Punkt ab, an dem das gesamte GerĂ€t nicht mehr in den Ruhezustand wechselt, und anschließend erfolgt ein zyklischer Neustart, bis der Akku vollstĂ€ndig entladen ist.


Je nach Hersteller und "Frische" des Akkus kann das GerĂ€t einige Tage bis zu einem Monat arbeiten. Wenn Sie bei aliexpress billige Batterien kaufen, gibt es eine Lotterie. Der Übergang zu den gerĂ€umigeren CR2450 und CR2477 spart ein wenig, aber sie wissen lange nicht, wie sie einen Strom von mehr als 0,5 mA liefern sollen.


Eine Weile experimentierte ich mit AufwĂ€rtswandlern , die es der Batterie ermöglichten, die normale Betriebsspannung fĂŒr den MK bis zu den letzten KrĂŒmeln der Energie aufrechtzuerhalten, aber sie hatten einen kleinen Ruhestrom ungleich Null, was die Gesamtlebensdauer verkĂŒrzte.


Kleine Finger - kleine Finger



Es ist Zeit, sich zu beruhigen und die "fortgeschrittene" chinesische Erfahrung zu nutzen, um alle Ihre GerĂ€te mit drei AAA zu versorgen (Batterien sind nicht im Lieferumfang enthalten). Er entschied sich jedoch fĂŒr eine Lösung mit mindestens zwei 1,5-Volt-Batterien.


Ich habe bei einem solchen Schema mit einem zunehmenden Stabilisator NCP1400 angehalten :



Zwei in Reihe geschaltete alkalische AAA-Batterien liefern am Ende des Produktionszeitraums zunÀchst 2,7-3,1 V, wodurch die Spannung auf 1-2 V reduziert wird


Wenn der NCP1400 ausgeschaltet ist (niedriger Pegel am Steuereingang), wird die Batterie sofort ĂŒber die L1-Spule und die Schottky-d1-Diode mit einem minimalen Spannungsabfall von etwa 0,1 V an den MC geliefert. Wenn an den Steuereingang ein hoher Pegel angelegt wird, startet der NCP1400-Stabilisator und gibt dem MK eine Spannung von 3,3 V mit einer Gesamtbatteriespannung von 0,8 V bis 3,1 V.


Der Operationsalgorithmus ist wie folgt:


  1. WĂ€hrend sich der Controller hauptsĂ€chlich im PowerDownMode befindet, sind alle PeripheriegerĂ€te, einschließlich des NRF24, deaktiviert oder befinden sich auch im Energiesparmodus.
  2. Der MC verlÀsst den Ruhemodus durch Unterbrechung durch den Timer oder durch eine externe Unterbrechung (z. B. bei Schaltern durch Unterbrechung durch die Taste). Die Versorgungsspannung VCC (eingebaute Funktion von AVR-Controllern) wird gemessen.
  3. Wenn die Versorgungsspannung grĂ¶ĂŸer als 3 V ist (oder eine andere Spannung, die fĂŒr einen stabilen Peripheriebetrieb ausreicht), startet der NCP1400 nicht und die gesamte Verarbeitung wird bei dieser Versorgungsspannung bis zum nĂ€chsten Ruhezyklus ausgefĂŒhrt.
  4. Wenn die Spannung unter 3 V liegt, startet der NCP1400-Stabilisator, die Versorgungsspannung wird auf 3,3 V eingestellt, die gesamte regulĂ€re Verarbeitung des GerĂ€ts wird durchgefĂŒhrt, einschließlich des Sendens von Daten ĂŒber NRF24
  5. Wenn die Spannung ĂŒber 1,7 V liegt (ausreichende Spannung, um den MC aus dem Ruhemodus zu verlassen), wird der NCP1400 bis zum nĂ€chsten Aufweckzyklus ausgeschaltet.
  6. Wenn die Spannung weniger als 1,7 betrÀgt (die minimale Spannung des MK), schaltet sich der NCP1400 erst aus, wenn der Controller neu startet oder wenn die Versorgungsspannung unter 0,8 V fÀllt (Spannung des NCP1400).

Skizze dieses Algorithmus
#define MY_RF24_CE_PIN 9 #define MY_RF24_CS_PIN 10 #define MY_RF24_POWER_PIN 8 #define MY_RADIO_NRF24 #include <MySensors.h> #define PIN_NCP1400 2 #define CHILD_ID_VCC 0 MyMessage msgVcc(CHILD_ID_VCC, V_VOLTAGE); bool low_power = false; int readVcc(); // void before(){ pinMode(PIN_NCP1400,OUTPUT); digitalWrite(PIN_NCP1400,HIGH); } void presentation(){ sendSketchInfo("NCP1400 test", "1.0"); present(CHILD_ID_VCC, S_MULTIMETER,"mV"); } // void loop(){ int vcc = 1000; if( low_power == false ){ vcc = readVcc(); digitalWrite(PIN_NCP1400,HIGH); //  NRF1400 } if( vcc < 1700 )low_power = true; //      NRF1400 send(msgVcc.set(vcc)); //  VCC if( low_power == false )digitalWrite(PIN_NCP1400,LOW); //  NRF1400 sleep( 300000 ); //      5  } /** *     VCC  */ int readVcc() { long result; // Read 1.1V reference against AVcc ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1); delay(2); // Wait for Vref to settle ADCSRA |= _BV(ADSC); // Convert while (bit_is_set(ADCSRA,ADSC)); result = ADCL; result |= ADCH<<8; result = (1100L * 1023)/result; return((int)result); } 

Testen


Und wie gehen wir in der Praxis mit dem aktuellen Verbrauch um? Ich schließe meinen Stromkreis an den LBP an und messe den Stromverbrauch und die Ausgangsspannung.



Der Leerlaufstrom bei ausgeschaltetem NCP1400 und einer Eingangsspannung von 1-3 V betrug 0,3 ÎŒA. Noch niedriger als die im Datenblatt angegebenen 0,5 mkA (oder vielleicht geben meine GerĂ€te in diesem Bereich einen großen Fehler aus). Bei eingeschaltetem Stabilisator ohne Last stellte sich heraus, dass der Strom unerwartet groß war - mehr als 0,3 mA. Es stellte sich heraus, dass der Pull-up-Widerstand R1 einen hohen Verbrauch verursachte. Durch Ersetzen der R1-Bewertung von 10 K auf 150 K erhielt ich 30 ÎŒA bei einer Eingangsspannung von 3,0 V und 44 ÎŒA bei 1,0 V.


Wenn Sie den Widerstand R1 vollstĂ€ndig entfernen, wird der Stabilisator, wenn dieser Eingang nicht mit dem MC verbunden ist, stĂ€ndig mit einer ankommenden 2 V von etwa 11 ÎŒA verbraucht.
Jetzt verbinde ich den Mikrocontroller mit NRF24L01 und dem HUD21-Sensor und arbeite nach dem oben beschriebenen Algorithmus:


  • Eingangsspannung 3,0 V - aktiver Modus (NCP1400 ist eingeschaltet) 32 mA, Schlafmodus (NCP1400 ist ausgeschaltet) 9 mA
  • Eingangsspannung 2,0 V - aktiver Modus (NCP1400 ist eingeschaltet) 51 mA, Schlafmodus (NCP1400 ist ausgeschaltet) 6 mA
  • Eingangsspannung 1,7 V - aktiver Modus (NCP1400 ein) 63 mA, Schlafmodus (NCP1400 aus) 5,6 mA
  • Eingangsspannung 1.0V - NCP1400 ist stĂ€ndig eingeschaltet - Schlafmodus 197mkA
  • Eingangsspannung 0,5 V - NCP1400 ist stĂ€ndig eingeschaltet - 397 ÎŒA Schlafmodus

Der aktive Batterieverbrauch steigt, wenn die Leistung reduziert wird. Die Spannung von 1,7 V wurde experimentell gewĂ€hlt. Unterhalb dieses Wertes arbeitet der Mikrocontroller möglicherweise bereits nicht stabil. Wenn die Batteriespannung unter diesen Schwellenwert fĂ€llt, schaltet sich der NCP1400-Stabilisator nicht mehr aus und der Verbrauch im Schlafmodus ist ziemlich hoch. In diesem Modus halten die Batterien nicht lange, aber es bleibt genĂŒgend Zeit, um sie auszutauschen.


Verkörperung in der DrĂŒse


Entwickelte universelle Stromversorgungsplatinen fĂŒr meine Smart-Home-GerĂ€te




Und obwohl die fertigen GerĂ€te nicht so kompakt waren wie mit Lithiumbatterien, war das Ergebnis fĂŒr mich ganz gut. vor allem angesichts der Kosten fĂŒr Alkalibatterien in den GeschĂ€ften von Galomart, Kastorama, Leroyle usw.



Derzeit arbeite ich zu Hause mit mehr als einem Dutzend verschiedenen GerĂ€ten zur Überwachung von Temperatur, Bodenfeuchtigkeit usw. im MuSensors / MajorDoMo-System.


Lesen Sie mehr in meinem Blog

Source: https://habr.com/ru/post/de465393/


All Articles