Všichni určitě znáte NodeMCU – první vývojářskou desku s ESP8266, která se dala snadno a levně koupit. A všichni je máte v šuplíku. Dá se NodeMCU použít pro „low power“ aplikaci?
Diskutoval jsem tak s kamarádem, kterému můžeme říkat třeba Jakub, jeho ideu bezdrátového teploměru do bazénu. Už nevím, co chtěl použít za mikrokontrolér, ale určitě chtěl použít nějaký modul pro komunikaci v ISM pásmu. Nasměroval jsem ho na ESP32 / ESP8266 a jejich protokol ESP-Now, ale mezi řečí jsme narazili na to, že standardní vývojářské desky s ESP bývají pro bateriový provoz nevhodné – osazené USB-Serial převodníky a další bižuterie žerou proud více, než by bylo dobře. Jakub ovšem není „bastlíř“ v tom smyslu, že by si spájel zařízení z bare ESP8266 či ESP32. Ideálně chce hotové moduly, které jen pospojuje.
Od této diskuze mi v hlavě vrtala otázka, zda by se ty moduly, které stejně doma oba máme, náhodou přeci jen nedaly tímto způsobem použít.
Takže jsem vzal kontaktní pole a poskládal nejzákladnější bateriový bezdrátový teploměr s NodeMCU a DS18B20. A nejjednodušším odporovým děličem jsem umožnil aplikaci měřit i napětí na baterce.
Jako zdroj jsem použil čtyři alkalické AA baterie z Lidlu.
Napsal jsem jednoduchou aplikaci, která každých 15 minut změří teplotu a napětí baterie, pak zapne WiFi, odešle data na server a přepne zařízení do deep sleep na dalších 15 minut. Jeden cyklus zapnutí trvá cca 8-9 sekund.
Pomocí svého chytrého měřáku spotřeby jsem zjistil, že v deep sleep tato deska žere 2.2 mA. Při zapnutí pak cca 20 mA (bez wifi) resp. 70 mA (s wifi). Největší špičky jsou při vysílání – až 300 mA po dobu desítek milisekund.
Celková spotřeba za hodinu (při měření po 15 minutách s celkovou dobou zapnutí cca 4*8,5 sec za hodinu) je cca 2.8 mAh. Hrubým odhadem by tak zařízení z alkalických tužkovek (kapacita cca 2500 – 3000 mAh) mělo fungovat asi 35 dní.
Jaká byla realita?
- Zapnul jsem to 16. srpna.
- Baterky došly 25. září.
- Celkem zařízení fungovalo 40 dní.
- Když se zastavilo, baterie měla naprázdno cca 3.5 V.
Jako jo, pro meteostanici to není dobré, nechtělo by se mi chodit 9x ročně měnit baterie.
Ale pro měřák teploty v bazénu? To vlastně není zlé, reálně by stačilo vyměnit baterie jednou či dvakrát za koupací sezónu. S tím bych uměl žít.
Závěr: I NodeMCU bez dalších úprav pro nízkou spotřebu je možné použít pro low-power aplikaci. Ve specifických případech.