Ну собрал тестовый стенд. пока сутки работает но это обычный экране4строчный без подсветки и датчик только GY-BME280 давление температура влажность, модуль часов. Сутки работает может на неделю хватит батарейки. Что делать с метеостанцией пока не знаю. Все датчики которые молекулы измеряют химию все жрут как не всебя, и прогреваются часами. Вот думаю пока от 220 вольт сделать метеостанцию. потом может разделю на две, батареечную для погоды и для качество воздуха от розетки. Ну как то таак.
Ну а теперь спросим нейросетку, че подскажет:
Автономная метеостанция на ESP32: как не угробить батарейку за день
Я хотел собрать метеостанцию, которая работает от одного аккумулятора 18650, отправляет данные в облако и не требует подзарядки неделями. Но когда я подключил всё «как есть» — оказалось, что даже без Wi-Fi батарейка садится на 25% за сутки. А если добавить все датчики, которые мне хотелось — автономность падает до нескольких часов.
В этой статье разберу:
- Какие датчики я планировал использовать
- Сколько они жрут энергии, если их не выключать
- Какой реальный срок работы получится «всё включено»
- Как достичь максимальной автономности — до нескольких месяцев
- Хардкор-моды: что даёт выпаивание диодов и резисторов
Мой исходный набор датчиков
Изначально я хотел собрать «суперстанцию» со всеми возможными параметрами воздуха:
- ESP32 — мозг устройства, Wi-Fi, MQTT
- BME280 — температура, влажность, давление
- GY-BME280 — это тот же BME280, просто модуль
- GP2Y1010AU0F — датчик пыли (оптический)
- MH-Z19B — датчик CO₂ (на основе NDIR)
- CJMCU-6814 — аналоговый датчик NH₃, NO₂, CO
- ZE08-CH2O — электрохимический датчик формальдегида
- 4-строчный LCD → планирую заменить на e-Ink
Сценарий 1: Всё включено. Никакого сна. Никаких отключений.
Представим, что мы подали питание и оставили всё работать 24/7. Как долго протянет одна батарейка 18650 (3000 мА·ч)?
Оценка потребления (по данным даташитов и практике):
Компонент |
Ток потребления |
Примечание |
ESP32 (без Wi-Fi) | 15–20 мА | Если просто крутит loop() |
ESP32 (с Wi-Fi + MQTT) | 80–120 мА | Пик при передаче |
BME280 | 0.1–1 мА | В idle почти ничего |
GP2Y1010AU0F | 20 мА | LED горит постоянно |
MH-Z19B | 150 мА | Постоянно, даже в idle |
CJMCU-6814 | 30–50 мА | Аналоговый, требует постоянного питания |
ZE08-CH2O | 100–150 мА | Нагреватель + вентилятор |
LCD 4x20 | 5–10 мА | Без подсветки |
e-Ink (в idle) | 0 мА | Потребляет только при обновлении |
Повербанк (сам по себе) | 1–5 мА | Ждёт нагрузку — и жрёт ток |
Суммарное потребление (консервативная оценка):
- ESP32 с Wi-Fi: 100 мА
- MH-Z19B: 150 мА
- ZE08-CH2O: 120 мА
- CJMCU-6814: 40 мА
- GP2Y1010AU0F: 20 мА
- BME280: 1 мA
- Повербанк: 3 мA
Итого: ~414 мА
Ёмкость 18650: 3000 мА·ч
Время работы: 3000 / 414 ≈ 7.2 часа
Да, меньше одних суток. И это без учёта потерь в преобразователях и старения аккумулятора.
Сценарий 2: Максимальная автономность. Только самое нужное.
Чтобы устройство работало месяцами, нужно:
- Отказаться от прожорливых датчиков
- Использовать Deep Sleep
- Отключать питание датчиков между измерениями
- Заменить повербанк на прямое питание
- Использовать e-Ink
Какие датчики остаются?
- ESP32 — в Deep Sleep (10–15 мкА)
- BME280 — включается на 100 мс раз в 2 часа
- SGP41 (вместо CJMCU-6814 и ZE08) — цифровой VOC/NOx, потребление в sleep — 0.01 мА
- e-Ink дисплей — обновляется раз в 2 часа, 50 мА на 2 сек
- Питание напрямую от 18650 через TPS63020 (КПД >90%)
- TPL5110 — управляет включением всей схемы раз в 2 часа
Расчёт энергопотребления
Цикл: 2 часа (7200 сек)
- Deep Sleep: 7180 сек × 0.015 мА = 0.107 мА·ч
- ESP32 активен (Wi-Fi + MQTT): 20 сек × 100 мА = 0.56 мА·ч
- BME280: 0.1 сек × 1 мА = 0.00003 мА·ч
- SGP41: 0.1 сек × 30 мА = 0.0008 мА·ч
- e-Ink: 2 сек × 50 мА = 0.028 мА·ч
Итого за цикл: ~0.7 мА·ч
За сутки (12 циклов): ~8.4 мА·ч
Ёмкость 2×18650 (параллельно): 6000 мА·ч
Теоретическое время работы: 6000 / 8.4 ≈ 714 дней
Реалистично — с учётом саморазряда, КПД, старения: 6–12 месяцев.
Хардкор: выпаиваем всё, что светится и греется
Даже в Deep Sleep ESP32 может потреблять больше заявленных 10 мкА — из-за «мусора» на типовых платах. Вот что реально делают энтузиасты для достижения 5–8 мкА в спящем режиме:
1. Выпаиваем светодиоды
- На большинстве ESP32-плат есть 1–2 LED: питание (POWER) и TX/RX.
- Каждый подключён через резистор 220–1 кОм к 3.3 В.
- Ток одного LED: ~2–3 мА при постоянном свечении.
- Но даже если он «не горит» — если он подключён к GPIO, который в sleep может «просачивать» ток — всё равно есть утечка.
- Выпаивание всех LED экономит 2–5 мА в активном режиме и 10–50 мкА в sleep.
2. Убираем подтяжки и делители
- На многих платах есть подтягивающие резисторы на EN, GPIO0, BOOT — чтобы не «глючил» при запуске.
- Но в Deep Sleep эти резисторы создают утечки тока через «висящие» пины.
- Решение: выпаять резисторы или перерезать дорожки, если они не нужны.
3. Отключаем USB-UART чип
- ESP32 DevKit имеет встроенный CP2102 или CH340.
- Этот чип потребляет 5–10 мА даже когда ESP32 выключен!
- Хардкорщики либо:
- Выпаивают чип полностью
- Перерезают дорожку VCC к нему
- Или используют «чистую» ESP32-WROOM без USB-части
- Экономия: до 10 мА — это критично для автономии!
4. Проверяем LDO
- Некоторые платы используют LDO с высоким током покоя (например, AMS1117 — 5 мА).
- Замена на LDO с низким IQ (например, MCP1700 — 1.5 мкА) даёт огромный выигрыш.
Итог хардкор-модов:
- Без модов: Deep Sleep = 15–50 мкА
- С модами: Deep Sleep = 5–8 мкА
На годовой перспективе это даёт **+15–20% к сроку службы** — особенно если используешь одну 18650.
Да, это паяльник, микроскоп и риск «убить» плату. Но если ты хочешь, чтобы устройство проработало **дольше года без солнца** — это оправдано.
Выводы
- ZE08-CH2O, MH-Z19B, CJMCU-6814 — не для батарейных проектов. Они созданы для сетевого питания.
- Повербанк — враг автономности. Его собственное потребление убивает батарейку даже в idle.
- Deep Sleep + внешнее управление питанием (TPL5110) — must have.
- e-Ink — идеален для дисплея. Потребляет ток только при обновлении.
- Выбирай цифровые датчики с поддержкой сна: BME280, SGP41, SCD41 (если CO₂ критичен).
- Хардкор-моды работают: выпаивание LED, отключение USB-UART, замена LDO — реально снижают потребление в sleep до 5 мкА.
Если хочешь «всё и сразу» — готовься заряжать устройство каждые 6–12 часов.
Если хочешь «поставил и забыл» — жертвуй функционалом ради энергоэффективности и не бойся паяльника.
В моём случае я оставляю: BME280 + SGP41 + e-Ink + ESP32.
Отказываюсь от: MH-Z19B, ZE08, CJMCU-6814, GP2Y1010AU0F.
И выпаиваю все LED + отключаю CP2102.
Результат: метеостанция, которая работает больше года от двух 18650 — без солнца, без розетки, без подзарядки.
Комментарии
Пока нет комментариев. Будьте первым!