Трехканальный вольтамперметр на базе ESP32-S3 с записью данных в лог и передачей данных по WI-FI (YCHEV003)
Привет друзья, сегодня с Вами мы соберём трёхканальный вольтамперметр на базе ESP32-S3. Многие из Вас, уже долгое время ждали этот проект, поэтому при его сборке я учёл все Ваши замечания в комментариях под видео к вольтамперметру на Arduino, вольтамперметру на ESP8266 и сделал проект максимально простым, я избавился от большого количества пайки, новый вольтамперметр буквально можно спаять навесным монтажом, так как он состоит всего из 5 модулей. Так же избавился от ненужных компонентов, навроде датчика температуры, блока управления вентиляторами, так как модули, на основе которых мы будем с Вами собирать лабораторный блок питания уже имеют и датчики температуры, и могут управлять скоростями вентилятора, поэтому данные компоненты в новом вольтамперметре я упразднил.
Трехканальный вольтамперметр на базе ESP32-S3 с записью данных в лог и передачей данных по WI-FI (YCHEV003)
Давайте перейдём к страницам нашего трёхканального вольтамперметра на базе ESP32-S3, на главной у нас отображается текущее время модуля, значок WI-FI сигнализирующий нам, что на модуле включена точка доступа и мы можем подключиться к ней с телефона, планшета или ноутбука и скачать все данные. Далее идут показания трёх модулей INA226 подключённых по шине I2C, кнопки переключения профилей позволяющие сохранять данные в EEPROM для продолжения отложенных тестов.
На этом моменте остановимся и рассмотрим данный функционал подробно, представьте Вы решили узнать ёмкость батареи разрядив её или зарядив до определённого значения, но во время теста Вам срочно потребовалось зарядить, например аккумулятор от автомобиля, что бы Ваша жена смогла уехать по делам, если Вы прервёте тест, то все данные будут утеряны и Вам придётся начинать тест заново, но благодаря профилям Вы можете просто переключиться на другой профиль и тем самым сохранить данные Вашего первого теста. Прошу заметить, что данные сохраняются во время переключения профилей, так как количество записей в EEPROM ограничено и записывать данные онлайн в EEPROM, мы не можем, мы просто испортим память. При получении данных из EEPROMа, вольтамперметр сначала использует алгоритмы CRC для проверки целостности данных и только потом начинает с ними работать.
На каждый канал у нас по 5 профилей, что в общей сумме нам даёт 15 профилей на вольтамперметр.
Так же на главной странице у нас имеется кнопка включения/выключения защиты электронной нагрузки. Первый канал я буду использовать под электронную нагрузку в своём лабораторном блоке питания, поэтому в вольтамперметре реализована зашита от глубокого разряда с помощью программного гистерезиса.
Защита управляет пином номер 6 вольтамперметра, подавая на него сигнал высокого уровня, когда источник питания нужно отключить, а программный гистерезис не позволяет снова включить нагрузку, чтобы не допустить глубокого разряда источника питания.
Говоря рабоче-крестьянским языком, когда мы разряжаем батарею большими токами, напряжение на ней сильно проседает, но как только мы отключаем батарею от нагрузки, напряжение на ней снова поднимается и электронная нагрузка может включиться снова и продолжить разряжать батарею, чтобы этого не произошло, и электронная нагрузка не включилась повторно, и был реализовать программный гистерезис.
Так же на против каждого канала имеется индикатор, который сигнализирует нам, ведется ли сейчас запись с этого канала в лог на SD карту, если карта конечно же вставлена в модуль, и она им поддерживается, а её размер не превышает 32 Гб, в противном случае включить данную опцию не получится.
Схема трехканального вольтамперметра на базе ESP32-S3 с записью данных в лог и передачей данных по WI-FI (YCHEV003)
На этом моменте у Вас конечно же возник вопрос, почему я использовал 3 модуля INA226, а не один модуль INA3221, что сделало бы вольтамперметр ещё компактнее?
Всё просто, модуль INA3221 рассчитан на максимальное напряжение в 26 вольт, а у меня источники питания с напряжением в 36 вольт, поэтому пришлось использовать несколько модулей INA226, что бы не городить делители напряжения, что сделало бы сам вольтамперметр сложнее в изготовлении, тем более модуль INA226 позволяет одновременно использовать до 16 модулей и это без учёта плат расширения.
Вообще для данного вольтамперметра мною было придумано множество вариантов, от одного модуля INA3221 до сложной схемы с защитой на ATTINY13, но после большого количества экспериментов, я остановился на плате с 4 модулями.
Графики трехканального вольтамперметра на базе ESP32-S3 с записью данных в лог и передачей данных по WI-FI (YCHEV003)
Следующие три страницы — это графики, для каждого из каналов. В первой строчке у нас отображаются данные онлайн текущего канала, индикатор записи в лог файл на SD карту и время работы модуля с момента включения.
Ниже мы с Вами видим адаптивный график, где максимальное и минимальное значение рассчитываются онлайн на основе данных графика, так же по мимо шкалы времени и значений на графике присутствуют два курсора, которые управляются с помощью двух пальцев.
У данного модуля ёмкостный сенсор способный одновременно обрабатывать до 5 касаний, поэтому было глупо этим не воспользоваться и не реализовать два курсора. С помощью этих курсоров можно узнать значение и время нужных нам пиков или спадов на графике, данные, полученные с курсоров, отображаются в левом нижнем углу и идут в следующей последовательности, вольты, амперы, ватты, номер измерения и T это разница в измерениях между курсорами.
Выбор цвета данных для трехканального вольтамперметра на базе ESP32-S3 с записью данных в лог и передачей данных по WI-FI (YCHEV003)
Выбор цвета трехканального вольтамперметра на базе ESP32-S3 с записью данных в лог и передачей данных по WI-FI (YCHEV003)
Следующая страница — это настройка цветов отображаемых данных, в данном разделе мы можем выбрать цвет для любого значения, например вольты, первого канала, затем с помощью клавиатуры задать новый цвет и сохранить — нажав кнопку ОК, теперь везде, где отображаются данные для которых мы изменили цвет, они будут отображаться заданного нами цвета.
Настройки трехканального вольтамперметра на базе ESP32-S3 с записью данных в лог и передачей данных по WI-FI (YCHEV003)
Ну и последняя страница – это остальные настройки трёхканального вольтамперметра.
В первой строке мы с Вами можем включить запись необходимых нам каналов, если в слот установлена SD карта и она не более 32 Гб.
Давайте остановимся на слоте для SD карты и поговорим о нём более подробно, для управления SD картой, компания waveshare, из-за нехватки свободных пинов, выбрала такое же решение, что и я в предыдущих проектах — они использовали расширитель ввода-вывода CH422G, который управляется по шине I2C, однако данный расширитель не захотел работать с аппаратной шиной I2C, а создавал свою виртуальную, из-за чего аппаратная шина легла и отказалась работать, а вместе с ней и все устройства подключённые к этой шине, из-за чего я потратил кучу времени изучая все форумы, документацию, примеры от производителя и ни где не нашёл решения данной проблемы. Тогда мне пришлось закопаться в код библиотеки, причём библиотеки родителя и там я нашёл в комментариях сообщение, что после успешного выполнения работы, класс для управления расширителем CH422G нужно дистроить.
Далее у нас идут кнопки очистки профиля, зелёный означает, что в профиле имеются данные, красный, что профиль чист.
Кнопка WIPE DATA сбрасывает вольтамперметр на заводские настройки.
Кнопка CLEAR SD – очищает карту памяти.
WI-FI точка доступа включается/выключается переключателем в самом низу, тут же отображается IP адрес по которому необходимо подключиться к модулю, имя точки доступа и пароль.
Давайте подключимся к точке доступа и посмотрим, что доступно там:
Логи трехканального вольтамперметра на базе ESP32-S3 с записью данных в лог и передачей данных по WI-FI (YCHEV003)
На главной странице мы с Вами видим логи вольтамперметра, при чём мы с Вами можем без проблем скачать файл, например на 2.3 Мб, да, я понимаю, что многие из Вас разбалованы высокоскоростным интернетом и Вы сейчас думаете, что в этом такого, это же всего 2.3 Мб.
А теперь только вдумайтесь, насколько крутой микроконтроллер ESP32 S3, он может одновременно обрабатывать данные с трёх модулей INA226, модуля DS3231, записывать полученные данные на SD карту, отображать изображение размером 800 на 480 точек почти в 30 FPS, поддерживать свою точку доступа и параллельно всем этим действиям отдавать Вам файл размером в 2.3 Мб, это просто поразительно.
Настройки трехканального вольтамперметра на базе ESP32-S3 с записью данных в лог и передачей данных по WI-FI (YCHEV003)
Ну и на второй странице у нас настройки, где Вы можете задать пароль от WI-FI сети, текущее время, при чём галочка поддерживает актуальное время и коррекционные поправки для каждого из каналов.
Ну и сама монтажная схема (в картинках, в прошлом видео большинство проголосовало за схемы в картинках):
Схема трехканального вольтамперметра на базе ESP32-S3 с записью данных в лог и передачей данных по WI-FI (YCHEV003)
Так же я снял для Вас подробную инструкцию и подготовил печатную плату в Sprint-Layout и PDF все ссылки в описании под видео на ютубе.
Скетч Вы можете скачать с github github.com/chevichelov/VOLTAMMETER_ESP32_S3_YCHEV003
Для скачивание не требуется регистрация или оплата, просто жмите на зелёную кнопку "CODE" -> "Download ZIP"
(Для тех, кто не знает, github эта специальная платформа для того, что бы программисты могли делится своим кодом и дорабатывать его вместе)