ESP32 на солнечной батарее: автономный узел для дачи
ESP32 просыпается раз в несколько минут, отправляет показания и снова засыпает. Весь вопрос в бюджете энергии: сколько тратит узел за сутки и какая панель с аккумулятором это покроют.
Содержание
Автономный узел на ESP32 с солнечной панелью строят так: узел почти всё время спит, раз в несколько минут просыпается, отправляет показания и снова засыпает. По даташиту Espressif в глубоком сне чип берёт 5–10 мкА, а в передаче Wi-Fi — до 240 мА, поэтому суточный расход узла получается порядка десятков мА·ч, и достаточно небольшой панели.
Аккумулятор Li-ion заряжают только через контроллер заряда, например TP4056: по даташиту он заряжает до 4,2 В с точностью 1,5 %.
Ниже — потребление по даташиту, расчёт бюджета энергии и панели, схема питания, сборка, наладка и ошибки, из-за которых узел умирает за неделю.
Откуда берётся энергия и куда она уходит

Данные из даташита Espressif на ESP32, питание 3,3 В:
| Режим | Потребление |
|---|---|
| Передача Wi-Fi 802.11b, +19,5 дБм | 240 мА |
| Приём Wi-Fi | 95–100 мА |
| Глубокий сон, работает таймер RTC и память RTC | 10 мкА |
| Глубокий сон, работает только таймер RTC | 5 мкА |
| Питание модуля VDD3P3 | 2,3–3,6 В |
Цифры относятся к самому чипу. Готовая плата DevKit добавляет мост USB–UART, светодиод и стабилизатор, и в сне такая плата берёт заметно больше, чем чип: порой единицы миллиампер, то есть в сотни раз больше.
Для автономного узла это решающая деталь. Реальное потребление платы измеряйте мультиметром или мА-метром в разрыве питания, а не берите из даташита чипа.
Бюджет энергии

Считаем в миллиампер-часах за сутки. Пусть узел просыпается раз в 10 минут и бодрствует 5 секунд.
- Пробуждения.24 × 6 = 144 в сутки; 144 × 5 с = 720 с, то есть 0,2 часа.
- Активная фаза.При среднем токе 100 мА (с учётом пиков передачи) получается 0,2 ч × 100 мА = 20 мА·ч.
- Сон.24 − 0,2 = 23,8 часа; при токе платы 0,1 мА это 23,8 × 0,1 ≈ 2,4 мА·ч.
- Итого.20 + 2,4 ≈ 22 мА·ч в сутки.
Это условный пример: подставьте свои измеренные токи.
Запас по аккумулятору и панели
Аккумулятор 18650 ёмкостью 2000 мА·ч при расходе 22 мА·ч в сутки даёт 2000 / 22 ≈ 90 суток в идеале. С запасом на потери и неполный разряд, скажем, 70 % ёмкости, получается около 64 суток без солнца.
Панель нужна, чтобы возмещать расход и саморазряд. Пример для сравнения: 22 мА·ч при 3,7 В — это 0,022 А·ч × 3,7 В ≈ 0,08 Вт·ч в сутки.
Если принять панель 1 Вт, 1 час эквивалентного полного солнца за серый день и общий КПД цепочки 50 %, то получится 1 Вт × 1 ч × 0,5 = 0,5 Вт·ч в сутки. Это в несколько раз больше расхода. Все три допущения условные: зимой солнечных часов меньше, закладывайте запас.
Расчёт панели и ёмкости делает калькулятор солнечной панели и аккумулятора, а переводы единиц — калькулятор мА·ч в А·ч. Про бытовую панель для дачи читайте в статье «Солнечная панель для дачи».
Контроллер заряда и аккумулятор

Модуль TP4056 — популярный вариант для одного элемента Li-ion. Данные из его даташита.
- Напряжение заряда.Фиксированное 4,2 В с точностью 1,5 %.
- Ток заряда.Программируется резистором, до 1000 мА; по даташиту I(BAT) = V(PROG) / R(PROG) × 1200.
- Окончание заряда.Заряд завершается, когда ток падает до 1/10 запрограммированного.
- Температура.Если вывод TEMP подключён к NTC-термистору в аккумуляторе, заряд приостанавливается при слишком высокой или низкой температуре. На распространённых модулях TP4056 этот вывод соединён с землёй (контроль выключен): чтобы подключить NTC, перемычку нужно разорвать. Проверьте по схеме своего модуля.
- Входное напряжение.Абсолютный максимум на входе VCC — 8 В: панель 5–6 В укладывается, но проверьте напряжение холостого хода.
Для аккумулятора возьмите паспорт на ячейку. Например, в паспорте Samsung INR18650-25R указан заряд CC-CV до 4,2 ± 0,05 В, конечное напряжение разряда 2,5 В и стандартный ток заряда 1,25 А (0,5C).
Модуль TP4056 без платы защиты не защищает аккумулятор от глубокого разряда: используйте ячейку с защитой или отдельную плату защиты.
Схема и сборка
Порядок сборки такой, чтобы ошибки находились на столе, а не на крыше.
- Измерьте ток в сне.Соберите узел на столе. Если он больше нескольких сотен микроампер, ищите виновника: светодиод питания, мост USB, подтяжки.
- Проверьте заряд.Подключите панель к модулю заряда, а аккумулятор к его выходу. При свете ток заряда идёт, при затемнении утечки в панель нет.
- Подключите питание ESP32.Через стабилизатор на 3,3 В с малым током покоя.
- Прошейте скетч.Измерение, отправка, затем
esp_deep_sleep_start(). - Уберите в корпус.Панель выведите наружу под углом к югу.
Скетч в общих чертах: подключиться к Wi-Fi, один раз отправить показания, вызвать esp_sleep_enable_timer_wakeup() на нужное число микросекунд и уйти в глубокий сон. Не оставляйте в цикле delay(): после пробуждения программа стартует заново с setup().
Наладка
Неделя наблюдений покажет больше, чем расчёт.
- Напряжение аккумулятора.Мерьте утром и вечером несколько дней. Если оно ползёт вниз, панели не хватает или узел спит хуже, чем рассчитано.
- Подключение к сети.Если ESP32 не находит сеть после сна, увеличьте время ожидания подключения, но не делайте его бесконечным: при слабом сигнале узел будет бодрствовать и разряжать аккумулятор.
- Зима.Li-ion при отрицательных температурах заряжать нельзя. Нужен датчик температуры у аккумулятора (например NTC для TP4056) или осознанное решение, что узел сезонный.
- Заряд в мороз.Диапазон температуры заряда смотрите в паспорте ячейки; для INR18650-25R по сведениям lygte-info.dk заряд разрешён от 0 до 50 °C.
Если за неделю напряжение не просело, расчёт сошёлся.
Типовые ошибки
- Плата DevKit как есть.В сне она тянет миллиамперы.
- Панель напрямую на аккумулятор без контроллера.Перезаряд и пожароопасность.
- Пик тока передачи не учтён.Стабилизатор и аккумулятор должны отдавать несколько сотен миллиампер.
- Нет защиты от влаги.Плата без лака в сыром корпусе служит недолго.
- Паспортная мощность панели вместо реальной.Под деревом или под крышей выходит заметно меньше.
- Заряд на морозе.Аккумулятор Li-ion при отрицательных температурах портится.
Что в итоге
Подходит: датчик в теплице, погреб, участок без розетки, где данные нужны раз в несколько минут. Не подходит: узел с постоянным Wi-Fi, камерой или реле, которое надо держать включённым.
Для таких задач нужны панель побольше и аккумулятор в разы ёмче или питание от сети.
Частые вопросы
Хватит ли панели в 1 Вт для ESP32?
Для узла с расходом около 22 мА·ч в сутки хватит с запасом: по расчёту выше при условных допущениях получается около 0,5 Вт·ч в сутки против 0,08 Вт·ч расхода.
Зимой солнечных часов меньше, особенно в средней полосе, поэтому закладывайте запас.
Можно ли заряжать Li-ion зимой на улице?
Нельзя при отрицательных температурах. Для INR18650-25R заряд разрешён от 0 до 50 °C (по сведениям lygte-info.dk); у вашей ячейки смотрите паспорт.
Поставьте термистор NTC на аккумулятор и подключите к выводу TEMP модуля TP4056 либо сделайте узел сезонным. На многих модулях TEMP соединён с землёй, и перемычку нужно разорвать: проверьте по схеме своего модуля.
Чем питать ESP32 от Li-ion: напрямую или через стабилизатор?
Через стабилизатор на 3,3 В с малым током покоя. Питание ESP32 по даташиту — 2,3–3,6 В, а Li-ion заряжается до 4,2 В.
Не подключайте напрямую 4,2 В к выводу питания чипа.
Какой аккумулятор взять в России?
Подойдёт Li-ion 18650 с защитой (PCM) от известного производителя: они продаются в магазинах радиодеталей и электроники.
Смотрите паспорт ячейки: напряжение заряда 4,2 В, конечное напряжение разряда и стандартный ток заряда.
Как сделать, чтобы узел не разрядил аккумулятор в пасмурные дни?
Увеличьте интервал измерений или ёмкость аккумулятора, уберите лишние потребители и измеряйте напряжение на аккумуляторе.
Если оно падает дни подряд, узел потребляет больше расчёта: ищите светодиод питания и мост USB на плате.
Калькуляторы для автономного питания
Что понадобится
| Обозначение | Номинал | Тип | Кол-во |
|---|---|---|---|
| — | Плата ESP32 с минимальным потреблением в сне | лучше голый модуль или плата без USB-моста и со слабым стабилизатором | 1 |
| — | Аккумулятор Li-ion 18650 | с защитой (PCM) или отдельная плата защиты | 1 |
| — | Модуль заряда Li-ion с входом для солнечной панели | с ограничением тока и отсечкой по напряжению | 1 |
| — | Солнечная панель 5–6 В | мощность по расчёту ниже | 1 |
| — | Датчик температуры и влажности | например BME280, питание 3,3 В | 1 |
| — | Корпус с защитой от влаги | панель снаружи, электроника внутри | 1 |





























