Собрал вариант с 4мя ардуинами на зелёной макетной плате, не заработало. Решил что где-то ошибся. Собрал 3 CJMCU-758 с одной ардуиной, тоже не идёт. Всё проверил, помыл ацетоном от флюса, работает какое-то время, потом в значениях показаний неадекват идёт , ардуина мигать диодом начинает и прошиваться не хочет в плате, которую собрал. Что-то не так делаю и пока не понял что.
дык... "помыл ацетоном". а надо было тонким слоем чего?
дык... "помыл ацетоном". а надо было тонким слоем чего?
Это другой технологический уровень. А мне надо по-проще и по-ремонто-пригоднее, т.к. самому обслуживать через 10 лет, когда забуду всё что делал. И чтобы заменить легко.
Похоже, дело было в паяльной пасте. Паяется с ней хорошо, но ардуина сбоит. Разумеется, состав не знаю и измерения её не полностью отмытых свойств не проводил.
3 х CJMCU-758 на ардуине нано работают. Уже проверяю прошиваемость ардуины на каждом этапе. Паяю на дырчатой зелёной плате канифольным припоем ПОС-61. Разводка проводами от витой пары .
Преимуществ CJMCU-758 перед SCT-013-000 30A не вижу, только усложнение разводки . Но уже есть и датчики и ящик металлический под них.
Пишу всё это в благодарность за подсказки и в этой теме, и в других темах на этом и других форумах. Ну и чтобы уесть каждого лично, кто бредом называл то о чём говорил, как-же без этого. :-)
Собрал вариант с 4мя ардуинами на зелёной макетной плате, не заработало. Решил что где-то ошибся. Собрал 3 CJMCU-758 с одной ардуиной, тоже не идёт. Всё проверил, помыл ацетоном от флюса, работает какое-то время, потом в значениях показаний неадекват идёт , ардуина мигать диодом начинает и прошиваться не хочет в плате, которую собрал. Что-то не так делаю и пока не понял что.
дык... "помыл ацетоном". а надо было тонким слоем чего?
Не уж то Фэрри? Он и пасту отмывает? Буду знать...
CJMCU-758 и ZMPT101B заработали. Основной проблемой было физическое крепление этих датчиков, очень неудобно сделано.
CJMCU-758 выбирается максимум и минимум значений за 1/50 секунды, их разность зависит от проходящего тока. Погрешность есть, но скорость важнее, в моей задаче.
ZMPT101B работает с примером из EmonLib , подбирается калибровочный коэффициент и положение подстроечного резистора на плате. Показания тоже с погрешностью и долго идёт процесс снятия показаний с 4х датчиков, что меня устраивает. Хотя, сейчас бы, наверное применил бы простые трансформаторы напряжения с выпрямителями.
Raspberry pi проблем пока не доставляет.
Вопрос.
Мне нужно отправить на 10-15м, 3 сигнала 0/1 ( запрет или разрешение работы ТЭНов , должно работать быстро и надёжно). Думаю это делать через цифровые I/O . Провод пойдёт в доме рядом с силовым кабелем 3х25А . Первое что пришло в голову, соединить цифровые пины ардуин проводом и подтянуть к питанию с каждой стороны 10к резистором. Потом подумал , что лучше перестраховаться и поставить преобразователь уровней с кажлой стороны, по 2 шт ( одним 5В -> 3.3В и другим обратно в 5В ) , если сгорит, то платка преобразователя уровней, которых много и они не дорогие. Возможно, приду к опторазвязке , но это усложнение и, возможно лишнее.
Одна оптопара по сравнению с двумя преобразователями - это усложнение?
iliarr - вы же, как обычно, уже все для себя решили. Ну так нафига спрашивать? :) - делайте как решили
Решил всё да не всё. По-ходу коррективы вношу, в поисках того что понравится с технической эстетики и будет работать.
Оптопар у меня нет, а преобразователи уровней есть. Живу за городом и вопрос доставки стоит актуально. Алиэкспресс возит до пятёрочки , но долго. Чип-дип , с его дикими ценами, мелочёвку там можно брать, но ехать надо. Вот и получается неоднозначный баланс что лучше и проще. А поскольку знаю и понимаю далеко не всё, спрашиваю. Ну и рассказываю, на случай, если кому-то полезно будет.
P82B715 заработала на 10-15м витой пары, с питанием ардуины по 2м жилам витой пары ( электролит и керамика на стороне ардуины ). Питание от БП 5.1В ( 50Вт ), от которого Raspberry pi питается. Напряжение на ардуине 4.8В. На 50м сигнального провода 0,4мм2 , в той-же схеме, напряжение на ардуине было 4.4В ( мало ).
Сделал второй вариант , рисунок ниже. Посмотрим как будет работать. Вторая сторона пока не готова. На сколько понимаю, основная проблема - это КЗ в силовом проводе, идущем рядом и соответствующие наводки.
2 ардуины , с датчиками и экран 2004 , напряжение по 2 проводам витой пары на 10-15м проседо до 4.3-4.4В. Пустил в параллель 1.5мм2 , напряжение стало почти 5В. Схема с питанием всего от одного БП 5.1В сейчас выглядит жизнеспособной.
Нашёл статью STM32 Arduino IDE . Стоит столько-же, работает быстрее Arduino, возможностей больше. Не надо думать о том что быстродействия АЦП или количества аналоговых выходов не хватает. Не пробовал. ESP32 тоже быстрей и возможностей больше, но не пошло у меня с ней, возможно, из-за кривых рук или моего злосчастного флюса.
P82B715 работает на сигнальном проводе ( 4 жилы по 0,4мм2 с напряжением до 250В ) 10-15м. Нравится мне P82B715, просто работает без ухищрений и "танцев", и позволяет не заботится об индуктивности проводов.
Вот сколько времени идёт формирование GET запроса у Ардуино через W5500 и получение ответа от относительно быстрого сервера по локальной сети? Я не знаю. А если Arduino заменить на STM32 и программировать её через Arduino IDE? Если 5-10 мс , Raspberry Pi становится не нужной и вся система работает по Ethernet с сервером из любого старого компьютера. W5500 едет .
Raspberry Pi , не смотря на то что работает хорошо и не доставляет проблем, сама по себе является усложнением т.к. своя ОС, нет SATA и надо переносить систему в RAM ( делается, но дополнительные сложности ) , и стоит версия 8G ( чтобы хватило RAM под систему ) совсем не дёшево.
Таких моментов много. Потому спрашиваю. Потому пишу свой опыт, т.к. ценных подсказок на этом форуме было очень много.
Да. Если бы я увидел фотки физического крепления датчиков, мне было бы гораздо проще, истратил бы меньше времени и денег.
У меня есть задачи, которые надо решить всё-равно как. Главное, чтобы было доступно финансово, не было бы зависимости от бренда или "специалистов за большие деньги" , и чтобы через 10 лет , забыв всё, смог бы без труда разобраться как починить или переделать то что сделаю сейчас.
Если я Вас раздражаю тем что не хочу вникать глубоко в технические сложности, а ищу другие работающие варианты , ну бывает и такое. Баланс своих приоритетов я рассказал.
Бак теплоаккумулятора 2м3 переделал, проверил и уже в доме стоит. Затащить большую железку 300кг в дом, за недорого, не такая и простая задача. Мне повезло, соседские строители - нормальные мужики, в шестером затащили ( я 6й но реально помощи от меня было мало т.к. у них слаженная бригада ). А вот печку 230 кг , в 8м затаскивали и было тяжело. Это к некрасивым высказываниям в этой теме про бак и прочее. Я за мир и добролюбие. :-)
Вот сколько времени идёт формирование GET запроса у Ардуино через W5500 и получение ответа от относительно быстрого сервера по локальной сети? Я не знаю. А если Arduino заменить на STM32 и программировать её через Arduino IDE?
это как раз пример, где СТМ32 не дает никакого выигрыша по скорости, потому что основное время в GET-запросе - это его передача по сети и ожидание ответа сервера, которые даже для "быстрого сервера" раз в 100 превышает время формирования
это как раз пример, где СТМ32 не дает никакого выигрыша по скорости, потому что основное время в GET-запросе - это его передача по сети и ожидание ответа сервера, которые обычно раз в 100 превышает время формирования
Про СТМ32 задумался, но в реализацию не запускаю т.к. и так работает.
Многие люди скупо выдают результат, думая что только это интересно окружающим. А бывает , что сам процесс достижения этого результата, не менее важен и интересен, просто, чтобы самому не повторять ошибки.
Сторона датчиков сейчас работает нормально по i2c. Надо повесить ящик и переделать силовую часть , чтобы электрическая сеть шла через переключатель сеть/генератор, собираюсь. И вот проблема сейчас, как на датчик напряжения завести провода от генератора. Если конкретнее, как в одну клемму всунуть 2,5-4мм2 и 0,4мм2. Существуют специальные "ушки" ( не помню как правильно называются ), но их у меня нет. И в датчике напряжения , винтовой зажим под тонкий провод. Итоговый результат из таких мелочей складывается, и если какой-то проводок отвалится или потеряет контакт, система не будет работать. Хотя, в теории, всё примитивно.
Поставил, это был первый вариант, который не заработал, предположительно, из-за флюса.
С доступной мне технологией, там очень близко получается крепление к стойки к сигнальным и 5В/GND контактам. Крепление в правом верхнем углу датчика. находится близко к резистору, через который 220В на трансформатор подаётся. Отверстие у датчика D2 , просто купить я смог винтики только D3 , рассверливал. Могло работать, но напряжённо. Когда между 220В и 5В/GND миллиметр - это не дело. Ставил изолятор/прокладку, но не особо. Это недостаток реализации датчика.
На фотках то что сейчас, после выпаивания части стоек ,но понятно как и что было.
Только , это не релюшки, а трансформаторы напряжения. :-)
По правилам разводки плат, между низковольтной и высоковольтной частью не только зазор ставят побольше, но и прорезь фрезеруют, чтобы ток не потек по поверхности платы, если вдруг она грязная. Если на китайском модуле 5в и 220в на расстоянии 1мм - такой модуль использовать нельзя
По правилам разводки плат, между низковольтной и высоковольтной частью не только зазор ставят побольше, но и прорезь фрезеруют, чтобы ток не потек по поверхности платы, если вдруг она грязная. Если на китайском модуле 5в и 220в на расстоянии 1мм - такой модуль использовать нельзя
Значит, ZMPT101B можно использовать только очень аккуратно и на пластиковых ножках D2.
Там не 5В и 220В рядом, там отверстие крепления и 220В рядом совсем. А дальше, уже самоделкины, как я, выкручиваются как могут.
И они меняются, хотя условия вокруг стабильны. Мелкие изменения можно объяснить погрешностью. Но расхождения более 1 градуса, мне непонятны совсем. Датчики, разумеется, китайские с алиэкспресс.
DS2482-800 ни как не захотела работать на одном канале i2c с ардуинами. Думал и провод длинный и что угодно. Перепробовал - нет. Сейчас на разных каналах работают.
DS2482-800 легко заработал с NodeJS только через owfs, которая умеет с разными каналами i2c на raspi работать. Библиотеки NodeJS пока только под стандартный ( первый или нулевой ) заточены. Работает не быстро ( можно смириться ).
Подумываю о возврате к концепции, которую когда-то посчитал излишне громоздкой и затратной:
- Данные идут через Ethernrt ( W5500 )
- Температура с терморезисторов через АЦП ( их откалибровать можно , хоть и не абсолютно точно, но под схожие показания между собой )
- Ток как сейчас, напряжение либо как сейчас ( ещё одна ардуина с W5500 для сетевого взаимодействия ) , либо напряжение измерять через трансформаторы напряжения с выпрямителем и страхующим стабилитроном.
W5500 не приехали, уже неделю на таможне лежат. Когда-то за 2 часа пропускали. Проверить на практике пока не могу.
Думал даже с NodeJS на Python или GoLang перейти , но уж очень здорово когда и серверная и браузерная части на одном языке пишутся. Ещё не знаю.
Тема выходит за рамки приоретизатора на нагрузок. Создавать новую по связи модулей и логике работы умного дома, много у меня недопонимания и мало хороших ответов пока.
i2c через удлинители работает хуже чем мне бы хотелось. Т.е. работает, но есть нюансы.
Разобрался с АЦП ESP32 , поставил большой электролит и керамику на 3.3В , 1мкФ керамика входы АЦП на землю, и примитивный цифровой фильтр ( среднее по 10 измерениям идёт результатом ) , синусоида получилась ровной с шумом до 10-15 ( на 12 битах АЦП), до этого, выплески шума и больше 100 бывали. В какой-то момент, вывел в консоль значения измерений, потом график в табличном редакторе показал картинку и многое стало понятно.
На 20 мс ( 1 период синусоиды ) идёт примерно 550 считываний 3х каналов АЦП.
Время отправки по ethernet не знаю ( таможня w5500 не пускает ), по wifi ESP32 сейчас стабильно выдаёт 57-60мс ( измерение и обработка 3х каналов АЦП - 20мс , формирование GET запроса, отправка на сервер, получение ответа от него - 37-40мс ) . Стабильность работы пока хорошая, т.е. просто работает.
"Герметичный " DS18B20 в стальной колбе на проводе, опущенный в воду, через какое-то время выдаёт ошибки и перестаёт работать. После извлечения из воды, ситуация как-то улучшается. 1wire работает , но нравится не очень ( время опроса, помехи , точность DS18B20). Приехали 10К терморезисторы ,попробую с ними.
Ещё, из практики, теплоаккумулятор ( стальной ящик без верха с листами XPPS , плавающими на поверхности воды) сейчас работает как большой конвектор. Работает. 150м2 без дверей обогревает, хоть и не особо комфортно ( неравномерное распределение тепла ).
EPS32, на который плевался, после более вдумчивого подхода, пока работает. Очень нравится избыточная производительность , в сравнении с arduino, и встроенный wifi. Сейчас, основная сложность - это разводка на платах , физическое крепление компонентов системы и количество проводов. Да, это делается, но проще этого не делать.
Подключил механические реле к ESP32, сделал передачу данных между ESP32 и сервером по http , стал тестировать. Низкий/высокий уровень управления реле ( там джамперы переключения) ,либо не грузится, либо включает реле при загрузке ( недопустимо т.к. включается полная нагрузка, при стечении обстоятельств, выключаются входные автоматы ) , и не грузится при некотором положении реле ( может быть любым в зависимости от их состояния до внезапного отключения электричества ).
Датчик тока на ESP32 и SCT-013-030 , с шумами справился, всё хорошо, по http и wifi отдаёт за 60мс с учётом измерений ( 20мс ) и передачей туда, обработкой сервером и обратно ( 40мс ). Всё хорошо , радуюсь. В какой-то момент, это значение возрастает до 5020мс, при той-же серверной части , уровне сигнала wifi, помехах и загрузке. Разбираться не стал.
w5500 на таможне, хотя другая посылка (терморезисторы), заказанная позже и так-же, уже пришла.
6 терморезисторов 10К ( 5% ) с балансами 10К ( погрешность не лучше ), к Arduino на одной плате в ряд, без измерений номиналов и калибровки, просто из статьи код, разница показаний 0,6 градусов. Напомню, что 8 DS18B20 в схожих условиях, выдавали разницу до 1 градуса. Если калибровать терморезисторы , точность может быть много лучше.
Те-же реле, что и к ESP32 подключал, подключил к Arduino. Управление высоким уровнем. Ни чего не дёргается при загрузке, просто включается и выключается , как задано.
Сейчас делаю вариант: Arduino mega pro : 6 каналов терморезисторы , 12 каналов реле , 3 канала измерение тока, 4 канала измерение напряжения ( отдельная Arduino nano ( 4 канала ZMPT101B , 4 канала ЦАП выпрямленных результатов идут на Mega )) . Mega по i2c к Raspberry Pi . Остальные компоненты, не критичные к времени реакции, наверное, будут по WiFi и Ethernet к Raspberry Pi .
С ЦАП у Ардуино, ошибся по-незнанию. Не ЦАП это , а ШИМ и то как хотел, не работает.
Сейчас реализую централизованную схему : Мега измеряет ток на 3х фазах и напряжение на 3х фазах + ввод генератора ( на 2х периодах синусоиды, скорости и точности хватает ). Мега подчинённый у Raspberry по i2c ( без удлиннителей ), управляет 12 каналами ТЭНов ( 9 основных и 3 запасные т.к. бак сливать для замены ТЭН не простое занятие ). Температура через терморезисторы ( понравились больше чем DS18B20 , и точность, и время, и простота ). Дальше 17-18 каналов на сервоприводы ( тёплый пол и контуры Бани Маслова ), ещё 3 силовых канала на парогенератор в баню.
Надоело уже варианты перебирать. Везде нюансы.
Сварил из остатков металла 3мм ящик электрический. Начитавшись отзывов, взял 5 кг электродов АНО-21 , не получалось ими бак варить ( варил МР-3 ) , МР-3 кончились, подумал, что ящик электрический не особо ответственно по сварке, стал АНО-21 варить. Квалификация уже есть какая-то, начинаю понимать почему их профессионалы хвалят.
Дальше надо придумать как крепить компоненты внутри электрического ящика, желательно так, чтобы переделывать можно бы было без его съёма со стены. И дальше тестировать в деле, а не на стенде.
Будут подсказки или матюки ( кроме рассказов о моём бреде, уж извините, это слишком т.к. на деле и практике работает ), рассказывайте. Я наступаю на стандартные грабли, учусь, исправляю, а это всё не ново и известно. Затем и писал на форуме, чтобы не наступать на них, воспользовавшись чужим опытом, ну и сам о своих граблях рассказываю, может , кто-то не наступит.
Если кому-то интересно, приоретизатор нагрузок 3 фазы на 12 каналов, заработал .
Сейчас это :
- Arduino nano : 3 фазы измерение тока , 3 фазы измерения напряжения, 12 каналов управления сдвоенными реле. К ТЭНам идёт 7 проводов 3х2.5 ( 6 проводов 2 фазы и земля, один провод 2 нейтрали и земля).
- Arduino nano : RTC , ethernet ( W5500 , связь с сервером по http ), LCD2004 , i2c к первой arduino ( получение тока, напряжения, состояние включенных ТЭНов, отдача можно/нельзя включать ТЭНы ).
Основной проблемой было выбор концепции и физическое крепление/разводка. От rasbberry pi по i2c отказался из-за шлейфа соединения, библиотек NodeJS ( есть, работают, но усложнение), и зависимости от ОС ( микроконтроллер надёжнее ).
Когда есть понимание "что хочу" и "На чём реализую" , всё действительно просто, с кучей нюансов, несложных в решении.
Серверная часть ещё не запущена , но это уже к умному дому относится больше. Предстоят доработки, но уже работает.
Собрал вариант с 4мя ардуинами на зелёной макетной плате, не заработало. Решил что где-то ошибся. Собрал 3 CJMCU-758 с одной ардуиной, тоже не идёт. Всё проверил, помыл ацетоном от флюса, работает какое-то время, потом в значениях показаний неадекват идёт , ардуина мигать диодом начинает и прошиваться не хочет в плате, которую собрал. Что-то не так делаю и пока не понял что.
Это другой технологический уровень. А мне надо по-проще и по-ремонто-пригоднее, т.к. самому обслуживать через 10 лет, когда забуду всё что делал. И чтобы заменить легко.
Похоже, дело было в паяльной пасте. Паяется с ней хорошо, но ардуина сбоит. Разумеется, состав не знаю и измерения её не полностью отмытых свойств не проводил.
3 х CJMCU-758 на ардуине нано работают. Уже проверяю прошиваемость ардуины на каждом этапе. Паяю на дырчатой зелёной плате канифольным припоем ПОС-61. Разводка проводами от витой пары .
Преимуществ CJMCU-758 перед SCT-013-000 30A не вижу, только усложнение разводки . Но уже есть и датчики и ящик металлический под них.
Пишу всё это в благодарность за подсказки и в этой теме, и в других темах на этом и других форумах. Ну и чтобы уесть каждого лично, кто бредом называл то о чём говорил, как-же без этого. :-)
Собрал вариант с 4мя ардуинами на зелёной макетной плате, не заработало. Решил что где-то ошибся. Собрал 3 CJMCU-758 с одной ардуиной, тоже не идёт. Всё проверил, помыл ацетоном от флюса, работает какое-то время, потом в значениях показаний неадекват идёт , ардуина мигать диодом начинает и прошиваться не хочет в плате, которую собрал. Что-то не так делаю и пока не понял что.
Не уж то Фэрри? Он и пасту отмывает? Буду знать...
Возможно, приду к опторазвязке , но это усложнение и, возможно лишнее.
Одна оптопара по сравнению с двумя преобразователями - это усложнение?
iliarr - вы же, как обычно, уже все для себя решили. Ну так нафига спрашивать? :) - делайте как решили
Одна оптопара по сравнению с двумя преобразователями - это усложнение?
iliarr - вы же, как обычно, уже все для себя решили. Ну так нафига спрашивать? :) - делайте как решили
Решил всё да не всё. По-ходу коррективы вношу, в поисках того что понравится с технической эстетики и будет работать.
Оптопар у меня нет, а преобразователи уровней есть. Живу за городом и вопрос доставки стоит актуально. Алиэкспресс возит до пятёрочки , но долго. Чип-дип , с его дикими ценами, мелочёвку там можно брать, но ехать надо. Вот и получается неоднозначный баланс что лучше и проще. А поскольку знаю и понимаю далеко не всё, спрашиваю. Ну и рассказываю, на случай, если кому-то полезно будет.
P82B715 заработала на 10-15м витой пары, с питанием ардуины по 2м жилам витой пары ( электролит и керамика на стороне ардуины ). Питание от БП 5.1В ( 50Вт ), от которого Raspberry pi питается. Напряжение на ардуине 4.8В. На 50м сигнального провода 0,4мм2 , в той-же схеме, напряжение на ардуине было 4.4В ( мало ).
Сделал второй вариант , рисунок ниже. Посмотрим как будет работать. Вторая сторона пока не готова. На сколько понимаю, основная проблема - это КЗ в силовом проводе, идущем рядом и соответствующие наводки.
2 ардуины , с датчиками и экран 2004 , напряжение по 2 проводам витой пары на 10-15м проседо до 4.3-4.4В. Пустил в параллель 1.5мм2 , напряжение стало почти 5В. Схема с питанием всего от одного БП 5.1В сейчас выглядит жизнеспособной.
Вот что получается на настоящий момент:
Нашёл статью STM32 Arduino IDE . Стоит столько-же, работает быстрее Arduino, возможностей больше. Не надо думать о том что быстродействия АЦП или количества аналоговых выходов не хватает. Не пробовал. ESP32 тоже быстрей и возможностей больше, но не пошло у меня с ней, возможно, из-за кривых рук или моего злосчастного флюса.
P82B715 работает на сигнальном проводе ( 4 жилы по 0,4мм2 с напряжением до 250В ) 10-15м. Нравится мне P82B715, просто работает без ухищрений и "танцев", и позволяет не заботится об индуктивности проводов.
... тихо сам с собою...
... тихо сам с собою...
Выдаю накопленный опыт.
Вот сколько времени идёт формирование GET запроса у Ардуино через W5500 и получение ответа от относительно быстрого сервера по локальной сети? Я не знаю. А если Arduino заменить на STM32 и программировать её через Arduino IDE? Если 5-10 мс , Raspberry Pi становится не нужной и вся система работает по Ethernet с сервером из любого старого компьютера. W5500 едет .
Raspberry Pi , не смотря на то что работает хорошо и не доставляет проблем, сама по себе является усложнением т.к. своя ОС, нет SATA и надо переносить систему в RAM ( делается, но дополнительные сложности ) , и стоит версия 8G ( чтобы хватило RAM под систему ) совсем не дёшево.
Таких моментов много. Потому спрашиваю. Потому пишу свой опыт, т.к. ценных подсказок на этом форуме было очень много.
Да. Если бы я увидел фотки физического крепления датчиков, мне было бы гораздо проще, истратил бы меньше времени и денег.
У меня есть задачи, которые надо решить всё-равно как. Главное, чтобы было доступно финансово, не было бы зависимости от бренда или "специалистов за большие деньги" , и чтобы через 10 лет , забыв всё, смог бы без труда разобраться как починить или переделать то что сделаю сейчас.
Если я Вас раздражаю тем что не хочу вникать глубоко в технические сложности, а ищу другие работающие варианты , ну бывает и такое. Баланс своих приоритетов я рассказал.
Бак теплоаккумулятора 2м3 переделал, проверил и уже в доме стоит. Затащить большую железку 300кг в дом, за недорого, не такая и простая задача. Мне повезло, соседские строители - нормальные мужики, в шестером затащили ( я 6й но реально помощи от меня было мало т.к. у них слаженная бригада ). А вот печку 230 кг , в 8м затаскивали и было тяжело. Это к некрасивым высказываниям в этой теме про бак и прочее. Я за мир и добролюбие. :-)
Вот сколько времени идёт формирование GET запроса у Ардуино через W5500 и получение ответа от относительно быстрого сервера по локальной сети? Я не знаю. А если Arduino заменить на STM32 и программировать её через Arduino IDE?
это как раз пример, где СТМ32 не дает никакого выигрыша по скорости, потому что основное время в GET-запросе - это его передача по сети и ожидание ответа сервера, которые даже для "быстрого сервера" раз в 100 превышает время формирования
это как раз пример, где СТМ32 не дает никакого выигрыша по скорости, потому что основное время в GET-запросе - это его передача по сети и ожидание ответа сервера, которые обычно раз в 100 превышает время формирования
Про СТМ32 задумался, но в реализацию не запускаю т.к. и так работает.
Многие люди скупо выдают результат, думая что только это интересно окружающим. А бывает , что сам процесс достижения этого результата, не менее важен и интересен, просто, чтобы самому не повторять ошибки.
Сторона датчиков сейчас работает нормально по i2c. Надо повесить ящик и переделать силовую часть , чтобы электрическая сеть шла через переключатель сеть/генератор, собираюсь. И вот проблема сейчас, как на датчик напряжения завести провода от генератора. Если конкретнее, как в одну клемму всунуть 2,5-4мм2 и 0,4мм2. Существуют специальные "ушки" ( не помню как правильно называются ), но их у меня нет. И в датчике напряжения , винтовой зажим под тонкий провод. Итоговый результат из таких мелочей складывается, и если какой-то проводок отвалится или потеряет контакт, система не будет работать. Хотя, в теории, всё примитивно.
а релюшки чего на стойки не поставил?
а релюшки чего на стойки не поставил?
Поставил, это был первый вариант, который не заработал, предположительно, из-за флюса.
С доступной мне технологией, там очень близко получается крепление к стойки к сигнальным и 5В/GND контактам. Крепление в правом верхнем углу датчика. находится близко к резистору, через который 220В на трансформатор подаётся. Отверстие у датчика D2 , просто купить я смог винтики только D3 , рассверливал. Могло работать, но напряжённо. Когда между 220В и 5В/GND миллиметр - это не дело. Ставил изолятор/прокладку, но не особо. Это недостаток реализации датчика.
На фотках то что сейчас, после выпаивания части стоек ,но понятно как и что было.
Только , это не релюшки, а трансформаторы напряжения. :-)
По правилам разводки плат, между низковольтной и высоковольтной частью не только зазор ставят побольше, но и прорезь фрезеруют, чтобы ток не потек по поверхности платы, если вдруг она грязная. Если на китайском модуле 5в и 220в на расстоянии 1мм - такой модуль использовать нельзя
Значит, ZMPT101B можно использовать только очень аккуратно и на пластиковых ножках D2.
Там не 5В и 220В рядом, там отверстие крепления и 220В рядом совсем. А дальше, уже самоделкины, как я, выкручиваются как могут.
8 датчиков DS18B20 , подключены каждый к своему каналу DS2482-800 , источников нагрева рядом нет.
Показания датчиков: T0: 12.1875, T1: 10.875, T2: 11.0625, T3: 10.875, T4: 12.125, T5: 12.125, T6: 11.1875, T7: 11.5
И они меняются, хотя условия вокруг стабильны. Мелкие изменения можно объяснить погрешностью. Но расхождения более 1 градуса, мне непонятны совсем. Датчики, разумеется, китайские с алиэкспресс.
DS2482-800 ни как не захотела работать на одном канале i2c с ардуинами. Думал и провод длинный и что угодно. Перепробовал - нет. Сейчас на разных каналах работают.
DS2482-800 легко заработал с NodeJS только через owfs, которая умеет с разными каналами i2c на raspi работать. Библиотеки NodeJS пока только под стандартный ( первый или нулевой ) заточены. Работает не быстро ( можно смириться ).
Подумываю о возврате к концепции, которую когда-то посчитал излишне громоздкой и затратной:
- Данные идут через Ethernrt ( W5500 )
- Температура с терморезисторов через АЦП ( их откалибровать можно , хоть и не абсолютно точно, но под схожие показания между собой )
- Ток как сейчас, напряжение либо как сейчас ( ещё одна ардуина с W5500 для сетевого взаимодействия ) , либо напряжение измерять через трансформаторы напряжения с выпрямителем и страхующим стабилитроном.
W5500 не приехали, уже неделю на таможне лежат. Когда-то за 2 часа пропускали. Проверить на практике пока не могу.
Думал даже с NodeJS на Python или GoLang перейти , но уж очень здорово когда и серверная и браузерная части на одном языке пишутся. Ещё не знаю.
Тема выходит за рамки приоретизатора на нагрузок. Создавать новую по связи модулей и логике работы умного дома, много у меня недопонимания и мало хороших ответов пока.
i2c через удлинители работает хуже чем мне бы хотелось. Т.е. работает, но есть нюансы.
Разобрался с АЦП ESP32 , поставил большой электролит и керамику на 3.3В , 1мкФ керамика входы АЦП на землю, и примитивный цифровой фильтр ( среднее по 10 измерениям идёт результатом ) , синусоида получилась ровной с шумом до 10-15 ( на 12 битах АЦП), до этого, выплески шума и больше 100 бывали. В какой-то момент, вывел в консоль значения измерений, потом график в табличном редакторе показал картинку и многое стало понятно.
На 20 мс ( 1 период синусоиды ) идёт примерно 550 считываний 3х каналов АЦП.
Время отправки по ethernet не знаю ( таможня w5500 не пускает ), по wifi ESP32 сейчас стабильно выдаёт 57-60мс ( измерение и обработка 3х каналов АЦП - 20мс , формирование GET запроса, отправка на сервер, получение ответа от него - 37-40мс ) . Стабильность работы пока хорошая, т.е. просто работает.
"Герметичный " DS18B20 в стальной колбе на проводе, опущенный в воду, через какое-то время выдаёт ошибки и перестаёт работать. После извлечения из воды, ситуация как-то улучшается. 1wire работает , но нравится не очень ( время опроса, помехи , точность DS18B20). Приехали 10К терморезисторы ,попробую с ними.
Ещё, из практики, теплоаккумулятор ( стальной ящик без верха с листами XPPS , плавающими на поверхности воды) сейчас работает как большой конвектор. Работает. 150м2 без дверей обогревает, хоть и не особо комфортно ( неравномерное распределение тепла ).
EPS32, на который плевался, после более вдумчивого подхода, пока работает. Очень нравится избыточная производительность , в сравнении с arduino, и встроенный wifi. Сейчас, основная сложность - это разводка на платах , физическое крепление компонентов системы и количество проводов. Да, это делается, но проще этого не делать.
Пока , вроде, всё. :-)
Подключил механические реле к ESP32, сделал передачу данных между ESP32 и сервером по http , стал тестировать. Низкий/высокий уровень управления реле ( там джамперы переключения) ,либо не грузится, либо включает реле при загрузке ( недопустимо т.к. включается полная нагрузка, при стечении обстоятельств, выключаются входные автоматы ) , и не грузится при некотором положении реле ( может быть любым в зависимости от их состояния до внезапного отключения электричества ).
Датчик тока на ESP32 и SCT-013-030 , с шумами справился, всё хорошо, по http и wifi отдаёт за 60мс с учётом измерений ( 20мс ) и передачей туда, обработкой сервером и обратно ( 40мс ). Всё хорошо , радуюсь. В какой-то момент, это значение возрастает до 5020мс, при той-же серверной части , уровне сигнала wifi, помехах и загрузке. Разбираться не стал.
w5500 на таможне, хотя другая посылка (терморезисторы), заказанная позже и так-же, уже пришла.
6 терморезисторов 10К ( 5% ) с балансами 10К ( погрешность не лучше ), к Arduino на одной плате в ряд, без измерений номиналов и калибровки, просто из статьи код, разница показаний 0,6 градусов. Напомню, что 8 DS18B20 в схожих условиях, выдавали разницу до 1 градуса. Если калибровать терморезисторы , точность может быть много лучше.
Те-же реле, что и к ESP32 подключал, подключил к Arduino. Управление высоким уровнем. Ни чего не дёргается при загрузке, просто включается и выключается , как задано.
Сейчас делаю вариант: Arduino mega pro : 6 каналов терморезисторы , 12 каналов реле , 3 канала измерение тока, 4 канала измерение напряжения ( отдельная Arduino nano ( 4 канала ZMPT101B , 4 канала ЦАП выпрямленных результатов идут на Mega )) . Mega по i2c к Raspberry Pi . Остальные компоненты, не критичные к времени реакции, наверное, будут по WiFi и Ethernet к Raspberry Pi .
С ЦАП у Ардуино, ошибся по-незнанию. Не ЦАП это , а ШИМ и то как хотел, не работает.
Сейчас реализую централизованную схему : Мега измеряет ток на 3х фазах и напряжение на 3х фазах + ввод генератора ( на 2х периодах синусоиды, скорости и точности хватает ). Мега подчинённый у Raspberry по i2c ( без удлиннителей ), управляет 12 каналами ТЭНов ( 9 основных и 3 запасные т.к. бак сливать для замены ТЭН не простое занятие ). Температура через терморезисторы ( понравились больше чем DS18B20 , и точность, и время, и простота ). Дальше 17-18 каналов на сервоприводы ( тёплый пол и контуры Бани Маслова ), ещё 3 силовых канала на парогенератор в баню.
Надоело уже варианты перебирать. Везде нюансы.
Сварил из остатков металла 3мм ящик электрический. Начитавшись отзывов, взял 5 кг электродов АНО-21 , не получалось ими бак варить ( варил МР-3 ) , МР-3 кончились, подумал, что ящик электрический не особо ответственно по сварке, стал АНО-21 варить. Квалификация уже есть какая-то, начинаю понимать почему их профессионалы хвалят.
Дальше надо придумать как крепить компоненты внутри электрического ящика, желательно так, чтобы переделывать можно бы было без его съёма со стены. И дальше тестировать в деле, а не на стенде.
Будут подсказки или матюки ( кроме рассказов о моём бреде, уж извините, это слишком т.к. на деле и практике работает ), рассказывайте. Я наступаю на стандартные грабли, учусь, исправляю, а это всё не ново и известно. Затем и писал на форуме, чтобы не наступать на них, воспользовавшись чужим опытом, ну и сам о своих граблях рассказываю, может , кто-то не наступит.
Если кому-то интересно, приоретизатор нагрузок 3 фазы на 12 каналов, заработал .
Сейчас это :
- Arduino nano : 3 фазы измерение тока , 3 фазы измерения напряжения, 12 каналов управления сдвоенными реле. К ТЭНам идёт 7 проводов 3х2.5 ( 6 проводов 2 фазы и земля, один провод 2 нейтрали и земля).
- Arduino nano : RTC , ethernet ( W5500 , связь с сервером по http ), LCD2004 , i2c к первой arduino ( получение тока, напряжения, состояние включенных ТЭНов, отдача можно/нельзя включать ТЭНы ).
Основной проблемой было выбор концепции и физическое крепление/разводка. От rasbberry pi по i2c отказался из-за шлейфа соединения, библиотек NodeJS ( есть, работают, но усложнение), и зависимости от ОС ( микроконтроллер надёжнее ).
Когда есть понимание "что хочу" и "На чём реализую" , всё действительно просто, с кучей нюансов, несложных в решении.
Серверная часть ещё не запущена , но это уже к умному дому относится больше. Предстоят доработки, но уже работает.
С наступающим Новым Годом!
Система работает. Есть недостатки с программной частью ( нет времени сделать как надо ).
Резистивные датчики пляшут как хотят. В причине не разбирался. В arduino и esp32 сбоев не было.