Elektronika elemes táplálása

OK, más topic-okban már kérdeztem pár dolgot és kaptam is választ erre-arra, de nem találom (túl sok topic-hoz szóltam hozzá :-D )

A lényeg, ESP8266-ra épülő kicsi és keveset fogyasztó (az idő nagy részében alvó) cuccot szeretnék elemről táplálni.

Ahogy nézem, kb. mindennek 3V kell minimum, és az ESP max. 3,6V-ot fogad el. Az egyéb alkatrészek (főleg szenzorok), fölfelé rugalmasabbak, de lefelé szigorúak. 3V-os (gomb, 2xAA vagy 2xAAA) elemben gondolkozom, illetve lehet 4,5V-os (3xAA vagy 3xAAA) ha van ennek a megoldásnak valami előnye.

Mivel gond, ha merül az eredetileg 3V-os elem és nem ad már 3V-ot legalább, illetve a 4,5V túl sok az ESP-nek, arra gondoltam, hogy step up (kevesebbről 3V-ot) vagy step down (4,5V->3V vagy 3,3V) buck converter kellhet nekem. Majd megpróbálom megtalálni a feszültségek alapján, mi is kell pontosan, ha be nem írja ide fejből valami jótét lélek a megoldást addig.

Két kapcsolódó kérdés: ha az egyik legfontosabb szempontom az, hogy az elemeket ne kelljen gyakran cserélni, akkor a szükséges feszültség előállítására ez az irány nekem a legjobb hatékonyságú?
Hatékonyság szempontjából jobb nekem a 4,5V-ot 3-ra konvertálni, vagy a pár tizeddel alacsonyabbat fel 3V-ra? (Úgy olvastam, egy 3V-os gomb elem kb. 3,3V-ot ad amikor új és 2.7V-ot amikor már vége)

Viszont amit szeretnék még, az az elem állapotának a mérése, hogy az eszköz tudjon szólni, ha az elem merülőben van.
Egy gyors Google adott pár találatot:
https://ezcontents.org/esp8266-battery-level-meter
https://www.reddit.com/r/esp8266/comments/88yvpl/best_way_to_check_batt…

Szóval ez a jó irány? Két nagy ellenállással készítsek egy feszültség osztót, és megkeresem, hogy melyik lábán és hogyan tudja az ESP mérni az feszültséget analóg jelként?
Nekem ESP-01-es lapkáim vannak főleg, ezeken nem látom a leírásokban említett A0 vagy ADC lábat. Csak 4 GPIO, föld, táp, RX és TX van, úgy tűnik, semmi analóg bemenet. Jól látom?
Ha nincs neki analóg bemenete, akkor felejtsem el, nem fogom tudni mérni a feszültséget (ezzekkel a lapkákkal), vagy van valami más irány, amit használhatnék?

Hozzászólások

"Szóval ez a jó irány? Két nagy ellenállással készítsek egy feszültség osztót, és megkeresem, hogy melyik lábán és hogyan tudja az ESP mérni az feszültséget analóg jelként?"

Feszültségosztó kell mindhez, mert oda 0..1V-ot kell beengedni, erről fog tudni 0..1024 értékek között nyilatkozni. Érdemes mozgóátlagot számolni 30-as faktorral (30db int16, elfér), hogy a mérési hibák miatt ne riasszon.

ESP-01 kevés lába van, nem sokkal drágább egy WemosD1 és USB-s csatit is kapsz és táblálni is tudod.

Azért ezzel csak óvatosan.

Nem árt tudni, hogy ezeknél a a kütyüknél a legtöbbször az uart állandóan kap tápot, elég hamar meg tudja enni az akksit.

Sokat szenvedtem vele, a vége az lett, hogy az uart mindkét tápvezetékét elvágtam a panelen, és külső usb-uart átalakítóval programozom.

Amit én használok, abban az a jó (szerintem), hogy rajta van az akkutartó, akku töltő áramkör, így ha pl napelemes töltésben is gondolkodsz, akkor a teendő csak annyi, hogy a Vin-re rákötöd a napelemet.

Persze az AMS1117-et kicseréltem egy AP2114H-3.3TRG1-re (fontos a H, ennek kompatibilis a lábkiosztása).

Kapható a Kontel-nél (kb. 160 Ft/db).

https://www.banggood.com/LILYGO-D1-Esp-Wroom-02-Motherboard-ESP8266-Min…

"Szóval ez a jó irány? Két nagy ellenállással készítsek egy feszültség osztót, és megkeresem, hogy melyik lábán és hogyan tudja az ESP mérni az feszültséget analóg jelként?"

Én úgy tudom, hogy ilyet leginkább feszültségméréskor szabad használni, ilyenkor nem. Egyfelől állandó fogyasztó lesz (talán ez a kisebbik gond), másfelől az eszköz aktuális fogyasztása változtatja annak az oldalnak az ellenállását, ami pedig változtat a feszültségen is. Emiatt azt mondják, hogy ahol terhelés van, ott nem használható feszültségosztó.

Nagy Péter

No akkor itt két dolgot nem értek.

1, azt hittem, hogy pont feszültség mérést próbálok csinálni

2, ha így nem, akkor hogyan kellene?

+1 igaz, hogy állandó fogyasztó lesz, de ha viszonylag nagy ellenállásokat teszek oda, akkor nagyon pici áram folyik el errefelé. Vagy ahogy mások írták, lehet kapcsolni, hogy mikor folyjék erre áram.

disclaimer: ha valamit beidéztem és alá írtam valamit, akkor a válaszom a beidézett szövegre vonatkozik és nem mindenféle más, random dolgokra.

Egyébként az ESP átkapcsolható belül arra, hogy mérje a saját tápfeszültségét, nem kell hozzá semmi külön trükk, annyi a limitáció, hogy erre az egyetlen ADC-t használja, vagyis ilyenkor nem tudsz analóg bemenetet használni és ezt az átkapcsolást egyszer tudod megtenni a boot után, boot után már nem lehet változtatni.

Ez frankó, de ha az elem által adott feszültséget én az ESP által elfogadható szintre konvertálom, akkor, feltételezem, az ESP csak a konverzió utáni szép stabil feszültséget tudja mérni, és így ez használhatatlan arra, hogy az elem/akku feszültségéről bármit megtudjak.

disclaimer: ha valamit beidéztem és alá írtam valamit, akkor a válaszom a beidézett szövegre vonatkozik és nem mindenféle más, random dolgokra.

Bőven elég arra, hogy a lemerülés előtt tudjad, hogy nemsokára cserélni kell, mert a sokáig stabil 3,3 voltról egy idő után le fog csökkenni 2,8 voltig, ameddig még az ESP működik, napjaid vannak arra, hogy észrevedd és cserélni tudd. Ennek ellenére mérheted osztón át az akkut is közvetlenül, csak felesleges alkatrész, ha amúgy nem érdekel, hogy 90 vagy 30 százalék van még a akkuban, az érdekel, hogy mikor kell cserélni.

Elem alatt tényleg elemet gondolsz vagy legalább NiMH akkut?

3 x 1.2V NiMh akkumulátor, időnként USB-ről töltve.

És hogyan biztosítom, hogy a feszültség nem esik 3V alá, vagy honnan tudom, hogy nem azért mondja azt, hogy 17 fokos a melegvíztartályban a hőmérséklet, mert nincs meleg vizünk, hanem csak merülnek az akkuk, beesett a feszültség 3V alá és most már valótlan számokat küld?

Vagy ez csak a fele megoldása a dolgoknak, nem kell feszültséget alakítanom semerre, viszont még mindig meg kell akárhogyan oldanom az akku töltöttség figyelést (és értesítést)?

disclaimer: ha valamit beidéztem és alá írtam valamit, akkor a válaszom a beidézett szövegre vonatkozik és nem mindenféle más, random dolgokra.

Amit én használok (fentebb írtam), ott nincs ilyen gond, mert az akku nem közvetlenül táplálja, hanem egy TP5410 csinál stabil 5v-ot, és ez megy tovább. A kettős konverzió miatt van veszteség akku->TP5410->AMS1117(AP2114H-3.3TRG1), de szerintem ez elviselhető (valamit valamiért). A tesztjeim szerint egy gagyi kínai 6000mAh (250-300 mAh, minden mérésnél más kapacitást mutat a töltő :)), 7 db érzékelő (2db DHT11,3 db DS18b20, 2db BME280), percenkénti ébredés, wifire csatlakozás, majd sql-be beküldés esetén 23-24 órát bír. Ez kb 1400-1500 ébredés csatlakozás stb... Persze ezek csak tesztek, hogy ne kelljen sokat várni amíg kimerül az akku.Az uart táp elvágása nélkül és az AMS 1117 cseréje előtt ez az idő 8-9 óra volt.

A program kb a következőket csinálja:

wifi be, kapcsolódás indítása

végigteker az összes pin-en, megnézi van-e érzékelő és milyen

ha van akkor kiolvassa, és beteszi egy tömbbe az értékeket

Ha megvan az összes pin, akkor megvárja, hogy a wifi csatlakozzon

ha csatlakozott a wifi-re akkor beküldi sql-be.

wifi ki

deep sleep.

Valamit nagyon nem csinálsz jól. Nekem egy WEMOS D1 mini egy BM280 vagy 3 DS18B20 szenzorral egy 18650-es celláról elmegy 3-5 hónapot időjárás és mintavétel függvényében, ha 150 másodpercenként küld egy mérést, akkor 3 hónapot szokott bírni, azaz 50 ezer mérést el tud küldeni, illetve két-három nappal korábban már jelzi, hogy cserélni kell majd az akkut. Semmi trükközés nincs, a WEMOS D1 mini 5 voltos lábára kerül direktben az akku.

Tudom, hogy nem, csak azt nem tudom mit.Olvastam sok helyen, hogyan futtassunk ESP-t egy évig egy elemről stb...Nekem ez nem jön össze.

Nézzük a Tiédet:

Szerintem a wifire kapcsolódást nem nagyom lehet 5mp alá vinni (nekem nem akar sikerülni).

Tehát 50000 ciklus* 5mp=250000 mp-> ~69,4 óra ahol a wifi teljes erőből eszi az áramot kb 180-230 mA. Legyen 69 óra és 210 mA.

69 óra * 210mA = 14490 mAh, ha felezem a fogyasztást (márpedig a wifi-nek áram kell) meg az időt, akkor sem nagyon.

A többi fogyasztás nem is említem, csak a wifi-t.

Nekem ez nem jön ki.

Szerintem a wifire kapcsolódást nem nagyom lehet 5mp alá vinni (nekem nem akar sikerülni).

Hogyne lehetne. El kell tenni RTC memóriába a kapcsolódási paramétereket és azzal visszapróbálkozni először a költséges network scan, SSID feloldás és DHCP helyett, így tipikusan 300 ms alatt van Wifi kapcsolatod.

ESP táplálására legegyszerűbb egy Li akku a maga 3,7 voltjával. Kell hozzá egy LDO, de az AMS 1117 nem jó, túl nagy rajta a feszültségesés, meg nagy a saját fogyasztása is. Legalább 250-300 mA-t kell tudnia biztosítani, a saját fogyasztására alaphelyzetben 8uA mond (DD0403MA talán a típusa). Ez már jó, ki lehet vele húzni egy pár hónapot, ha röviden és ritkán mérsz.

A feszültségosztós mérésre még nem találtam igazi megoldást. A probléma az, hogy a saját fogyasztása itt is jelentős lesz az ESP fogyasztásához képest. Ráadásul alvó módban is fog fogyasztani. Esetleg egy FET mehetne a feszültségosztó felső ágába, az ESP kapcsolná be, ha mérni akar. A rajta eső feszültséget meg ki lehetne kompenzálni.

Van egy külső hőmérőm - BME280, ESP12, LDO, akku - csak most hálózatról megy, mert az akku mérését még nem volt időm megcsinálni, úgy meg egyszer csak eltűnik, ha kifogy a szufla. Mérés 10 percenként, ilyenkor 10 másodpercre aktív általában, de ezen még lehet faragni.

Dell Latitude 5480, Arch Linux & Sway

Szerkesztve: 2020. 09. 26., szo – 20:20

Milyen gyorsan változik a hőmérséklet? Azaz mennyi időnként kell adatot szolgáltatni?
Az elemes táplálás okán feltételezem, hogy valami vezetéknélküli adatátvitellel. Ha igen, mindenképpen WiFi-nek kell lennie?

Milyen gyorsan változik a hőmérséklet? Azaz mennyi időnként kell adatot szolgáltatni?

Pl. a melegvízről nap közben néhány percenként küldenék adatot, éjszaka meg nem mérem.

Az elemes táplálás okán feltételezem, hogy valami vezetéknélküli adatátvitellel. Ha igen, mindenképpen WiFi-nek kell lennie?

Lehetne bármi, de mivel ESP8266-os mikrokontrollerrel építettem meg a prototípust, ez WiFi-t tud. Mondjuk nem hiszem, hogy az elemes táplálás kihívásai a vezetéknélküli átviteltől függenének, az inkább csak a fogyasztásra és az elemcsere frekvenciájára lenne hatással. Nem?

disclaimer: ha valamit beidéztem és alá írtam valamit, akkor a válaszom a beidézett szövegre vonatkozik és nem mindenféle más, random dolgokra.

Igen, az elemes táplálás és a hosszú üzemidő kapcsán bátorkodtam megkérdezni.
Szóval ahogy alább is írták, lassú mikrovezérlő ... WiFi helyett pedig
  - vagy 433 MHz-es "köpködő" adó (saját gw)
  - vagy LoRA (hálózatos/saját gw)
  - vagy Sigfox (csak hálózatos mód)
praktikusabb irány. WiFi a kapcsolat felépítése és fenntartása miatt relatív sokat fogyaszt a fenti megoldásokhoz képest.

A mikrovezérlőt és mindent altatni, aztán néhány percenként valami lassabb órajelen feléledni, rádiót is tápfesz alá helyezni, mérni-felküldeni(csomagot 3-szor megismételve)-aludni.
A saját gw, ami már hálózati energiaellátással megy, az figyelhet folyamatosan. Mindössze az adatforrás energiamérlegére kell figyelni.

OK, nem mondom, hogy ez nem jó irány, amit írsz, vagy azt, hogy az ESP a WiFi-vel jobb.

Egyszerűen ESP-m már van, és erre épülve már elkészítettem a víz hőmérését, csak az elemes táplálás hiányzik.

Ezen a ponton nem fogom az egészet kidobni és teljesen más technológiával újrakezdeni azért, mert úgy tovább bírja. Egyelőre azt se tudom, hogy az ESP meddig fogja bírni.

A következő lépés számomra az, hogy megoldjam az elemes táplálást.

Ha összerakom elemmel, és kiderül, hogy 1 nap alatt vége az elemnek, akkor egyértelműen én rontottam el valamit, mert ESP-vel hőmérőt elemről mások simán több hónapon át futtatnak. Ha kiderül, hogy minden klassz, de mondjuk havonta kimerül az elem, és nem elrontás miatt, hanem ez ennyit tud, akkor majd megnézem, hogy pl. az általad javasolt eszközökkel ugyanezt megépítve hol lennék, tesztelek, és az eredmények alapján majd választok valamit.

disclaimer: ha valamit beidéztem és alá írtam valamit, akkor a válaszom a beidézett szövegre vonatkozik és nem mindenféle más, random dolgokra.

A DC-DC konverterek ugye jellemzoen akkor is fogyasztanak, amikor nincs rajtuk terheles. A lefele (buck) konvertalok altalaban jobbak, mint amik felfele (boost) konvertalnak.

Ha nem kell, hogy folyton online legyen, azt is megteheted, hogy egy kulon, kis mikrokontroller mer, es az ESP csak akkor kapcsol be (es kap tapot), amikor kommunikalni akar. Persze ez plusz alkatresz (koltseg, hely), szoval nem biztos, hogy a kisebb fogyasztasert megeri. Akar tobb merest is memoriaban tarthat, es utana egyben is elkuldheti. Ha kazant akarsz vezerelni, egeszen addig magaban tarthatja, amig nincs szamottevo valtozas (merhet akar 5s-enkent is, ha 30 percig tizedfokon belul van, nem kuld uj adatot). Az ESP-k parszaz mA-t esznek, a 8 bites atmelek ennek a toredeket. Ha kifejezetten alacsony fogyasztast szeretnel, leveheted az orajelet vagy felhuzhatsz timert, es elkuldheted deep sleep-be. Olyankor merni sem egyszeru, annyira alacsony a fogyasztasa (kb. a telep onkisulese).

A strange game. The only winning move is not to play. How about a nice game of chess?

ha nekem kene ilyet megoldani akkor fognek egy 5V->3.3V konvertert, meg egy random usb-s powerbankot. nyilvan nem lesz tokeletes a sok fel-le valtastol, de kb 0 munkaval  megvan. :)

vagy egy wemos d1 mini, es egy battery modul hozza.

A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!

Elemről instabil lesz az ESP, akkuról próbáld, egy darab Li-ion celláról elmegy egy 5 voltos board (nekem a WEMOS D1 mini a kedvencem), 3-5 perces deep sleep ciklussal elmegy egy-egy töltéssel 3-5 hónapot.

Elemről azért instabil az ESP, mert az elemeknél nem csökken a leadott feszültség merülés közben, hanem növekszik a belső ellenállása, az ESP viszont 30-300 mA között fog felvenni áramot, állapottól függően, ilyenkor viszont be fog esni a feszültség az elem belső ellenállásán.

Nálam az ESP méri a saját tápfeszültségét, ezt is elküldi a felhőbe, onnan meg kapok riasztást, ha határérték túllépés történt (range alert), illetve akkor is, ha adott időn túl nem küld adatot (offline alert): https://iotguru.cloud/field/vLbFBGwsynqrDyXQlxoR5w/vcc

Már hogyne csökkenne, gyönyörű görbéje van. Nagyjából 0.9-1 V-ig is lehet használni az alkáli elemet.

A probléma az, hogy amikor az ESP nem húz áramot, akkor mondjuk 1,4 voltot adnak le, amikor meg 250 mA áramot húz, akkor csak 0,8 voltot ad le, ha már csak fele kapacitása van és saját magában fűti el a különbséget. A kémiai reakció nem tud 1,66 voltnál kevesebbet (ennyi a mangán-cink elektródpotenciál). Szóval konstans terheléssel hogyne csökkenne szépen, mert ilyenkor egyre nagyobb feszültség esik a növekvő az elem belső ellenállásán, de az üresjárati feszültségük jóval kevésbé csökken és az is azért, mert növekszik a terhelés függő belső ellenállása az elemnek.

Nem azért kellemetlen, mert nem tudod megmérni, hogy hol jár a kapacitása, hanem azért, mert például 3xAA feszültsége - ha mondjuk fele kapacitáson jár - a nem terhelt 4 volt között és a 250 mA árammal terhelt 2,5 volt között ingadozik, az ESP pedig a tápfeszültség elégtelensége miatt vagy újraindul vagy brownout miatt meghatározatlan állapotba kerül és manuálisan kell újraindítani. Az elemek alját pedig nem tudod kihasználni.

Vagy NiMH vagy inkább Li-ion a megoldás, ezeknél a leadott feszültség jóval kevésbé függ a terhelés áramától.

Igen és nem. Mind a két esetben elektrokémiai reakció van kihasználva, de más-más módon: az elemek esetén elektrolitba tett két vezető elektróda közötti elektródpotenciál adja a feszültségkülönbséget, az akkuk esetén pedig általában egy reverzibilis kémiai reakció elektron többlete vagy elektron hiánya.

Ettől függetlenül az elemeknek van a szerkezetük okán egy kezdeti és a kapacitásvesztéssel egyre nagyobb belső ellenállása (szó szerint elfogy az elektróda), az akkuknak meg általában ez minimális és a töltési ciklusok során növekszik inkább, mint a kisütés hatására.

Szerkesztve: 2020. 09. 27., v – 12:44

Nem ESP-vel, hanem ATTiny-val, de én olyat csináltam, hogy 18650 közvetlenül táplálja a vezérlőt. Ha létezik olyan akksi, ami közvetlenül tudja meghajtani a rendszert, az a legjobb, mert le tudod spórolni a tápáramkört. A 18650 sajnos névleg kicsit 3.6 fölé megy, szóval ez neked épp nem lesz tökéletes.

A DC-DC konvertereknek az a problémája, hogy akkor is fogyasztanak, amikor nincs fogyasztás. Elemes szenzorhoz nem ideális.

Amit összeraktam - számításaim szerint több hónapig működött volna - méregettem, de még nem került éles használatba:

 * A feszültség direktben hajtja a mikrovezérlőt. Ha semmiképp nem jó direkben, akkor léteznek úgynevezett low-drop feszültségstabilizátorok, ezek között van amelyik olyan keveset fogyaszt idle-ben, hogy alkalmas elemes működtetéshez. (Ha kicsi az akksi és a uC feszültsége közötti különbség, akkor nem érdemes kapcsolóüzemű tápot csinálni. Egy ilyen táp is épp elég hatékony pl 3.7->3V konvertálás 80%-os, ráadásul idle-ben kenterbe veri a kapcsolós tápokat. )

 * A rádiót kikapcsolom amikor nem használom. (Egyszerű digitális interfészű rádiós modult használtam. Érdemes minden áramkört úgy tervezni, hogy amiben Firmware van, azt tudja áramtalanítani a mi vezérlőnk, mert gyakori, hogy a gyenge minőségű Firmware le tud fagyni.) A szenzor nem vesz, csak küld (a vétel is sokat fogyaszt, ráadásul nem tudjuk, hogy pontosan mikor kell venni, és ha bármi hibajelet küldene a központ úgysem tudnánk vele semmit sem csinálni), viszont véletlen idővel kicsit eltolva ismétli az üzenetet párszor. (Adatlapi értékekből kiszámoltam, hogy olcsóbb mindig ismételni, mint ACK üzenetre várni és csak akkor ismételni ha szükséges.)

 * A mikrovezérlő is alvásba megy két mérés között. Ilyenkor az akksi önkisütésénel kevesebbet fogyasztunk.

 * A szenzort is áramtalanítja a mikrovezérlő két mérés között. Az is minek fogyasztana, meg melegítené magát.

 * A mérések között eltelt időt a folyamat jellege adja meg, a lehető legnagyobb időtávot válasszuk!

 * Az akksi feszültségének mérésére vannak módszerek, amik idle-ben szintén nem fogyasztanak. Lényegében a feszültségosztóra is csak kapcsolva tesszük rá a feszültséget amit mérünk. (Az ATTiny-k egy része képes a tápfeszültségének a közvetlen mérésére is, nem kell hozzá semmi külső alkatrész. - Én ilyet használtam.) A mért feszültséget küldi a központnak, ami tudna riasztani, hogy valamelyik érzékelőben elemet kell cserélni.

A gyanúm az, hogy a WiFi lesz a legnagyobb fogyasztó, hogyha rendesen megcsinálod a rendszert a többi ahhoz képest nudli lesz. Elvileg azt is lehet úgy hajtani, hogy csak a küldésre kapcsoljon be, talán érdemes volna ezt megcsinálnod.