В данном руководстве пошагово рассмотрим, как подключить солнечную батарею к плате ESP32. Цепь питания мы построим таким образом, чтобы она подходила для любого микроконтроллера с питанием 3,3V.
Требуемые детали
Для проекта нам понадобятся:
- ESP32 или ESP8266
- 2 небольшие солнечные батареи (5/6V2W)
- Li-ion аккумулятор 18650
- Зарядка для аккумулятора (не обязательно)
- Зарядное устройство TP4056
- Регулятор напряжения
- (Не обязательно) делитель напряжения:
- Резистор на 27 кОм;
- Резистор на 100 кОм.
Электрическая цепь
На следующей картинке изображена схема питания платы ESP32
Солнечные панели питают аккумулятор через зарядное устройство TP4056 (это устройство еще и защищает от перезарядки). При полной зарядке аккумулятор выдает 4,2V. Поэтому нам необходимо использовать регулятор напряжения для снижения его до 3,3V.
Солнечные батареи
Выходное напряжение наших батарей – от 5 до 6V. Для более быстрой зарядки следует использовать несколько параллельно соединенных батарей. В данном примере мы используем две солнечные панели.
Соедините катоды плат между собой, и сделайте тоже самое для анодов.
При параллельном соединении у нас остается то же напряжение, а сила тока удваивается (если панели одинаковые). То есть, напряжение должно остаться в диапазоне от 5 до 6V.
Зарядное устройство TP4056
Данное устройство используется для защиты цепи и предотвращения чрезмерного заряжания аккумуляторов.
На модуле загорается красный светодиод, когда батарея заряжается и синий, если она заряжена.
Соединяем солнечные батареи с зарядным устройством по следующей диаграмме (катод батарей к входу IN+, анод – к IN-):
Подключаем аккумулятор к зарядному устройству (катод – к B+, анод – к B-)
Контакты OUT+ и OUT- – выходы нашего устройства. Убеждаемся, что с этих контактов получаем 4,2V.
Однако, для питания платы ESP32 нам нужно 3,3V, поэтому переходим к цепи стабилизатора напряжения.
Стабилизатор напряжения
Для эффективного понижения напряжения аккумуляторов нужно использовать LDO-стабилизаторы, так как линейные стабилизаторы перестают понижать напряжение при разрядке батареи (т.к. она больше не выдает 4,2V).
Мы выбрали стабилизатор MCP1700-3302E, т.к. его характеристики оптимальны. В качестве альтернативы можно использовать HT7333-A.
Вот характеристики данного стабилизатора:
И его пины:
Для корректной работы требуется керамический конденсатор и электролитический конденсатор, подключенный в параллели к пинам GND и Vout. Мы используем электролитический конденсатор на 100 мкФ и керамический конденсатор на 100 нФ.
Предупреждение: Нужно соблюдать полярность конденсаторов! Провод с бело-серой полосой следует подключить к GND.
На пине Vout должно выдаваться напряжение 3,3V, с него и запитаем плату ESP32.
После того, как мы убедились, что напряжение соответствует требуемым 3,3V, подключаем плату ESP32. Соедините пин Vout и пин 3,3V платы и контакты GND платы и стабилизатора друг с другом.
Если у вас плата ESP8266, то все ваши действия идентичны случаю с платой ESP32.
Цепь контроля напряжения батареи
При питании платы ESP32 аккумуляторами или солнечными батареями, как в этом случае, полезно следить на уровнем напряжения. Один из способов осуществить это – снимать напряжения батареи на аналоговом выходе платы. Т.к. GPIO платы работают при напряжении 3,3V, нам нужно использовать делитель напряжения.
Формула для делителя напряжения:
Vout = (Vin*R2)/(R1+R2)
При использовании наших резисторов на 27 кОм и 100 кОм.
Vout = (4.2*100k)/(27k + 100k) = 3.3V
Таким образом, при полной зарядке батареи, мы снимаем показания 3,3V.
Добавляем два резистора в цепь, как показано на схеме:
В данном случае. мы снимаем напряжение с GPIO33, но можно использовать любой другой подходящий пин.
Наконец, для получения уровня заряда батареи, используйте следующую строку в скетче (в среде Arduino):
1 |
float batteryLevel = map(analogRead(33), 0.0f, 4095.0f, 0, 100); |
Если у вас плата ESP8266, то на ней можно использовать только пин А0.
И код для уровня заряда батареи:
1 |
float batteryLevel = map(analogRead(0), 0.0f, 4095.0f, 0, 100); |
Заключение
В данной статье мы рассмотрели, как запитывать платы ESP32 и ESP8266 от солнечной батареи. Цепь питания, которую мы собрали, подойдет также и для других микроконтроллеров с питанием 3,3V.
Вопросы по прошивке и работе с кодом лучше писать напрямую автору в комментариях к статье (на англ. языке)
2 комментария. Оставить новый
1) “Для эффективного понижения напряжения аккумуляторов нужно использовать LDO-стабилизаторы, так как линейные стабилизаторы перестают понижать напряжение при разрядке батареи (т.к. она больше не выдает 4,2V).”
Предлагаемая MCP1700 является так же линейным стабилизатором. LDO – это подвид.
2) Максимальный ток по выходу микросхемы 250 мА, в то время как даташит на ESP32, к примеру, требует 500 мА минимум. Поэтому я бы использовал импульсный преобразователь.
Скажу больше, если использовать еспшки как на картинках, то там уже встроен стабилизатор со всей обвязкой