Найти в Дзене
Два направления.

⚡ Экстремальный эксперимент с ESP-01: месяц работы от одной батареи

Оглавление

Пролог: На грани возможного

Помните те времена, когда месяц автономной работы ESP-01 казался несбыточной мечтой? Что ж, приготовьтесь удивляться. Сегодня я расскажу об эксперименте, который перевернул моё представление о возможностях этого популярного модуля. Эксперименте, который многие назовут безумным.

Предыстория

В предыдущей статье мы прошли путь от базовой конфигурации ESP-01 с датчиком DS18B20 до оптимизированной версии с режимом глубокого сна:

  • Стандартная схема работала всего 8 часов
  • Добавление режима сна увеличило время до 48 часов

Но этого было недостаточно. Я хотел большего.

Безумная идея

На одном из технических форумов я наткнулся на сообщение, которое показалось мне невероятным: человек утверждал, что его ESP8266, подключенный напрямую к литий-ионному аккумулятору, работает уже два года. Без стабилизатора напряжения.

Это противоречило всему, что я знал о ESP8266:

  • Рабочее напряжение по документации: 3.0-3.6В
  • Напряжение литий-ионного аккумулятора: 3-4.2В

Казалось бы, очевидное несоответствие. Но что, если...?

Эксперимент

Я решил рискнуть. Подключил ESP-01 напрямую к аккумулятору, заряженному до 3.98В. Затаил дыхание и включил питание.

Результаты первых тестов

  1. Устройство не только включилось, но и успешно подключилось к WiFi
  2. Данные температуры появились в Home Assistant
  3. Модуль корректно ушёл в сон
  4. Через 8 минут снова проснулся и отправил данные

Температурный режим

Особое внимание я уделил мониторингу температуры самого модуля:

  1. При прошивке: максимум 43.2°C
  2. Передача данных: максимум 32°C
  3. Режим сна: быстрое охлаждение до комнатной температуры (22.9°C) за минуту

Реализация: От теории к практике

Шаг 1. Настроим беспроводной доступ для программирования ESP8266

Шаг 2. Получение MAC-адреса датчика

Прежде чем приступить к основной прошивке, необходимо получить уникальный MAC-адрес вашего DS18B20. Для этого используйте следующий код:

one_wire:
- platform: gpio
pin: GPIO00

После прошивки этого кода в логах ESPHome вы увидите MAC-адрес вашего датчика. Запишите его - он понадобится для основной прошивки.

Шаг 3: Подготовка ESP-01 к глубокому сну

Шаг 4: Конфигурация прошивки ESPHome

Давайте разберем прошивку, которая используется в эксперименте:

1. Управление питанием датчика

output:
- platform: gpio
pin: GPIO2
id: ds18b20_power
inverted: false
switch:
- platform: output
name: "DS18B20 Power"
id: ds18b20_power_switch
output: ds18b20_power
restore_mode: ALWAYS_ON

Этот блок конфигурации создает управляемый выход на GPIO2 для питания датчика DS18B20. Режим ALWAYS_ON гарантирует, что датчик получит питание после каждого пробуждения устройства.

2. Подключение датчика температуры

one_wire:
- platform: gpio
pin: GPIO00
sensor:
- platform: dallas_temp
address: 0x6f00043c949cff28
name: temperature
id: temperature
accuracy_decimals: 2
update_interval: never

Датчик DS18B20 подключен к GPIO00 по протоколу 1-Wire. Параметр update_interval: never означает, что обновление будет происходить только по нашему запросу, что помогает экономить энергию.

3. Мониторинг батареи

sensor:
# Сенсор напряжения
- platform: adc
pin: VCC
name: battery
id: battery
accuracy_decimals: 2
update_interval: never
filters:
- multiply: 0.96
# Сенсор уровня заряда в процентах
- platform: adc
pin: VCC
name: "Battery Level"
id: battery_level
accuracy_decimals: 2
update_interval: never
unit_of_measurement: "%"
filters:
- multiply: 0.96
- lambda: "return (x - 3.0) / (4.2 - 3.0) * 100.0;"

Здесь настроены два сенсора для контроля батареи:

  • Первый измеряет фактическое напряжение
  • Второй конвертирует напряжение в проценты заряда Коэффициент 0.96 используется для калибровки показаний АЦП.

4. Интервалы обновления

interval:
- interval: 5s
then:
- component.update: battery
- component.update: battery_level
- component.update: temperature

В течение активной фазы (10 секунд) устройство каждые 5 секунд:

  • Измеряет напряжение батареи
  • Вычисляет процент заряда
  • Считывает температуру

5. Настройки глубокого сна

deep_sleep:
run_duration: 10s # Время активности устройства
sleep_duration: 8min # Время сна между измерениями

Ключевые параметры энергосбережения:

  • 10 секунд активной работы - достаточно для надежного подключения к WiFi и отправки данных
  • 8 минут сна - оптимальный интервал для мониторинга температуры

Принцип работы

1. Пробуждение: ESP-01 включается и подает питание на DS18B20 через GPIO2

2. Измерения: В течение 10 секунд устройство:

- Подключается к WiFi

- Измеряет температуру

- Проверяет напряжение батареи

- Отправляет данные в Home Assistant

3. Сон: Уходит в глубокий сон на 8 минут

4. И снова: Цикл повторяется

Результаты

Предварительные расчеты и график разряда показывают потрясающие результаты - ожидаемое время работы составляет 3-4 недели! Это в 10-14 раз дольше, чем наш предыдущий рекорд.

1. Восемь часов работы. 2. По предварительным расчетам, 48 часов работы. 3. По предварительным расчетам, примерно три-четыре недели работы.
1. Восемь часов работы. 2. По предварительным расчетам, 48 часов работы. 3. По предварительным расчетам, примерно три-четыре недели работы.

Предупреждение

Должен предупредить: этот метод противоречит официальной документации. Теоретически, он может привести к повреждению устройства. Используйте его на свой страх и риск.

Теоретическое объяснение

Почему это работает? Вот мои предположения:

  1. Кратковременность активной фазы
  2. Эффективное охлаждение в режиме сна
  3. Встроенная защита ESP8266
  4. Вероятный запас прочности в спецификациях

Что дальше?

А дальше начинается самое интересное. Когда аккумулятор разрядится до 3 вольт, я планирую пойти ва-банк – зарядить его до максимальных 4.2 вольт! Да, это более чем на полвольта выше максимального допустимого напряжения для ESP8266. Выдержит ли микроконтроллер такое испытание? Узнаем совсем скоро – результаты этого экстремального теста я опубликую в комментариях к этой статье.

Но не волнуйтесь, у меня есть план Б. Точнее, даже два плана:

  1. Первый вариант – использование сверхэкономичного стабилизатора с потреблением всего 6 мкА
  2. Второй вариант — это стабилизатор, который потребляет 60 мкА. Однако он обладает другим преимуществом — доступностью.

Однако стоит отметить одну важную деталь: при переходе на любой из этих вариантов мы потеряем возможность мониторинга напряжения питания в Home Assistant. Это связано с тем, что в текущей конфигурации мы считываем напряжение непосредственно с пина VCC ESP8266. При использовании стабилизатора на выходе всегда будет стабильные 3.3В, что сделает невозможным отслеживание реального уровня заряда батареи. Это небольшая жертва ради безопасности устройства, но всё же заметное ограничение по сравнению с текущим экспериментом.

Оба этих решения безопасны, но давайте сначала дождёмся результатов нашего смелого эксперимента. Кто знает, может быть ESP8266 удивит нас ещё раз?

Эпилог

Иногда безумные идеи приводят к удивительным результатам. Месяц автономной работы ESP-01 - это уже не мечта, а реальность. Пусть и достигнутая несколько экстремальным способом.

Продолжение следует...