Питание ESP32/ESP8266 от солнечных панелей (с мониторингом уровня заряда батареи)

В этом руководстве показано пошагово, как запитать плату ESP32 от солнечных панелей, литиевой батареи 18650 и зарядного модуля TP4056. Схема, которую мы соберём, также совместима с ESP8266 или любым микроконтроллером, работающим от 3.3 В.

Питание ESP32 ESP8266 от солнечных панелей с мониторингом уровня заряда батареи

Когда вы питаете ESP32 от солнечных панелей, может быть полезно использовать возможности глубокого сна для экономии энергии. Узнайте всё, что нужно знать о глубоком сне ESP32, из нашего руководства: ESP32 Deep Sleep с Arduino IDE и источниками пробуждения.

Необходимые компоненты

Для питания ESP32 или ESP8266 от солнечных панелей нам понадобятся следующие компоненты:

Вы можете использовать ссылки выше или перейти напрямую на MakerAdvisor.com/tools, чтобы найти все компоненты для ваших проектов по лучшей цене!

ESP32 на солнечной энергии — обзор схемы

Следующая диаграмма показывает, как работает схема питания ESP32 от солнечных панелей.

Обзор схемы питания ESP32 от солнечных панелей
  1. Солнечные панели выдают от 5 В до 6 В при прямом солнечном свете.

  2. Солнечные панели заряжают литиевую батарею через зарядный модуль TP4056. Этот модуль отвечает за зарядку батареи и предотвращение перезарядки.

  3. Литиевая батарея выдаёт 4.2 В при полной зарядке.

  4. Необходимо использовать схему стабилизатора напряжения с низким падением (MCP1700-3302E), чтобы получить 3.3 В из выходного напряжения батареи.

  5. Выход стабилизатора напряжения будет питать ESP32 через вывод 3.3 В.

Солнечные панели

Солнечные панели, которые мы используем, имеют выходное напряжение до 5–6 В. Если вы хотите, чтобы батарея заряжалась быстрее, можно использовать несколько солнечных панелей, соединённых параллельно. В этом примере мы используем две мини солнечные панели, как показано на следующем изображении.

Солнечные панели для питания ESP32 ESP8266

Чтобы соединить солнечные панели параллельно, припаяйте вывод (+) одной солнечной панели к выводу (+) другой. То же самое сделайте для выводов (-). Может помочь следующее изображение.

Параллельное соединение солнечных панелей

При параллельном соединении солнечных панелей вы получите такое же выходное напряжение и удвоенный ток (для идентичных солнечных панелей). Как видно на следующем изображении, солнечные панели выдают приблизительно 6 В.

Измерение выходного напряжения солнечных панелей мультиметром

На фотографии выше мы используем мультиметр ANENG AN8002, читайте наш обзор здесь: ANENG AN8002 Multimeter Review — лучший бюджетный мультиметр?

Зарядный модуль TP4056

Зарядный модуль TP4056 для литиевых батарей оснащён защитой и предотвращает перенапряжение батареи и подключение с обратной полярностью.

Зарядный модуль TP4056 для литиевых батарей

Модуль TP4056 загорается красным светодиодом при зарядке батареи и голубым светодиодом, когда батарея полностью заряжена.

Подключите солнечные панели к зарядному модулю TP4056, как показано на схеме ниже. Подключите положительные клеммы к контакту IN+, а отрицательные клеммы к контакту IN-.

Зарядный модуль TP4056 подключён к солнечным панелям

Затем подключите положительный вывод держателя батареи к контакту B+, а отрицательный вывод — к контакту B-.

Зарядный модуль TP4056 подключён к солнечным панелям и литиевой батарее

OUT+ и OUT- — это выходы батареи. Эти литиевые батареи выдают до 4.2 В при полной зарядке (хотя на этикетке указано 3.7 В).

Выходное напряжение литиевой батареи на мультиметре

Для питания ESP32 через вывод 3.3 В нам нужна схема стабилизатора напряжения, чтобы получить 3.3 В из выхода батареи.

Стабилизатор напряжения

Использование типичного линейного стабилизатора напряжения для снижения напряжения с 4.2 В до 3.3 В — не лучшая идея, потому что по мере разряда батареи, например, до 3.7 В, ваш стабилизатор перестанет работать из-за высокого порога отсечки.

Для эффективного снижения напряжения при работе с батареями нужно использовать стабилизатор с низким падением напряжения (LDO — Low-Dropout regulator), который может регулировать выходное напряжение.

LDO-стабилизатор напряжения MCP1700-3302E

После исследования LDO-стабилизаторов, MCP1700-3302E является лучшим для наших целей. Также есть хорошая альтернатива — HT7333-A.

LDO-стабилизатор напряжения HT7333-A

Любой LDO с аналогичными характеристиками также подойдёт. Ваш LDO должен иметь схожие параметры по выходному напряжению, току покоя, выходному току и низкому падению напряжения. Посмотрите на даташит ниже.

Даташит LDO-стабилизатора MCP1700

Вот распиновка MCP1700-3302E: выводы GND, VIN и VOUT.

Распиновка MCP1700-3302E

К LDO-стабилизаторам следует подключить керамический конденсатор и электролитический конденсатор параллельно между GND и Vout для сглаживания пиков напряжения. Здесь мы используем электролитический конденсатор 100 мкФ и керамический конденсатор 100 нФ.

Следуйте следующей схеме, чтобы добавить стабилизатор напряжения к предыдущей сборке.

Схема солнечных панелей ESP32 ESP8266 со стабилизатором напряжения

Внимание: электролитические конденсаторы имеют полярность! Вывод с белой/серой полосой должен быть подключён к GND.

Вывод Vout стабилизатора напряжения должен выдавать 3.3 В. Именно этот вывод будет питать ESP32 или ESP8266.

Измерение выходного напряжения стабилизатора мультиметром

Наконец, убедившись, что вы получаете правильное напряжение на выводе Vout стабилизатора, можно запитать ESP32. Подключите вывод Vout к выводу 3.3 В ESP32 и GND к GND.

Схема питания ESP32 от солнечных панелей

Если вы используете ESP8266, можно применить ту же схему. Подключите выход MCP1700-3302E к выводу 3.3 В ESP8266, а GND — к GND.

Схема питания ESP8266 от солнечных панелей

Схема мониторинга уровня заряда батареи

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

Однако батарея, которую мы используем, выдаёт максимум 4.2 В при полной зарядке, а GPIO ESP32 работают при 3.3 В. Поэтому нам нужно добавить делитель напряжения, чтобы можно было считывать напряжение батареи.

Схема делителя напряжения для мониторинга уровня заряда батареи

Формула делителя напряжения:

Vout = (Vin*R2)/(R1+R2)

Итак, если мы используем R1=27 кОм и R2=100 кОм, получаем:

Vout = (4.2*100k)/(27k + 100k) = 3.3V

Таким образом, при полностью заряженной батарее Vout выдаёт 3.3 В, которые можно считать с GPIO ESP32.

Добавьте два резистора в вашу схему, как показано на следующей принципиальной схеме.

Финальная схема питания ESP32 от солнечных панелей с мониторингом уровня заряда

В данном случае мы мониторим уровень заряда батареи через GPIO33, но вы можете использовать любой другой подходящий GPIO. Прочитайте наше руководство по GPIO ESP32, чтобы узнать, какие GPIO лучше использовать.

Наконец, чтобы получить уровень заряда батареи, можно просто считать напряжение на GPIO33 с помощью функции analogRead() в вашем коде (если вы используете Arduino IDE).

analogRead(33);

Вы также можете использовать функцию map(), чтобы преобразовать аналоговые значения в проценты:

float batteryLevel = map(analogRead(33), 0.0f, 4095.0f, 0, 100);

Если вы используете ESP8266, он поддерживает аналоговое чтение только на выводе A0. Поэтому нужно подключить схему следующим образом:

Финальная схема питания ESP8266 от солнечных панелей с мониторингом уровня заряда

Для ESP8266 для считывания аналогового значения используйте:

analogRead(0);

Заключение

В этой статье мы показали, как питать ESP32 или ESP8266 от солнечных панелей, литиевой батареи и зарядного модуля TP4056. Показанная схема также может быть использована для питания других микроконтроллеров, работающих от 3.3 В.

При питании ESP32 от солнечных панелей или батарей важно экономить энергию. Для этого можно использовать возможности глубокого сна ESP32.

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

Если вы хотите узнать больше о ESP32, обязательно ознакомьтесь с нашим специализированным курсом: Изучите ESP32 с Arduino IDE.

Спасибо за чтение.

Источник: :doc:`Power ESP32/ESP8266 with Solar Panels (includes battery level monitoring) <../power-esp32-esp8266-solar-panels-battery-level-monitoring/index>` — Random Nerd Tutorials