Pull to refresh

Comments 46

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

У меня еще вопрос - а вы лично вот на практике какие уже IoT устройства смогли интегрировать в свою систему? Почему именно эта тематика вас заинтерисовала? У вас свой дом и вы для себя нашли практическую ценность или это больше как хобби и желание попробовать что то новое?

Спасибо за отзыв. И да, у меня свой частный дом и это уже третий вариант создания умного дома, правда еще не законченный до конца. Кроме того у меня есть еще проекты  IoT устройств, если интересно откройте на github мою страничку: https://github.com/OldIngineer

В тему. Как раз ковыряем CAN на плате Liligo T-CAN485.

На схеме много странностей есть:
ESD-защита VD8,9 почему-то защищает RXD и TXD, а не CANH и CANL;
VT3,4 всегда включены;
джамперы адреса замыкают сигналы SPI на землю;
чтобы включить оптрон DA3, не жалко взять 10 mA RMS от 220 В.

Она точно работает?

"Как раз ковыряем CAN на плате Liligo T-CAN485. "
Так за 4 года его уже расковыряли по самое нихочу.

Я так понял вопросы по моей схеме.

Диоды VD8, VD9 защищают контроллер ESP32. А интерфейсная микросхема SIT1050 внутреннею защиту по выходам CANH и CANL.

Полевые транзисторы c p-каналом VT3, VT4 в исходный момент закрыты, так как напряжение затвор-исток нулевое.

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

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

Диоды VD8, VD9 защищают контроллер ESP32

Защищают от чего? И если шина CAN двухпроводная, и питание разных устройств друг-от-друга изолировано (не как в тестировании по-быстрому) , то что-то должно ограничивать допустимое синфазное напряжение на SIT1050.

колодка адреса используется только на тех устройствах где не устанавливается модуль Ethernet

Понял. Сам прочитал невнимательно.

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

"Пользователь" и "перепайка SMD-резисторов" - несовместимые вещи ИМХО. Я к тому, что греть каждый такой контроллер лишними 2 W от жирных резисторов - это расточительно. Оптрону для срабатывания достаточно тока раз в 10 меньше.

В моем случае питание для всех устройств сети одно и интерфейсная микросхема SIT1050 не имеет гальванической развязки. А диоды VD8, VD9 защищают контроллер ESP32 от коротких импульсов по напряжению по входам.

То есть, вы предлагаете кроме сигнала ещë и низковольтное питание между контроллерами прокладывать?

Да и есть даже специальный 4-х проводный кабель для этого.

А с ключами, если перерисовать схему по классике, чтобы большее напряжение было выше на картинке, получается так

Напряжение затвор-исток у верхних ключей около 6-7 V всегда. Либо я ошибся, либо выложенная версия схемы нерабочая.

Ваша схема действительно не рабочая из-за диода в цепи выходного транзистора.

В моей схеме входной транзистор в исходном состоянии закрыт, так как на вход подается сигнал 3В и напряжение затвор-исток около 0В, поэтому ток через него не течет и выходной транзистор тоже оказывается закрытым так как из-за напряжения 12В подаваемого резистором на затвор потенциал затвор-исток нулевой.

Ваша схема действительно не рабочая

Это не моя схема. Я просто перерисовал вашу цепочку R20 R18 VT1 R36 R35 VT4 VD13. Я надеюсь, не ошибся.

В моей схеме входной транзистор в исходном состоянии

Закрыт - это да. Но диод между стоком и истоком включëн "из коробки, бесплатно". У p-канального мосфета AO3401 ведь нет отдельной четвëртой ноги, канал соединëн с истоком.

Действительно странная идея)

Обычно, все используют связку n-p транзисторов, особо "упорные" оптрон ставят. Схема же с двумя p-channel, как здесь, работать не будет

Да, как минимум, так

А вот куда там оптрон вставить, я даже не представляю.

Да, действительно в схеме ошибка. Спасибо за внимательность, исправил.

Если вам нужен OC/OD выход - выкиньте левую часть схемы. N-канальнысм транзистором можно управлять напрямую с контроллера

микросхема SIT1050 внутреннею защиту по выходам CANH и CANL.

Там +-40В по входу заявлено, какая защита?

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

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

Программа есть, она работает. Но я ее еще не выложил. Собираюсь в ближайшее время написать новую статью по программе, а также выложить ее в github.

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

Да, пенсионер за 10000 руб в месяц. Кнопочный телефон подойдёт.

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

по зигби 

вообще так делают китайский умный дом. нужен еще китайских шлюз zigbee wifi . и zigbee скорее всего только от того же производителя И китайское облако где это будет крутиться

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

Предыдущих статей не чинал, но хочу задать вопрос: чем обоснован выбор CAN, а не RS-485/Modbus ? Ведь всякого рода датчиков и плат управления с интерфейсом Modbus на несколько порядков больше и ценник на них ниже чем на CAN. Есть какое-то простое обоснование выбору CAN ?

У себя на фазенде я подключил все датчик через 1-Wire к RPi4. На Pi простой перловый скрипт делает регулярный опрос датчиков и скидывает данные через HTTPS запросы типа POST на сервер (в Postgres), где они обрабатываются и визуализируются простыми CGI скриптами. На всё-провсе ушло два дня. Пришлось вынужденно заняться этой темой в позапрошлом году после того, как из-за морозов ниже -35С у меня остановился газовый котел и все нафиг замерзло. Теперь весь дом мониторится, визуализируется и рассылаются оповещалки по e-mail. :-)

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

Еще раз повторюсь: CAN по отношению к RS-485 хорош тем, что работает на принципе равнозначности членов (контроллеров) сети, что позволяет работать каждому узлу или части сети автономно без главного устройства. А также возможна передача функции обмена данными с внешней сетью любому участнику этой сети.

Спасибо. Тогда еще вопрос: по каким проводам Вы гоняете CAN внутри дома ?

Изначально, уже давно при постройке дома я заложил под штукатурку Ethernet кабель (4 витые пары) так до сих пор ими и пользуюсь. Одна пара сигнал, две соединены параллельно это для питания и одна пара резерв.

У себя на фазенде я подключил все датчик через 1-Wire к RPi4. На Pi простой перловый скрипт делает регулярный опрос датчиков и скидывает данные через HTTPS запросы типа POST на сервер (в Postgres), где они обрабатываются и визуализируются простыми CGI скриптами. На всё-провсе ушло два дня. Пришлось вынужденно заняться этой темой в позапрошлом году после того, как из-за морозов ниже -35С у меня остановился газовый котел и все нафиг замерзло. Теперь весь дом мониторится, визуализируется и рассылаются оповещалки по e-mail. :-)

Вы используете целую RPi4 Для банального мониторинга и при этом ничем не управляете? Это же как минимум неэффективно! Ну вот не пришла SMS или почта (самый бессмысленный способ оповещения) и все снова замерзло, потому что вы не приехали! А все потому, что неэффективно используется оборудование. Вернее оно вообще не используется. Честно сказать, не слышал про perl скрипты уже очень долго, тем более для автоматизации.

  1. На Pi я могу писать перловые скрипты, агрегировать данные и формировать единый HTTPS запрос. К тому же это не единственная её задача. Через неё я управляю системой видеонаблюдения, да и вообще иметь Unix хост в доме весьма полезная штука. :)

  2. Оповещения не придут только если сдохнет мой почтовый сервер или база данных, но этого незаметить достаточно сложно. Система оповещения уcтроена так, что если обновления данных в базе по какому либо датчику не произошло в течении 5 минут, то будет отослано оповещение. Оповещения шлются до тех пор, пока я не отштырю галку или не устраню проблемы с датчиком (налажу поставку обновлений данных). Я уже научен опытом, в прошлом году все произошло по Вашему сценарию, но я быстро спохватился. :-)

И для чего же ещё нужен UNIX host особенно rpi4? Вы для чего её используете? Мониторинг? Я же про автоматизацию говорю. То, что вы делаете мониторингом, а потом ногами, реализуется на одной atmega328 или самой дешёвой esp32. Зачем туда толкать rpi4 или что-то подобное, не понимаю. Хотя, понимаю, если вы не умеете работать с МК, но умеете писать скрипты для Web серверов (хотя perl уже так устарел, что нет слов) так вы ещё и базу данных используете, mysql видимо и решение стало уже софтовым а не железным. Суть автоматизации не в костылях, а в простоте! Порой можно на реле собрать надёжное и простое решение а порой и 64ядерный сервер не справится с простой задачей. Я сейчас вижу, что rpi4 это микроскоп, которым забивают гвозди и доказывают, что так и должно быть.

Я такие софтверные решения применял в начале 2000,потому что автоматизация была на низком уровне, но были lpt порты, com-порты. Для них делали модули и да, собирали инфу, управляли железом, передавали на почту, хранили в базах данных. И Web сервера поднимали и так далее. Но сейчас, делать тоже самое, но на более компактном железе и говорить про актуальность.... Ну не знаю.... 25 лет уже прошло, сейчас есть более интересные решения, вариантов организации на любых МК, любых платформах...

В качестве JTAG интерфейса можно использовать вывод .. UART

Ну если это назвать jtag... Но вообще в c6 есть встроенная usb jtag

а если нужен еще ethernet то уже стоит смотреть p4

Ну во первых когда я начинал разработку почти год назад ESP32-p4 еще не было. Во вторых, если вы имеете ввиду плату ESP32-P4-EV-Board v1.5.2, где установлен модуль Ethernet и дополнительно ESP32-c6, то это довольно дорогое удовольствие для реализации сети при использовании модуля Ethernet только в одном контроллере.

сейчас уже есть варианты подешевле, но много вариантов повторяют связку из двух микросхем. типа скажем ESP32-P4-ETH (mini, nano)

Да, забавная вещица, но пока дороже ESP32-C6-WROOM-1 + WIZ850io (371р+327 < 1000р) и как я понял программное обеспечение ни до конца отлажено.

Тем более, если не применять ethernet, то зачем юзать такое мощное железо?

По моему опыту у CAN для умного дома есть два основных недостатка.

  1. Согласно стандарту требуется последовательная схема соединения устройств с концевым сопротивлением. В этом случае в квартире провода прокладывать несколько не удобно и их нужно много. Если использовать смешанную схему (звезда + последовательно), то скорость мне пришлось снизить до 10 кбит/с. После чего еще увеличил емкость конденсатора на входе CAN до примерно 1 нФ для защиты от импульсных помех.

  2. Пришлось отключить схему автоматической досылки сообщений средствами CAN. Если одно устройство оказывается не в сети, то все передачи на некоторое время подвисают.

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

Спасибо за советы.

  1. При 10 кбит/с длина битового интервала в витой паре выходит около 15 км. У вас там, наверное, не "умный дом", а целый "умный дворец" с "умными флигелями")) В машинах не видел, чтобы кто-то заморачивался с последовательной схемой. Лепят, как попало, и терминаторов бывает и 3 шт, и 1 шт посередине звезды. При этом в легковушках (электрических, там вообще всё на кан-шинах) стандартная скорость 500, а в траках 125 кбит/с - отлично работает. Скорее всего в чём-то другом проблемы.

  2. Подтверждение и авто-повтор - это да, странности кан-шины. Причём подтверждение-то приходит, когда слышит хоть кто-то, а не когда все. Нафиг оно никому не сдалось.
    Но проявляется-то косяк не когда одно устройство отваливается, а когда остаётся единственным в сети или в отвалившемся сегменте. А это значит, что оно всё равно передаёт в никуда.

Ну и если уж действительно со звездой совсем звездец, то можно и кан-репитер в какой-нибудь сегмент поставить. Благо, под питание 12 В они у китайцев пачками продаются.

А в чем необходимость именно can шины? Да, она может работать без ведомого, но это отчасти хаос и судя по модулями, они имеют не так уж им много интерфейсы. Если честно, я не понял куда их ставить (да, статью читал по диагонали, больше схему смотрел), чем они управляют и для чего предназначены. Ну модули, ну на CAN шине, а в чем особенность? Почему не 485,я понял из комментариев, но не понял почему отсутствие ведущего - это минус? Кто рулит всей сетью? Кто управляет, по какой логике и так далее. Ведущий может опрашивать узлы и принимать из них команды, коды, да все что ему необходимо, как это в промышленной автоматизации и он принимает решение на уровне головного. То, что происходит на уровне локального, он тоже знает но не мешает ему выполнять. И действительно не понимаю суть именно вот этого решения!? Должна же быть цель у проекта. Я перечитал и вижу, что есть описание пинов МК, что-то про питание и шину, про Ethernet модуль (хоть и не понятно зачем он там). Куча полевиков, пара реле, без опторазвязок. Бррр. Для чего это все? Умный дом - понятно, распределения система - тоже понятно, но все остальное, вы хоть опишите как проект, а не техническое решение. И самое главное - почему выбран именно этот микроконтроллер? Он же просто стоит как примитивный модуль, для отработки команд от головного! Включить и выключить реле! Зачем туда ставить плату с esp32 C6 Wroom1 и не использовать её!? Что мешает поставить что-то проще, дешевле, возможно с большим количеством пинов, в конце концов управлять большим числом нагрузок и иметь возможность подключения датчиков (если эта плата не для розетки). В любом случае этот модуль на шине висит и ему не нужен другой интерфейс. А вот поставить маленькую eeprom для записи уникальных персональных данных, без выбора адресов джамперами - это куда эффективнее. Работа большая проведена, но подумайте, насколько это эффективно? За из лишнюю эмоциональность сразу прошу прощения.

Почитайте мои две предыдущие статьи, ссылки в начале статьи , вопросов станет меньше.

И вот, я прочитал предыдущие 2 статьи (как мне показалось не ваши, потому что слишком много воды) и вопросов к моему комментарии стало ещё больше! Если вы пишите что esp32 C6 Wroom1 имеет на борту свой CAN интерфейс, то зачем ставить преобразователь uart-can? И так и не понятно, зачем на периферийном МК столько памяти на борту? И зачем там смотреть на энергопотребление, если питание по проводам приходит? Короче, вопросов стало ещё больше и нет на них ответов. И так и не понятно, чем CAN, в данном случае лучше rs-485, при том, что вы пишите что таких устройств может быть до 64, при этом rs-485 до 255. А комментарии к прошлым статьям показывают реальность этих статей.

Sign up to leave a comment.

Articles