{"id":3052,"date":"2025-09-14T08:57:04","date_gmt":"2025-09-14T06:57:04","guid":{"rendered":"http:\/\/hamspirit.pl\/SQ9MDD\/?p=3052"},"modified":"2025-09-14T08:57:04","modified_gmt":"2025-09-14T06:57:04","slug":"optymalizacja-zuzycia-energii-esp32-c3-czesc-2","status":"publish","type":"post","link":"https:\/\/sq9mdd.hamspirit.pl\/?p=3052","title":{"rendered":"Optymalizacja zu\u017cycia energii ESP32-C3 \u2014 cz\u0119\u015b\u0107 2"},"content":{"rendered":"<p data-start=\"228\" data-end=\"475\">W poprzednim wpisie opisa\u0142em pierwsz\u0105 wersj\u0119 sensora BTHome opartego na ESP32-C3 oraz pierwsze pomiary jego poboru energii. Teraz przyszed\u0142 czas na g\u0142\u0119bsz\u0105 analiz\u0119 i optymalizacj\u0119, by urz\u0105dzenie mog\u0142o dzia\u0142a\u0107 jak najd\u0142u\u017cej na zasilaniu bateryjnym.<\/p>\n<p><!--more--><\/p>\n<p data-start=\"0\" data-end=\"259\">W poprzednim artykule wspomina\u0142em, \u017ce po serii usprawnie\u0144 uda\u0142o si\u0119 zej\u015b\u0107 do <strong data-start=\"77\" data-end=\"112\">0,401 mA \u015bredniego poboru pr\u0105du<\/strong>, co przek\u0142ada\u0142o si\u0119 na <strong data-start=\"136\" data-end=\"159\">oko\u0142o 194 dni pracy<\/strong> na jednym \u0142adowaniu ogniwa LiPo 2500 mAh (przy za\u0142o\u017ceniu, \u017ce realnie dost\u0119pne jest ok. 1875 mAh).<\/p>\n<p data-start=\"261\" data-end=\"385\">Od tamtego czasu uda\u0142o si\u0119 jednak osi\u0105gn\u0105\u0107 jeszcze lepszy wynik \u2014 obecnie \u015bredni pob\u00f3r pr\u0105du wynosi <strong data-start=\"361\" data-end=\"382\">zaledwie 0,162 mA<\/strong>.<\/p>\n<p data-start=\"387\" data-end=\"421\">Przeliczaj\u0105c to na czas dzia\u0142ania:<\/p>\n<ul data-start=\"422\" data-end=\"527\">\n<li data-start=\"422\" data-end=\"469\">\n<p data-start=\"424\" data-end=\"469\">1875 mAh \/ 0,162 mA = <strong data-start=\"446\" data-end=\"469\">11 574 godzin pracy<\/strong><\/p>\n<\/li>\n<li data-start=\"470\" data-end=\"527\">\n<p data-start=\"472\" data-end=\"527\">czyli oko\u0142o <strong data-start=\"484\" data-end=\"525\">482 dni dzia\u0142ania na jednym \u0142adowaniu<\/strong><\/p>\n<\/li>\n<\/ul>\n<p data-start=\"529\" data-end=\"688\" data-is-last-node=\"\" data-is-only-node=\"\">To oznacza, \u017ce czas pracy wzr\u00f3s\u0142 <strong data-start=\"562\" data-end=\"582\">ponad dwukrotnie<\/strong> wzgl\u0119dem poprzedniej wersji \u2014 z oko\u0142o p\u00f3\u0142 roku do niemal <strong data-start=\"640\" data-end=\"656\">p\u00f3\u0142tora roku<\/strong> dzia\u0142ania na tym samym ogniwie.<\/p>\n<h3 data-start=\"482\" data-end=\"505\">\u26a1 Metodyka pomiar\u00f3w<\/h3>\n<p data-start=\"507\" data-end=\"643\">Do pomiar\u00f3w u\u017cy\u0142em Power Profiler Kit, co pozwoli\u0142o mi \u015bledzi\u0107 przebieg poboru pr\u0105du w czasie z rozdzielczo\u015bci\u0105 pojedynczych milisekund.<\/p>\n<p data-start=\"645\" data-end=\"693\">Ka\u017cdy pomiar obejmowa\u0142 pe\u0142ny cykl pracy sensora:<\/p>\n<p data-start=\"645\" data-end=\"693\">&#8211; wybudzenie z deep sleep<br \/>\n&#8211; odczyt temperatury z DS18B20 (10-bit oraz domy\u015blna rozdzielczo\u015b\u0107)<br \/>\n&#8211; odczyt napi\u0119cia baterii przez ADC<br \/>\n&#8211; transmisja danych przez BLE (BTHome)<br \/>\n&#8211; powr\u00f3t do deep sleep<\/p>\n<h3 data-start=\"980\" data-end=\"1002\">\ud83d\udcca Wyniki pomiar\u00f3w<\/h3>\n<p data-start=\"1004\" data-end=\"1070\">Poni\u017cej przedstawiam wykresy z poszczeg\u00f3lnych etap\u00f3w pracy uk\u0142adu:<\/p>\n<h4 data-start=\"1072\" data-end=\"1103\">\ud83e\uddca Odczyt DS18B20 \u2014 10 bit<\/h4>\n<p data-start=\"1104\" data-end=\"1144\"><a href=\"http:\/\/10.9.48.151\/wp-content\/uploads\/2025\/09\/odczyt-ds-10bit.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-3054\" src=\"http:\/\/10.9.48.151\/wp-content\/uploads\/2025\/09\/odczyt-ds-10bit.png\" alt=\"\" width=\"800\" height=\"449\" \/><\/a><\/p>\n<h4 data-start=\"1200\" data-end=\"1248\">\ud83c\udf21\ufe0f Odczyt DS18B20 \u2014 domy\u015blna rozdzielczo\u015b\u0107<\/h4>\n<p><a href=\"http:\/\/10.9.48.151\/wp-content\/uploads\/2025\/09\/odczytds-domyslna-konwersja.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-3055 \" src=\"http:\/\/10.9.48.151\/wp-content\/uploads\/2025\/09\/odczytds-domyslna-konwersja.png\" alt=\"\" width=\"800\" height=\"449\" \/><\/a><\/p>\n<p>Jak wida\u0107 na powy\u017cszych wykresach okaza\u0142o si\u0119, \u017ce pr\u00f3ba wymuszenia ni\u017cszej rozdzielczo\u015bci pomiaru na czujniku DS18B20 \u2014 np. 9 bit lub 10 bit \u2014 wbrew oczekiwaniom <strong data-start=\"143\" data-end=\"189\">nie skraca czasu cyklu, a wr\u0119cz go wyd\u0142u\u017ca<\/strong>. Analiza wykres\u00f3w poboru pr\u0105du ujawni\u0142a, \u017ce komunikacja z czujnikiem w tych trybach trwa zauwa\u017calnie d\u0142u\u017cej ni\u017c przy domy\u015blnej (12-bitowej) rozdzielczo\u015bci. W efekcie uk\u0142ad ESP32-C3 pozostaje aktywny d\u0142u\u017cej, co przek\u0142ada si\u0119 na <strong data-start=\"417\" data-end=\"452\">wi\u0119kszy ca\u0142kowity pob\u00f3r energii<\/strong>. To pokazuje, \u017ce pozornie \u201eoszcz\u0119dniejsza\u201d konfiguracja nie zawsze prowadzi do realnych zysk\u00f3w energetycznych \u2014 w tym przypadku optymalnym wyborem okaza\u0142a si\u0119 w\u0142a\u015bnie domy\u015blna rozdzielczo\u015b\u0107 czujnika.<\/p>\n<h4 data-start=\"1357\" data-end=\"1388\">\ud83d\udd0b Odczyt napi\u0119cia baterii<\/h4>\n<p><a href=\"http:\/\/10.9.48.151\/wp-content\/uploads\/2025\/09\/odczyt-baterii.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-3056 \" src=\"http:\/\/10.9.48.151\/wp-content\/uploads\/2025\/09\/odczyt-baterii.png\" alt=\"\" width=\"800\" height=\"449\" \/><\/a><\/p>\n<h4 data-start=\"1484\" data-end=\"1515\">\ud83d\udce1 Nadawanie danych BTHome<\/h4>\n<p><a href=\"http:\/\/10.9.48.151\/wp-content\/uploads\/2025\/09\/nadawanie-danych.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-3057 \" src=\"http:\/\/10.9.48.151\/wp-content\/uploads\/2025\/09\/nadawanie-danych.png\" alt=\"\" width=\"800\" height=\"449\" \/><\/a><\/p>\n<h3 data-start=\"1618\" data-end=\"1651\">\ud83d\udee0\ufe0f Wprowadzone optymalizacje<\/h3>\n<p data-start=\"1653\" data-end=\"1707\">Na podstawie powy\u017cszych danych wykona\u0142em kilka krok\u00f3w:<\/p>\n<p data-start=\"1653\" data-end=\"1707\">&#8211; skr\u00f3cenie czasu aktywnego dzia\u0142ania ESP32-C3 (szybsze przechodzenie w deep sleep)<br \/>\n&#8211; wy\u0142\u0105czanie obwod\u00f3w radiowych tu\u017c po starcie (Wi-Fi\/BLE domy\u015blnie aktywne po boot)<br \/>\n&#8211; zmniejszenie liczby pr\u00f3bek i konwersji ADC do niezb\u0119dnego minimum<br \/>\n&#8211; wy\u0142\u0105czenie nieu\u017cywanych peryferi\u00f3w<\/p>\n<p data-start=\"0\" data-end=\"532\">Najwi\u0119kszy wp\u0142yw na ograniczenie zu\u017cycia energii mia\u0142a jednak modyfikacja sprz\u0119towa, polegaj\u0105ca na <strong data-start=\"99\" data-end=\"157\">usuni\u0119ciu fabrycznego stabilizatora liniowego z p\u0142ytki<\/strong>. Ten oryginalnie zamontowany uk\u0142ad charakteryzowa\u0142 si\u0119 <strong data-start=\"213\" data-end=\"255\">stosunkowo wysokim pr\u0105dem spoczynkowym (oko\u0142o 60uA)<\/strong>, czyli ilo\u015bci\u0105 pr\u0105du pobieranego nawet wtedy, gdy mikrokontroler pozostaje w trybie u\u015bpienia i praktycznie nie wykonuje \u017cadnych operacji. W przypadku urz\u0105dze\u0144 zasilanych bateryjnie taki niepotrzebny, sta\u0142y pob\u00f3r pr\u0105du potrafi znacz\u0105co skr\u00f3ci\u0107 czas pracy na jednym \u0142adowaniu.<\/p>\n<p data-start=\"534\" data-end=\"873\">Po wylutowaniu stabilizatora pod\u0142\u0105czy\u0142em zasilanie <strong data-start=\"585\" data-end=\"642\">bezpo\u015brednio z precyzyjnego zasilacza laboratoryjnego<\/strong>, co pozwoli\u0142o na dok\u0142adniejsze pomiary oraz ca\u0142kowite wyeliminowanie strat generowanych przez oryginalny stabilizator. Dzi\u0119ki temu mog\u0142em oceni\u0107 rzeczywiste minimalne zapotrzebowanie energetyczne samego mikrokontrolera ESP32-C3.<\/p>\n<p data-start=\"875\" data-end=\"1328\" data-is-last-node=\"\" data-is-only-node=\"\">Docelowo planuj\u0119 przylutowa\u0107 <strong data-start=\"904\" data-end=\"945\"><span class=\"hover:entity-accent entity-underline inline cursor-pointer align-baseline\"><span class=\"whitespace-normal\">TPS7A0331PDBVR<\/span><\/span><\/strong>, czyli wysokiej jako\u015bci stabilizator napi\u0119cia o <strong data-start=\"994\" data-end=\"1064\">ultra-niskim pr\u0105dzie spoczynkowym wynosz\u0105cym oko\u0142o 250 nanoamper\u00f3w<\/strong>. Tak niewielka warto\u015b\u0107 oznacza, \u017ce stabilizator praktycznie nie obci\u0105\u017ca baterii podczas u\u015bpienia uk\u0142adu, co czyni go <strong data-start=\"1182\" data-end=\"1260\">idealnym rozwi\u0105zaniem dla energooszcz\u0119dnych urz\u0105dze\u0144 zasilanych bateryjnie<\/strong>, takich jak czujniki IoT dzia\u0142aj\u0105ce w trybie okresowego wybudzania.<\/p>\n<p>&nbsp;<\/p>\n<p data-start=\"0\" data-end=\"396\">Analiza przebieg\u00f3w poboru pr\u0105du pozwoli\u0142a precyzyjnie zidentyfikowa\u0107 etapy pracy sensora, kt\u00f3re najbardziej obci\u0105\u017ca\u0142y \u017ar\u00f3d\u0142o zasilania, i stopniowo je zoptymalizowa\u0107. Okaza\u0142o si\u0119, \u017ce nawet drobne zmiany w kodzie czy konfiguracji peryferi\u00f3w przek\u0142adaj\u0105 si\u0119 na zauwa\u017calne oszcz\u0119dno\u015bci energii, a dzi\u0119ki modyfikacjom sprz\u0119towym uda\u0142o si\u0119 osi\u0105gn\u0105\u0107 ponad dwukrotne wyd\u0142u\u017cenie czasu pracy na baterii.<\/p>\n<p data-start=\"398\" data-end=\"716\" data-is-last-node=\"\" data-is-only-node=\"\">W kolejnym etapie planuj\u0119 przej\u015b\u0107 od prototypu do wersji docelowej \u2014 zaprojektowa\u0107 w\u0142asn\u0105 p\u0142ytk\u0119 PCB z uwzgl\u0119dnieniem wszystkich dotychczasowych usprawnie\u0144 energetycznych oraz przygotowa\u0107 obudow\u0119 do druku 3D w dw\u00f3ch wariantach: przeznaczon\u0105 do u\u017cytku wewn\u0119trznego oraz wersj\u0119 outdoor, odporn\u0105 na warunki atmosferyczne.<\/p>\n<p>&nbsp;<\/p>\n<p data-start=\"2743\" data-end=\"2874\">\ud83d\udccd<em data-start=\"2745\" data-end=\"2837\">Ten wpis jest cz\u0119\u015bci\u0105 serii o budowie i optymalizacji sensora BTHome opartego na ESP32-C3.<\/em><br data-start=\"2837\" data-end=\"2840\" \/>Poprzedni wpis: <a href=\"https:\/\/hamspirit.pl\/SQ9MDD\/?p=3026\">[link do cz\u0119\u015bci 1]<\/a><\/p>\n<p data-start=\"2743\" data-end=\"2874\">R.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>W poprzednim wpisie opisa\u0142em pierwsz\u0105 wersj\u0119 sensora BTHome opartego na ESP32-C3 oraz pierwsze pomiary jego poboru energii. Teraz przyszed\u0142 czas na g\u0142\u0119bsz\u0105 analiz\u0119 i optymalizacj\u0119, by urz\u0105dzenie mog\u0142o dzia\u0142a\u0107 jak najd\u0142u\u017cej na zasilaniu bateryjnym.<\/p>\n","protected":false},"author":2,"featured_media":3033,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10,23],"tags":[],"class_list":["post-3052","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-diy","category-testy"],"_links":{"self":[{"href":"https:\/\/sq9mdd.hamspirit.pl\/index.php?rest_route=\/wp\/v2\/posts\/3052","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sq9mdd.hamspirit.pl\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sq9mdd.hamspirit.pl\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sq9mdd.hamspirit.pl\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/sq9mdd.hamspirit.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3052"}],"version-history":[{"count":0,"href":"https:\/\/sq9mdd.hamspirit.pl\/index.php?rest_route=\/wp\/v2\/posts\/3052\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sq9mdd.hamspirit.pl\/index.php?rest_route=\/wp\/v2\/media\/3033"}],"wp:attachment":[{"href":"https:\/\/sq9mdd.hamspirit.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3052"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sq9mdd.hamspirit.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3052"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sq9mdd.hamspirit.pl\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3052"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}