Питание от аккумулятора или солнечной панели

Decent

✩✩✩✩✩✩✩
30 Сен 2023
17
2
Здравствуйте.
Спойлер:
Делаю текстовый мессенджер на основе LoRa-передатчиков, где все устройства объединяются в mesh-сеть, благодаря чему при наличии большого количества устройств связь должна работать по всему городу. Столкнулся с проблемой - мало людей хотят в этом участвовать и размещать устройство у себя, соответственно, покрыть город репитерами пока затруднительно. Решил питаться от Солнца: днём солнечная батарея заряжает аккумуляторы, ночью устройство продолжает работать. И в тёплое время года всё работает как часы, но я с ужасом жду наступления зимы.


При питании платы ESP8266 от Солнца пошёл следующим путём: купил на Aliexpress li-ion аккумуляторы и солнечные панели на 5 вольт, соединил всё через MPPT контроллер заряда, а на входе питания ESP поставил MCP1700-3302E (по сути LDO, понижающий с 3 - 5 v до 3 - 3.3v).
Схема работает, но если Солнце уйдёт, либо температура снизится до тех значений, когда зарядить литий уже не получится, имеем неприятную ситуацию: по мере появления Солнца напряжение будет очень плавно возрастать и ESP8266 может не стартовать (либо будет старт с зависанием). Как выйти из этой ситуации?

Если сильно упростить вопрос, то давайте представим солнечную панель, подключённую к ESP: ночью плата не работает, а как только солнышко появляется, на контактах начинает плавно подниматься напряжение, в результате чего плата стартует нестабильно (возможно, просто не хватает тока).

В ESP32 есть встроенный и настраиваемый brownout-детектор, который постоянно перезагружает МК при низком напряжении. В ESP8266, как я понял, такого нет.

Дайте совет, как поступить. Нужно включать связку (Wemos D1 mini + E220-900T22D) только при достаточном напряжении. Благодарю.
P.S. С паяльником на Вы, с рисованием и травлением плат вообще не дружу.
 

poty

★★★★★★✩
19 Фев 2020
3,238
943
Если ориентироваться на упрощённую задачу, то, в целом, это решается одним транзистором, включающим нагрузку при достаточном напряжении на базе. Правда, у Вас это должно работать в широком температурном диапазоне, что может усложнить результирующую схему.
Если добавляем зарядку/контроль зарядки-разрядки аккумуляторных батарей, то это - платы BMC.
 
  • Лойс +1
Реакции: Decent

Decent

✩✩✩✩✩✩✩
30 Сен 2023
17
2
Если ориентироваться на упрощённую задачу, то, в целом, это решается одним транзистором, включающим нагрузку при достаточном напряжении на базе.
А нет ли у вас схемы? Я так понимаю, там транзистор и два резистора, которые нужно подбирать, верно? И каково предполагается потребление таким модулем? Может, знаете готовый модуль?

Если добавляем зарядку/контроль зарядки-разрядки аккумуляторных батарей, то это - платы BMC.
Я пробовал такую плату с алиэкспресс, проблема заключается в том, что к её сначала надо подключить к аккумулятору, а потом этой связкой запитывать потребителя (нажимать на кнопку). В случае постоянно подключённого потребителя, аккумулятор может выдавать 3.7v, а на выходе BMS так и останется низкое напряжение.
 

poty

★★★★★★✩
19 Фев 2020
3,238
943
@Decent, вот с модулями у меня беда, для таких простеньких штук делаю на платах с отверстиями или, если много нужно, заказываю свои печатные платы под нужный размер.
Примерная схема, если из неё изъять ненужный оптрон с его обвязкой - здесь (самому лень рисовать). Потребление такой схемы, если правильно подобрать резисторы делителя на затвор, будет мизерным. Если уж прямо совсем не разберётесь - напишите в личные сообщения.
Что касается BMC: для правильной работы нужно разделять цепи питания и заряда аккумуляторов, где-то здесь недавно находили, вроде, модуль, который делал и то, и другое, но при питании от солнечной батареи, где доступный ток может быть ограничен, потребуется, скорее всего, несколько более продвинутый контроллер.
 

Decent

✩✩✩✩✩✩✩
30 Сен 2023
17
2
@poty,за заряд у меня отвечает модуль на СТ3163, также есть модуль на CN3065, но его не использовал. на всякий случай написал.
 

poty

★★★★★★✩
19 Фев 2020
3,238
943
Нужно то, как это соединено сейчас. Микросхема, на основании которой сделан модуль, позволяет ограничивать ток заряда при недостаточном входном токе, но как это сделано в модуле мне неведомо. Кроме того, если нагрузка питается от аккумулятора без переключения, то есть вероятность, что именно модуль с его алгоритмом не позволяет загружаться микропроцессору.
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
542
Saint-Petersburg, Russia
питание от акка на плату можно реализовать с помощью TL431 стабилизатора, задав желаемое напряжение резисторным делителем.
В даташите есть куча референсных схем. Можно даже обойтись одним полевиком если лень.

1696126046412.png
 

Decent

✩✩✩✩✩✩✩
30 Сен 2023
17
2
@vortigont, вроде, простая схема, но сделать таких десяток... для меня, как далёкого от схемотехники, этот процесс будет трудоёмким и длительным. А нет ли подобного готового модуля?
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
542
Saint-Petersburg, Russia
готовых я не знаю. Вам, похоже нужен какой-то более-менее умный контроллер питания, простыми схемами тут не обойдешься.
Ситуации у вас постоянно будет дохлый аккумулятор, который борется за энергию с платой и болтается в промежуточном состоянии допускать нельзя. Забейте на 8266, эти чипы устарели морально и имеют кучу врожденных проблем. Для нового проекта никакого резона выбирать их вместо есп32 нет, если только у вас не лежит на складе 10 тысяч нерапроданных плат.
На есп32 есть браун-аут и программно сделайте простенький режим гистерезиза работы от акб. При загрузке плата должна замерять емкость аккумулятора и, если он заряжен менее чем на 20% уходить в сон на час к примеру. Во время работы тоже самое - следим за зарядом раз в минуту и уходим в сон не дожидаясь пока все сдохнет. Так вы избежите ситуации когда у вас схема будет работать на "подсосе" при пасмурной погоде. Либо работаем минимум сколькото часов от АКБ, либо заряжаем его. У есп32 намного лучше организовано энергосбережение если им уметь правильно воспользоваться.
 

Decent

✩✩✩✩✩✩✩
30 Сен 2023
17
2
Скажите, верно ли я мыслю...

C++:
ADC_MODE (ADC_VCC);

void setup() {

  int vcc = ESP.getVcc(); // получение напряжение питания

  if (vcc<x){          //значение x надо подобрать, предположим, 3000

    ESP.restart();

  }

}
И перезагружать ESP при напряжении ниже 2.9 - 3.0v
 

Эдуард Анисимов

★★★★★★✩
23 Сен 2019
2,410
976
58
Марий-Эл
Получается, что при малом напряжении на ESP он будет в постоянной перезагрузке?
Вам же сказали, используйте внешний монитор питания и сброса. Это одна микросхема.
Схема при этом будет жрать ещё больше.
 
  • Лойс +1
Реакции: PiratFox и poty

poty

★★★★★★✩
19 Фев 2020
3,238
943
@vortigont, схема хорошая, но потребляет много (линейное регулирование и шунт опора). Гораздо эффективнее использовать импульсные DC/DC конверторы.
@Decent, есть контроллеры солнечных батарей, в которых есть и возможность параллельной зарядки аккумуляторов при достаточном освещении. Но я давно уже этим не занимаюсь, да и, как правило, больше они, чем требуется в данном конкретном случае.
По-хорошему, здесь нужна mesh-логика + логика питания. mesh-логика должна отключать некоторые узлы, если в наличии есть работающий путь передачи сигнала. Таким образом, узел может находиться в состояниях: 1. активный. 2. выключенный/пассивный. 3. выключенный. В активном включено всё, в выключенном пассивном процессор периодически просыпается, чтобы проверить, не нужно ли включиться (утерян единственный активный узел, замыкающий путь), в выключенном - нет источника питания.
При этом собрал бы простейший переключатель, с логикой: есть достаточное питание - заряжаем аккумулятор и питаем им полезную нагрузку; есть питание только для нагрузки - отключаем зарядку аккумулятора; недостаточно питания для нагрузки - питаем от аккумулятора до момента его разряда до, допустим, 5-10%. Разрядился аккумулятор - выключаем всё. Но готовых модулей предложить не могу.
 

Decent

✩✩✩✩✩✩✩
30 Сен 2023
17
2
Получается, что при малом напряжении на ESP он будет в постоянной перезагрузке?
Именно. Как я понимаю, по этой схеме работает brown-out detector (BOD)

По-хорошему, здесь нужна mesh-логика + логика питания. mesh-логика должна отключать некоторые узлы, если в наличии есть работающий путь передачи сигнала.
Это только в теории. На практике сейчас имею 6 точек, одна из них находится на моём балконе. С ближайших двух сигнал приходит с вероятностью 90-100% (кстати, непонятна причина редкого отсутствия связи), с других - по 25% (чаще пакеты идут только в одну сторону) и по 10%. А ещё одну "поймал" лишь 1 раз за сегодняшний день. И вот представьте ситуацию, когда пакет с одной точки приходит, мы её идентифицируем как "в зоне видимости", но через долю секунды эту точку уже не видно. Поэтому некоторая избыточность способствует доставке пакета с бОльшей вероятностью. Плюс, и это важно, пакет, который пришёл на узел повторно, им просто игнорируется.
Ещё момент: в неохраняемых местах я предпочту поставить репитер без аккумулятора - пусть работает от солнечной батареи и только в солнечную погоду.
 
Изменено:

vortigont

★★★★★★✩
24 Апр 2020
1,022
542
Saint-Petersburg, Russia
@poty, да это просто схема из даташита как пример, к тому же она нужна что бы напряжение сверху ограничивать. Но суть одна, тлку можно открыть четко заданным напряжением, открытая она потребляет 1 ма, закрытая - микроамперы. А там уже можно приспособить ее или к ena пину дц-дц или к полевеку. Но автор вск равно что-то готовое ищет, так что мимо.

@Decent,
Нет, вы не так поняли, смысл не в том что бы перегружать контроллер, смысл в том что бы не допускать разряда аккумулятора в ноль. Для этого нужно выключать/усыплять контроллеры еще до того как вск сядет, а не просто бечконечно перегрудать их.
Впрочем я пока не понял как вы вообще питать их собираетесь - напрямую от акб с напряжением в диапазоне и больше и меньше 3.3 вольт?
 

Decent

✩✩✩✩✩✩✩
30 Сен 2023
17
2
@Decent, При падении напряжения меньше 3.6 вольта на аккуме, напряжение начнёт падать.
Ниже 3.4, я замеры произвёл. До 3v ESP работает нормально, дальше в литии почти ничего не остаётся.

И правильно будет не Decent, а Descent.
Из серии "правильно не аллигатор, а олигарх"/
 

Эдуард Анисимов

★★★★★★✩
23 Сен 2019
2,410
976
58
Марий-Эл
До 3v ESP работает нормально, дальше в литии почти ничего не остаётся.
Я литий сажаю до 2.8 и у меня всё работает.
До сработки защиты, почти. Если она на литии есть.


Из серии "правильно не аллигатор, а олигарх"
В нашей реалии - это почти одно и то же.
 

Decent

✩✩✩✩✩✩✩
30 Сен 2023
17
2
@Эдуард Анисимов, 2.8 после LDO превращаются в 2.7 по мультиметру, а по даташиту - так вообще в 2.65, которые при охлаждении могут превратиться в 2.5. И вот где-то в этом районе (точную цифру предстоит узнать) ESP "заводится" как-то не так
Decent в данном случае - это игра слов: с одной стороны "приличный", с другой - "децентрализованный".
 

poty

★★★★★★✩
19 Фев 2020
3,238
943
@Decent, это именно потому, что применяется LDO. Как только выходите из зоны datasheet гарантировать ничего нельзя. Поэтому стоит использовать импульсники для этого.
 

Геннадий П

★★★★★★✩
14 Апр 2021
1,972
632
45
@Decent, ESP ниже 3В вообще лучше не питать, особенно если используется ее радиомодуль. Да и LiIon аккумуляторы при слабом токе разряда при 3.3В уже можно сказать что полностью разряжены.
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
542
Saint-Petersburg, Russia
я тогда не понимаю вообще в чем тут проблема-то и зачем какие-то еще платы?
На аналоговый вход есп подключаете акб через делитель, и пониторите напряжение на нём, при выходе акб на 3.2-3.3 вольта уводите МК в глубокий сон на час, по пробуждению все повторяете по кругу. Внешний модуль лора подключаете через нормально закрытый полевик к питаню, который можно открыть только положительным напряжением с ноги еспшки.
При наличии солнечной батареи, акб в таком режиме высадить ниже уровня стабильного старта МК будет практически невозможно.
 

Decent

✩✩✩✩✩✩✩
30 Сен 2023
17
2
Что ж, замеры ESP.getVcc() дали интересный результат: когда питаю ESP от 3.3, значение держится в районе 2950, как только напряжение начинает падать, значение понижается и в районе 2700 (в это время на клеммах АКБ 3.07 - 3.08v) перестаёт нормально работать. Собственно, в это время можно как минимум перевести ESP в сон, а радиомодуль в режим конфигурирования, т.е., перестать слушать эфир.
Как поведёт себя ESP при поднятии напряжения, предстоит узнать.
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
542
Saint-Petersburg, Russia
@Decent, главное правильно поставить задачу - тогда не придется бороться с проблемами которые сам же себе и создал :)
Все же настоятельно рекоммендую поставить делитель и снимать напряжение с аккумулятора а не с внутреннего источника. Будет возможность отслеживать реальное состояние аккумулятора, понять успевает ли он зарядиться и на сколько, за какое время. Возможно на основе этой информации уже реализуете свои режимы активный/пассивный и прочее.