Esp8266 измерение напряжения аккумулятора

Мониторинг напряжения LiPo батареи с помощью Wemos D1 в сервисе thingspeak

Здравствуйте. В данной статье я покажу Вам как можно мониторить заряд своей LiPo батареи подключенной к микроконтроллеру ESP8266 на примере Wemos D1 mini и shield к нему для подключения Lipo батарей. Для чего это нужно? Ну даже наверное не стоит это объяснять, так как все прекрасно понимают, что знать когда подзарядить свое устройство очень важно, дабы не потерять информацию.

Батарею можно использовать любую, 3.7 V емкость не имеет значения, так как батарея любой емкости, когда теряет свой запас энергии, тогда и теряет напряжение понемногу. За счет данного свойства мы и будем реализовывать наш мониторинг заряда батареи.

Как я уже и сказал нам понадобится:

И резистор понадобится на 100кОм его можно купить в магазинах радиоэлектроники или также заказать на сайтах aliexpress и banggood.

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

Я думаю схема довольно примитивная, чтоб ее объяснять, резистор на 100 кОм используется потому что в Wemos D1 mini уже используется внутренний делитель напряжения, который соединяет контакт A0 с АЦП ESP8266. Это делитель напряжения из резисторов 220 кОм и 100 кОм. Выглядит схема делителя напряжения таким образом:

Добавив еще 100 кОм получится 100k+220k+100k = 420k. Поэтому если напряжение полностью заряженной батарейки будет составлять 4.2 В, АЦП ESP8266 получит 4.2*100/420= 1 Вольт.

1 Вольт это максимальный вход для АЦП и даст на A0 значение 1024. voltage =raw/1023; voltage =4.2*voltage;

График напряжения на сайте thingspeak выглядит примерно таким образом:

Если подключите все так как описано выше, то имейте ввиду, что резисторы тоже разряжают батарею с постоянным потреблением 10uA (4.2v / 420000 ohm) . Энергопотребление ESP8266 в режиме сна составляет 77 uA. С резистором это будет 87 uA.

Источник

Digitrode

цифровая электроника вычислительная техника встраиваемые системы

Мониторинг мощности и других энергетических параметров сетевых устройств с помощью ESP8266

Беспроводной ваттметр на основе ESP8266 своими руками

Микроконтроллерная платформа ESP8266 является отличным инструментом домашней автоматизации, и это можно продемонстрировать в сегодняшнем проекте. Это проект демонстрирует измерение энергетических параметров устройства, подключенного к розетке, и передачу данных с помощью Blynk с OTA.

Устройство данного примера измеряет переменный ток любых подключенных к нему сетевых устройств. Основой проекта является плата Wemos D1 Mini Pro на базе ESP8266. Она измеряет напряжение смещения и текущее напряжение с помощью аналого-цифрового преобразователя ADS1015. Фактическое измерение тока выполняется датчиком тока 30 А / 1 В YHDC SCT013. Питание осуществляется с помощью блок питания 5В, 1А. Принципиальная схема подключения устройства выглядит следующим образом.

Устройство работает следующим образом. Линия переменного тока первичной нагрузки проходит через датчик тока SCT013 к розетке. Когда устройство подключено к розетке переменного тока, SCT013 обнаруживает ток, протекающий через провод, который проходит через центр датчика. Он и обнаруживает вторичное напряжение, которое индуцируется от текущего тока. Он выдает линейное напряжение в диапазоне 0-1 В постоянного тока, 0 В = 0 А, 1 В = 30 А.

Допустим, у вас есть 1 В переменного тока. Напряжение на самом деле колеблется между 1 В и -1 В переменного тока. Не стоит работать с отрицательными числами, поэтому решаем это, подавая смещение напряжения на линию к SCT013. Используя делитель напряжения, мы снижаем напряжение 3,3 В примерно до 1,015 В постоянного тока и используем это для напряжения смещения. Это позволяет всем числам оставаться положительными. Так, например, если бы у вас было 30 ампер переменного тока, устройство вывело бы 0,015-2,015 вольт постоянного тока, потому что оно начинается с 1,015 вольт, и переменное напряжение для измерения переменного тока колеблется вокруг этого значения.

Читайте также:  Как изменяется мощность при уменьшении напряжения

Для повышения точности фактическое напряжение смещения первоначально измеряется при включении питания ADS1015, поэтому он точно знает, сколько вольт нужно вычесть из выхода SCT013. При включении питания ничего не должно быть подключено к розеткам, чтобы получить точное измерение смещения. Он измеряет напряжение в течение 1/2 секунды (так как он должно улавливать около 30 циклов формы сигнала переменного тока) и записывает максимальное значение. Затем он вычитает напряжение смещения из этого значения, чтобы оставить нас с фактическим выходным напряжением SCT013. Затем мы рассчитываем ток путем умножения на 30 (потому что мы знаем 1 В = 30 А). Для расчета мощности в ваттах просто нужно еще использовать переменное напряжение сети, которое по умолчанию известно.

При этом используется метод пикового сигнала для измерения переменного тока, поэтому он не является истинным среднеквадратичным показанием тока. Но все равно мы получаем довольно точное значение с использованием этого метода.

Устройство отображает всю информацию в приложении Blynk. Оно показывает: ток, мощность в кВт-ч, совокупную мощность кВт-ч, Wifi RSSI, показания смещения, измеренные показания и настроенное значение. Пользовательские элементы управления задают напряжение переменного тока, сбрасывают напряжение смещения, сбрасывают накопленный кВтч и перезагружают микросхему. Устройство использует EEPROM для хранения текущих (накопленных) кВтч каждый час в случае потери питания. Здесь также используется возможность прошивки по воздуху (OTA), чтобы его можно было запрограммировать / обновить без необходимости открывать корпус и вручную подключать к USB.

И помните, что с электричеством нужно работать осторожно. Если вы не знаете, как правильно работать и подключать цепи переменного тока, не пытайтесь это сделать.

Источник

Arduino.ru

Считывание напряжения собственной батареи ESP8266

Добрый день. Подскажите, как считать напряжение батареи, питающей ESP8266?

Пытаюсь сделать автономное устройство и хочу, чтобы оно отслеживало напряжение питающей батареи, чтобы известить, когда подойдёт к нижнему пределу. Как это по правильному реализовать? Через опорное напряжение? (но оно вроде тоже сильно скачет). Может кто подробнее расписать (думаю, я не первый кто такое хочет сделать). Ювелирная точность не нужна.

А что за батарея? И как подключена?

ZhenyaRUS39, кажется есть функция
ESP.getVcc()

А что за батарея? И как подключена?

планирую обычную от радиомоделей (3,7-4,2V как в телефонах) подключаться к witty cload ESP через microUSB (там в ней уже преобразовывается на 3,3V).

спасибо, проверю, но это напряжение уже после преобразования до 3,3V уже наверное будет.

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

Или tl431 как источник опорного тоже можно использовать

Так если сама esp питается стабилизированным питанием, вроде как резистивного моста будет достаточно.

Вы имеете ввиду соединить резистором плюс батареи и аналоговый вход (ноль сделать общим), посмотреть сколько покажет на ардуиньке и сколько покажет мультиметр и посчитать поправочный коэффициент? а потом просто отключить мультиметр и просто считать умножением значения с А0 на поправочный коэффициент?

По идее должно работать, проверю на выходных.

Источник

Как измерить уровень заряда аккумулятора. WeMos, Arduino, ESP8266

В этом видео речь пойдет про то, как измерить уровень заряда аккумулятора. Т.е. как получить процент заряда аккумулятора, зная напряжение на его клеммах.

Читайте также:  Определите силу тока в цепи если напряжение 120 в

Периодически в разных своих самоделках я использую литий-ионные аккумуляторы и делаю индикацию их заряда в процентах. Примерно так же, как это происходит в мобильном телефоне.

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

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

В качестве примера буду использовать литий-ионный аккумулятор 18650 и АЦП преобразователь на WeMos D1 mini такое сочетание является довольно распространенным. Но при желании полученные здесь данные и методики измерения можно будет использовать и для других схем.

Мой испытательный стенд будет выглядеть вот так.

На этой схеме у меня есть микроконтроллер WeMos D1 mini. Он будет считывать информацию, и записывать ее для дальнейшей обработки.

Литий-ионный аккумулятор 18650.

Повышающий DC-DC преобразователь. Он повышает напряжение с аккумулятора до пяти вольт. WeMos D1 mini работает именно от такого напряжения.

Устройство для записи данных на microCD флешку.

Дисплей для отображения информации.

Резистор R1 это нагрузка. Через него аккумулятор будет разряжаться.

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

Полностью этот делитель напряжения выглядит вот так.

Контакт A0 уже притянут к земле через резистор на 320 килоом. Этот резистор содержится где-то внутри WeMos D1 mini. В прочем в этом не сложно убедиться, измерив, сопротивление между A0 и землей.

АЦП преобразователь WeMos D1 mini имеет разрядность десять бит. Т.е. максимальное значение на этом преобразователе 1023, а минимальное 0. Максимальное значение 1023 соответствует напряжению 3.3 вольта.

Делитель напряжение расширит измеряемый диапазон напряжений. Так что значению 1023 будет соответствовать не 3.3 вольта, а 4.33 вольта.

Это рассчитывается вот так. Вспоминаем школьные формулы для последовательного соединения.

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

Прошивку я напишу так, чтобы ровно один раз в минуту, на microCD записывалось время и значение с АЦП преобразователя.

Саму прошивку рассматривать не буду, по-моему, это не очень интересно. Но вот ссылка на нее

Скажу только что минимально необходимый код для получения значения с аналого-цифрового преобразователя выглядит вот так.

С этим x нужно дальше что-то сделать, чтобы получить из него значение в процентах. Дальше речь пойдет именно об этом.

Это устройство в собранном виде выглядит вот так.

Я его включил, и ждал, когда аккумулятор полностью разрядится, чтобы можно было, потом обработать данные с microCD флешки.

Прошло десять с половиной часов, и вот так выглядят данные без обработки.

Они получились, шумноваты. Но это ничего страшного. Сейчас мне более интересна общая динамика.

Максимальное значение здесь 990. Это соответствует напряжению 4,2 вольта. А минимальное 680 это примерно 2,88 вольта. После этого сработала защита аккумулятора встроенная в саму батарейку, и он выключился.

Сразу скажу, что процент заряда аккумулятора должен быть прямо пропорционален времени которое осталось работать аккумулятору, а не чему-то еще, иначе в этом не будет никакого смысла.

Читайте также:  Электродвигатели напряжением 660 в

Линейную аппроксимацию сделать очень легко. Максимальное значение АЦП преобразователя 990, а минимальное 680. Нужно сделать так, чтобы когда значение на выходе АЦП преобразователя менялось от 990 до 680. Процент заряда аккумулятора менялся от 100 до 0.

Конечная формула для такого преобразования выглядит вот так.

На графике это выглядит вот так.

Красная кривая это линейная аппроксимация, а синяя это идеальная зависимость. Т.е. прямая соединяющая 0 и 100% в заданный промежуток времени.

Если для измерения уровня заряда аккумулятора использовать линейную аппроксимацию, то будет получаться что от 100 до 80 процентов аккумулятор разряжается долго, а от 20 до нуля быстро.

Возможно, у вас есть мобильный телефон, или еще какой-то девайс который так себя ведет. Теперь вы знаете, почему так происходит. Его разработчики поленились сделать более точные расчеты и ограничились линейным приближением.

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

Традиционно уравнение параболы записывают вот так.

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

Эта парабола должна проходить через три точки. Первые две это значение 100% и 0.

В качестве третьей лучше всего выбрать значение 50%. Т.е. это должна быть средняя точка по времени на реальной зависимости.

У меня всего 629 точек. Средняя точка это точка с номером 315. Значение в ней примерно равно 884.

Дальше нужно составить три уравнения в которых парабола проходит через эти точки и решить их относительно коэффициентов a, b, c.

Вот так выглядит решение этой системы уравнений.

В ответ на пожелание подписчика приведу решение в символьном виде. Может быть, оно кому-то пригодиться. Вместо x1, y1, x2, y2, x3, y3 нужно подставить ваши точки, через которые должна проходить парабола.

Этот калькулятор поможет выполнить вам данный расчет.

X Y
1
2
3
Рассчитать Ответ: a = 680; b = 548.694; c = 0.000730968;

И конечное уравнение параболы:

Построю график этой зависимости рядом с остальными графиками. В качестве x буду подставлять реальные значения, снятые на испытательном стенде.

Красная кривая выпрямилась и теперь расположена вдоль идеальной синий, зависимости. Это значит, что квадратичная аппроксимация будет давать точные результаты. И последние 20% заряда батареи будут длиться столько же времени, сколько и первые.

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

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

Если вы будите использовать какие-то другие аккумуляторы, например кислотные или комбинация АЦП и делителя напряжения будет другой, то в формулу нужно вносить соответствующие поправки.

Например, в Arduino тоже используется десяти битный АЦП, но уровень логики там 5 вольт, а не 3,3 вольта. Значит делитель напряжения как таковой не нужен. Нужен только подтягивающий резистор. Т.е. схема должна выглядеть вот так:

В делители напряжения на WeMos который я использовал значению 1023 соответствовало напряжение 4,33 вольта. В новом 5 вольт. Значит, уравнения должны быть вот такими.

Для линейной аппроксимации:

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

Источник

Оцените статью
Adblock
detector