RisalDash RisalDash

Qo‘llanma · Kam quvvat · Batareya

ESP32 sensorini bitta batareyada bir yil ishlating

Wi-Fi yoqilgan ESP32 ~160–260 mA tortadi va LiPo’ni bir necha soatda tugatadi. Ammo batareyali sensor uyg‘oq turishi shart emas — u uyg‘onadi, o‘qiydi, yuboradi va yana uxlaydi. Deep sleep’da xuddi shu chip taxminan 10 µA tortadi. Bu soatlar bilan bir yil orasidagi farq.

Deep sleepKam quvvatBatareyaESP32ULP18650
18650 batareyada ESP32, dashboardda deep sleepda 10 µA
Uyquda 10 µA — 18650 kunlar emas, yillar yashaydi.

Uyqu rejimlari, tok bo‘yicha

Deep sleep — batareyali sensorlar uchun oltin o‘rtacha yechim: mikroamper sarf va taymer yoki pin bo‘yicha uyg‘onish.

«Uyg‘on–ishla–uxla» patterni

Deep sleep — bu pauza emas, aslida qayta yuklanish. CPU to‘xtaydi, RAM yo‘qoladi, uyg‘onganda esa eskizingiz yana setup() dan boshlanadi. Shuning uchun ishni setup() ichiga qo‘yasiz, keyin esa uxlaysiz:

#include "esp_sleep.h"
#define uS_PER_S 1000000ULL

RTC_DATA_ATTR int bootCount = 0;   // RTC xotirada uyquni saqlab qoladi

void setup() {
  Serial.begin(115200);
  bootCount++;                     // deep sleep = yangi yuklanish; setup qaytadan ishlaydi
  // ... Wi-Fi ga ulanish, sensorni o‘qish, ma’lumot yuborish ...

  esp_sleep_enable_timer_wakeup(10 * 60 * uS_PER_S);   // 10 daqiqadan keyin uyg‘onish
  // esp_sleep_enable_ext0_wakeup(GPIO_NUM_33, 0);      // ...yoki pin bo‘yicha (PIR, gerkon)
  esp_deep_sleep_start();          // pastdagi hamma narsa endi ishlamaydi
}

void loop() {}                     // ishlatilmaydi — ish setup() ichida yashaydi

Ozgina RTC xotira (RTC_DATA_ATTR) uyquni saqlab qoladi, shuning uchun hisoblagich yoki oxirgi holatni flash’ga murojaat qilmasdan uyg‘onishlar orasida saqlab turishingiz mumkin.

Uni nima uyg‘otishi mumkin

Batareya muddatini hisoblash

Muhimi — o‘rtacha tok. Aytaylik, siz har 10 daqiqada 150 mA da 2 s uyg‘onasiz va qolgan vaqtni 10 µA da uxlaysiz. Uyg‘oqlik ulushi — 2 s / 600 s ≈ 0,33%, demak o‘rtacha tok taxminan 0.0033 × 150 mA + 10 µA ≈ 0.5 mA. Shunda 2000 mAh li 18650 ~4000 soat — taxminan besh oy chidaydi, uyg‘oqlik vaqtini qisqartirish yoki kamroq yuborish esa uni bir yildan oshiradi.

1-tuzoq: sizning dev-platangiz hech qachon 10 µA ga yetmaydi

Bunga hamma tushadi. Yalang‘och ESP32 moduli ~10 µA da uxlaydi — ammo dev-platada yana doimo-yonuvchi quvvat LED, USB-serial chip (CH340/CP2102) va AMS1117 stabilizatori bor, ularning har biri kunu-tun milliamper yeydi. Platangiz 5–20 mA da «uxlaydi» va batareya bir necha kunda o‘ladi. Yechim: quvvat LED’ini olib tashlang, kam quvvatga mo‘ljallangan plata yoki samarali stabilizatorli yalang‘och modul oling. quvvat va stabilizatorlar bo‘yicha qo‘llanmani ko‘ring — Wi-Fi ostida kuchlanishni pasaytiradigan o‘sha AMS1117 uyquda ham batareyangizni behuda yeydi.

Yana ko‘proq siqib olish

Deep sleep ESP32’ni stolga bog‘langan, USB’dan quvvat oluvchi platadan devorga yopishtirib bir mavsumga unutib qo‘yish mumkin bo‘lgan haqiqiy simsiz sensorga aylantiradi.

Batareya oylar emas, kunlarda tugayaptimi? Odatda aybdor — stabilizator va LED.