Как стать автором
Обновить

KC868-M16v2: мечта ардуинщика (16 токовых каналов, 3 канала напряжения, SD, LAN, POE, дисплей, RTC и SH3x)

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров12K
Всего голосов 16: ↑14 и ↓2+19
Комментарии89

Комментарии 89

На плате присутствует разъём для типового модуля часов реального времени на DS3231 (это очень хорошо).

Но, ведь в ESP32 уже есть RTC, разве не так?

Всегда пользовался внешним модулем DS3231 - это полноценный RTC со встроенной батарейкой и гарантированной точностью отсчёта времени.

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

А еще в ESP32 есть Wi-Fi, т.е. доступ к NTP . А это уже точнее, чем DS3231, которые будут корректироваться по тому же NTP.

Ну и зачем тогда DS3231?

Сценариев много. Спмые очевидные

1 - отсутствие доступа к ntp

2 - таймстамп нужен сразу после подачи питания, а не когда получит данные от ntp

3 - отсутствие необходимости делать корректировку хода часов во время работы.

3 - отсутствие необходимости делать корректировку хода часов во время работы.

Если использовать внешний кварц на 32к, а не внутренний RC-генератор, то и калибровка будет на уровне DS3231, который иногда все же приходится корректировать.

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

Встроенные же генераторы в МК не имеют повторяемости даже в рамках партии, да еще и часто нестабильны в режимах с пониженной энергией генерации

А толку без выделенного питания для часов? В ESP чипах оно как-бы есть, но в модулях его упорно не хотят выводить наружу, объединяя с основным питанием.

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

Если говорить не о сабже, а о "вообще", то бывает еще дело в потреблении. На STM, например, в системах автоматики, где важно низкое потребление (десятки-сотни микроампер), но также важна и стабильная частота (например, для трансиверов, отклонение менее 0.5%), внешний кварц может отжирать больше половины токового бюджета всего устройства. Поэтому, бывало, приходилось устанавливать внешний кварц, но работать всё равно от встроенного HSI16, в процессе работы лишь периодически запуская внешний HSE для калибровки внутреннего, сразу после чего снова усыплять.

По этой плате конечно в первую очередь хочется разобраться как ей ток мерять. True RMS 6000 получится? Успеет ADC и мультиплексор так быстро мерять? 6000 * 16 получается в сек.

Не знаю как True RMS 6000, но на 8-битной Меге мне удавалось обсчитывать 16 токовых каналов. Точность была не очень, но приемлемая для оценочных целей. Тут ESP32 в миллион раз более мощная, чем 8-битная Мега - по идее должна нормально обсчитывать.

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

ну в миллион вы уж загнули. cpu частота на порядок всего лишь, да float математика может побыстрей. АЦП хоть и бит побольше но уж больно шумная. пусть не 6000, хотя бы 1000 и то для 50гц хватило бы. у кинкони готовых примеров нет?
еще интересно что и как меряет esphome

В статье есть ссылка на OEM, насколько я помню, у них есть готовая библиотека - там можно посмотреть код.

Ещё можно в сети поискать код широко известного в узких кругах PowerMonitor.

У Kincony тоже что-то есть на форуме.

Интересно, зачем РОЕ устройству, которое по определению находится рядом с силовыми линиями и к ним подключено? А 0,96" экран, вызывающий у Вас буйный восторг - зачем, .учитывая что у него 19 измеряемых параметров?

Ну и цена - как всегда. Поверенный зарегистрированный как средство измерения WB-MAP12E стоит дешевле, по функционалу - не сильно уступает.

Про дисплей не понял - что значит "у него 19 измеряемых параметров"? Это как?

3 напряжения , 16 токов - 19 чисел, которые не влезут на экран, думаю это имелось в виду.

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

Наверное можно. А если поставить большой экран, то можно все 19 параметров отображать. Остался вопрос - зачем маленький экран в базовой комплектации?

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

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

Хорошо, я узнал, что холодильник у меня расходует X рублей в месяц, кондиционер Y рублей, бойлер Z рублей. Мои действия? Горестно вздыхать каждый раз, когда я захожу с раскаленной улицы в прохладную квартиру? Пореже мыться? Купить за X*1000 рублей более экономичный холодильник?

Когда я установил у себя такую систему, то с удивлением обнаружил, что больше всего жрёт энергию не холодильник, не нагреватель, не стиральная машина, а... скромный и неприметный сервер, который работает 24/7 :)

Так я и без многоканальных измерителей знаю, что сервер с постоянным потреблением >50Вт будет жрать больше, чем мой холодильник. Но что мне с этим знанием делать-то? Включать сервер с 9 до 5 по рабочим дням?

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

Обратите внимание: на разъёмы измерения напряжения предполагается подавать сигнал до 380 В.

380 Вольт это всего лишь 3 линии по 230 Вольт.

Но поводу опасений согласен - там нет прорезей даже для 220 В.

Но ведь между линиями больше.

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

и т. д. — любой каприз, недоступный в готовых решениях.

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

Здесь можно реализовать функционал, который и не снился "любым счётчикам".

Насчёт точности - это "показометр", но с вполне приемлемой для оценочных целей точностью.

Здесь можно реализовать функционал, который и не снился "любым счётчикам".

Конечно можно. Добавлять модули, перепрограммировать и т.д. А к счетчику можно добавить ЕСП32 и получить функционал, полностью аналогичный данному прибору, но с нормальным исполнением основной функции данного прибора. Вопрос же не в том что вообще можно. Вопрос в том, нахрена нужно то, что предлагается.

Насчёт точности - это "показометр", но с вполне приемлемой для оценочных целей точностью.

Это не показометр. Точнее это очень небезопасный показометр, судя по разводке линий 220. Еще раз: приделали бы они к есп32 просто 16 токовых входов и продавали бы тысяч за 5 - я бы купил. А если бы еще и 220 часть нормально развели + сделали БП на борту от 220, я бы купил даже за 10 в каждый шкаф.

Здесь можно реализовать функционал, который и не снился "любым счётчикам".

Но как счетчик, к результатам которого можно будет аппелировать, его использовать будет невозможно.

Можно, например, сделать «сетевой осциллограф», который в реальном времени выводит на веб-страницу форму тока и напряжения по любому каналу (или по нескольким каналам).

И много чего ещё, на что хватит фантазии и квалификации.

Зачем?

Это просто пример, конкретная реализация функций зависит от вашего проекта и от ваших желаний.

Вся прелесть задумки сводится на нет из-за одной мелочи. Казалось бы, есть измерение напряжения по трем фазам, есть 16 токовых входов, хоть по трем фазам мощность считай, хоть по каждому потребителю отдельно. Но для полноценного измерителя нехватает синхронного измерения тока и напряжения. Без синхронного измерения, увы, получится полноценно измерить мощность только на активной нагрузке от идеального источника питания. Любое искажение формы напряжения и любая реактивная нагрузка исказят измерения до бесполезных значений.

На практике я столкнулся с проблемой точности измерений на различных типах нагрузки - поверенный счётчик так не сделаешь, но для "бытовых целей" точность меня устраивала.

И вопрос: что в подобных системах может обеспечить "синхронность измерений" и что вы понимаете под этим термином?

Одновременное семплирование как минимум тока и напряжения на одной фазе позволяет измерить сдвиг фазы тока относительно напряжения, что позволит оперировать уже комплексной мощностью

То есть 2 микроконтроллера, которые синхронно в одной точке времени измеряют один величину тока, а другой - величину напряжения?

А не последовательно с некоторой задержкой, как это делает один микроконтроллер.

Вы это имели в виду?

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

Аесли копнуть чуть глубже то есть специализированные микросхемы АЦП которые не только все как надо измерят, но еще и посчитают так, что МК останется только считать готовый результат

Понял, теперь ваша мысль стала ясной. Я в своё время много экспериментировал с тем, как получать замеры :)

То есть 2 микроконтроллера, которые синхронно в одной точке времени измеряют один величину тока, а другой - величину напряжения?

Существуют специализированные чипы для этого. Обычно это 2 АЦП + жестко зашитая математика + немножко памяти. связь с ведущим МК по уарту, ну либо по какому-нибудь из проышленных протоколов. Так делаются счетчики, ну и нормальные железки.

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

Так там еще трансформаторы напряжения стоят с фазовым искажением. Сами трансформаторы недешевые.


Я в своем открытом проекте ПЛК применяю другую схему для мониторинга потребления от сети. Вот такую:

Здесь сразу на выходе ток и напряжение в RMS, мгновенные значения тока и напряжения, активная и реактивная мощность, энергия, также те же значения, но усредненные за заданное время. Входные АЦП 24-битные. И еще есть алярмы по перегрузкам и по провалам напряжения. Работа чипа не зависит от микроконтроллера и не сбивается когда сбивается микроконтроллер. И гальваноизоляция серьезней и входной ток сенсора напряжения в 20 раз меньше.

Искажения трансфорсаторов постоянные и компенсируются калибровкой.

Подобные микросхемы конечно хороши, но тоже не из дешевых.

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

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

Достаточно использовать криво написанную библиотеку, чем не брезгуют "ардуинщики".

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

Это факт, сейчас к esp пишут библиотеки сразу одна для idf и arduino. У меня аж отношение к arduino поменялось)

Решение достойное, но при многоканальном варианте быстро растет стоимость.

Нужно было измерять ток по 8 каналам , без сертификации измерения, просто как показометр - сделали на трансформаторах тока.

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

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

По поводу программирования: вы программист? Я много работаю с микроконтроллерами и мне странно слышать о проблемах с производительностью ESP32 - там её хоть отбавляй.

Что вы такого поймете глядя на графики тока или напряжения снятые с низкой дискретностью и непонятными фазовыми искажениями? Подозреваю что ничего. Нужна аналитика в виде сложных фильтров, накоплений большого объема данных, оперирования большими файлами и быстрыми каналами передачи этих файлов. Из "миллиона вещей" хотелось бы узнать хотя бу одну полезную вещь без этого всего фарша.

А на это все у ESP просто нет памяти ни Flash, ни RAM. Да там и тактовой не хватит если в стиле ардуино все делать в одном цикле.

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

По поводу возможностей - а ну-ка в студию пример коммерческого счётчика с возможностью вывода формы тока и напряжения в сети в реальном времени. Сможете найти такой?

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

Вы вообще с ESP32 работали когда-нибудь?

Списываю ваше недоумение просто на вашу неопытность. Посмотрите сколько надо ресурсов чтобы просто сделать Хаброметр.
А это только базовая функциональность для IoT устройства. У вас же IoT? А то иначе на кой тут ставить ESP? И это еще был не TLS 1.3 и не было Bluetooth. И не было подключения к IoT облакам типа AWS или Azure. И не было бутлодера и OTA , прочих атрибутов IoT. И GUI очень аскетический, нет графических ресурсов типа битмапов.
Про запись , сохранение и манипуляции с данными в реальном времени с пары десятков датчиков даже молчу. И про интерфейсы полевых шин.тем более.
И вы тут про какую-то произвродительность ESP говорите. Да вы её сразу похороните как только начнете что-то подобное делать.

Спысываю ваше недоумение просто на вашу неопытность.

@Indemsys , ну вы даёте. Вы бы хоть поинтересовались с кем дискутируете. Хаброметр я разобрал по косточкам в статье:

https://habr.com/ru/articles/718254/

А полноценный веб-интерфейс с миллионом функций, в том числе многоканальным электроизмерителем, у меня работал ещё 10 лет назад на 8-битной Меге с 8 килобайтами оперативной памяти.

https://www.youtube.com/channel/UCzwiCsCitrMphSTIEr8It_w

(просто нужно проявлять немножко меньше снобизма по отношению к Ардуино и немножко больше практиковаться в программировании)

Так в пику вашему разбору я и сделал свой хаброметр. Чтобы показать все о чем вы там умалчиваете. И низкую юзабельность упрощенных решений.

Вы еще в школу ходили , когда я делал АОН-ы на 2 Кбайт RAM! на Z86.

Но это ни о чем не говорит. Времена другие.

Ну и прекрасно :) надо будет почитать вашу статью.

В бытовых условиях дома как правило косинус фи в районе 1.

Мои наблюдения говорят об обратном - включение мощных компьютеров с импульсными блоками питания или, например, мотора стиральной машины сильно корёжит осциллограммы тока и напряжения - см. скриншот выше.

А нечего ли посоветовать еще ближе к ардуинщикам ?

Платку типа: ESP32, внешний нормальный I2C-ADC 16...24bit со входными делителями (4...8 каналов), MicroSD, RTC, LCD, I2C x (3...5 шт), SPIx1, UARTx1, релейных выходов немного (2-3 шт), Li-ON батарейный backup, остаток пинов на IO входы\выходы (может через джамперы). И с кнопочкой глобального ВКЛ-ВЫКЛ.

Хе-хе... Мы тут уже десять лет ждём пока кто-нибудь из железячников сделает нормальный контроллер.

Я уже склоняюсь к мнению, что для себя нужно делать контроллер самому :)

I2C-ADC 16...24bit со входными делителями (4...8 каналов)

Скорости шины I2C хватит на нормальную скорость обработки?

Не всегда нужна огро...огромная скорость, особенно в комбайне, где куча разной периферии и неспешный алгоритм. А вот требования к точности АЦП если есть. Какого качества АЦП у ESP32 - многие знают.

Делать все это на одной плате мало смысла.
Все перечисленное есть в этой архитектуре и гораздо больше, но на одной плате это было бы избыточно дорого и не гибко. Многоплатная архитектура лучше использует объем, лучше защищена от EMI, дешевле в ремонте, дешевле в апгрейде. Ну и естественно, в таких архитектурах никак не может быть ESP в качестве главного микроконтроллера.

На заметку: архитектурно такие системы можно делать в парадигме контроллер - блоки расширения, а можно сделать линейку монолитных контроллеров со спектром возможностей от "малого к большому".

И вопрос: а почему нельзя использовать ESP32?

Я бы не говорил о блоках расширения. Поскольку в экосистемах на ESP ни о каких расширениях в 10 или 100 раз даже речи не идет. Просто у ESP нет достаточно гибкой внутренней шинной структуры чтобы делать большие расширения. Читайте про механизмы прямых обменов между периферией.
Я говорю о слоистой архитектуре с разными уровнями функциональности. Есть функциональность общая для всех решений - накопители, беспроводная связь, USB, голые АЦП, ЦАП, IO, RTC ... - это один слой (первая плата). Далее слой адаптации, где стоят схемы нормализации сигналов и крупные интерфейсы с микросхемами драйверов, зарядники и крупные DCDC конвертеры (вторая плата). И уже на вершине стоит прикладная плата с разъемами для внешний линий, клемниками, светодиодами, кнопками и проч.
Зоопарк эксклюзивных моноплат у которых только ядро одинаковое ни к чему хорошему не приведёт. В лучшем случае они быстро пропадут из продажи. В худшем там начнется кошмар ревизий где старый софт не будет подходить к новым ревизиям.

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

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

Мне не нравится разговор о продажах. Лучше всего сейчас продается оружие, любого качества. Я больше склонен к оценке того, что сейчас называется "устойчивость". А в концепции устойчивости не поощряется избыточный расход энергии на вещи не приносящие долговременной пользы. Вот эта плата с кучей датчиков, но не обеспеченная адекватным программным фреймворком кажется мне недостаточно устойчивой. Думаю, уже через год в этом же виде ее будет не найти в стоках.

Мои контроллеры живут столько, сколько поддерживатся производство их микроконтроллеров, т.е. около 10 лет.

А где они живут? Вы их где-то продаёте? Почём? Можно ссылку на магазин?

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

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

И USB-UART-конвертор тоже питание через джампер обязательно надо...для батарейного питания.

Компактный модуль измерения в форм-факторе автомата 2полюсного на рейку - выглядит более профессиональным решением, хоть тот же от Wirenboard, хоть китайские счётчики с RS485,

Зато каждый модуль независимо и синхронно считает все, остаётся лишь данные вынуть через интерфейс.

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

поскольку  ZMPT101B  все таки трансформатор то гальваническая развязка в схеме присутствует. Эта штука видимо популярна среди ардуинщиков и похоже "никто не жаловался". Для безопасности я бы обязательно налепил синей изоленты на ту часть дорожек где высокое напряжение может быть - их закоротить и коснуться легче всего.

По поводу модуля РОЕ.

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

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

Спасибо, будем иметь в виду.

Защита ЛАН порта имеется?

Посмотрел схему - нет. Значит пару раз подключат отключат ЛАН провод с питанием РОЕ и микросхеме придет конец. Больше 10 раз не выдерживают - проверено. Точно сгорит. Если повезет - то и с первого . :)

Насколько я понял, модули DP9700 это разработка компании SDaPo и своего рода стандарт - там множество моделей. Kincony использует эти модули в своих новых контроллерах.

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

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

Не модули а микросхемы лан.

Пришлось даже серийное устройство дорабатывать

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

Интересно чем все закончилось. Может опишите?

Не понял смысл вопроса, что закончилось? о чём вы?

История с защитой входов микросхемы ЛАН от импульсных больших токов и напряжений при коммутации провода ЛАН при наличии РОЕ.

Схемы для чего то рисовал вам, да и вы их просили.

Мне кажется вы меня перепутали с другим читателем - я схем не просил и даже не видел их.

Расскажите пожалуйста подробнее, какую защиту вы ставили?

А как тут ПДФ прикрепить ?

Делали защиту по этой схеме. Только обвязку конкретно вашей микросхемы PHY нужно брать из рекомендованных

вот конкретно для LAN7820 защита, она же и видна на фото. В следующей ревизии платы защита уже стояла на плате , а не в виде доработки.

А, стандартный ESD для дифлиний. А без защиты выходило из строя или просто решили сделать как надо?

А без защиты выходило из строя ....?

Да выходило из строя как писал выше передернешь ЛАН провод несколько раз при работающем РОЕ и микросхема ЛАН выходит из строя

А, стандартный ESD для дифлиний.

Начали читать боле подробно про РОЕ и защиту, нашли интересные статьи и рекомендации . Поэтому так и сделал. После это го проблема с выходом ЛАН микросхемы из строя больше не повторялась. Для этого коммутация производилась более 100раз в течении мин10, и так в течении дня несколько раз. Микросхема оставалась целой.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий