↩️ Назад

Категории

Автономная метеостанция на ESP32: как не угробить батарейку за день

02.10.2025 | Статья из категории: IOT умный дом

Автономная метеостанция на ESP32
Ну собрал тестовый стенд. пока сутки работает но это обычный экране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 мАПик при передаче
BME2800.1–1 мАВ idle почти ничего
GP2Y1010AU0F20 мАLED горит постоянно
MH-Z19B150 мАПостоянно, даже в idle
CJMCU-681430–50 мААналоговый, требует постоянного питания
ZE08-CH2O100–150 мАНагреватель + вентилятор
LCD 4x205–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: Максимальная автономность. Только самое нужное.

Чтобы устройство работало месяцами, нужно:

  1. Отказаться от прожорливых датчиков
  2. Использовать Deep Sleep
  3. Отключать питание датчиков между измерениями
  4. Заменить повербанк на прямое питание
  5. Использовать 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.

Да, это паяльник, микроскоп и риск «убить» плату. Но если ты хочешь, чтобы устройство проработало **дольше года без солнца** — это оправдано.

Выводы

  1. ZE08-CH2O, MH-Z19B, CJMCU-6814 — не для батарейных проектов. Они созданы для сетевого питания.
  2. Повербанк — враг автономности. Его собственное потребление убивает батарейку даже в idle.
  3. Deep Sleep + внешнее управление питанием (TPL5110) — must have.
  4. e-Ink — идеален для дисплея. Потребляет ток только при обновлении.
  5. Выбирай цифровые датчики с поддержкой сна: BME280, SGP41, SCD41 (если CO₂ критичен).
  6. Хардкор-моды работают: выпаивание LED, отключение USB-UART, замена LDO — реально снижают потребление в sleep до 5 мкА.

Если хочешь «всё и сразу» — готовься заряжать устройство каждые 6–12 часов. Если хочешь «поставил и забыл» — жертвуй функционалом ради энергоэффективности и не бойся паяльника.

В моём случае я оставляю: BME280 + SGP41 + e-Ink + ESP32. Отказываюсь от: MH-Z19B, ZE08, CJMCU-6814, GP2Y1010AU0F. И выпаиваю все LED + отключаю CP2102.

Результат: метеостанция, которая работает больше года от двух 18650 — без солнца, без розетки, без подзарядки.




Категории:

Категории

Комментарии

Пока нет комментариев. Будьте первым!

Оставить комментарий

← Назад к списку статей

Посетителей сегодня: 0
о блоге | карта блога

© Digital Specialist | Не являемся сотрудниками Google, Яндекса и NASA