Dmx протокол arduino

DMX Shield — плата расширения Arduino для проектов управления световыми эффектами

DMX Shield – простая плата расширения, которая позволит использовать платформу Arduino для управления системами освещения или световыми эффектами по интерфейсу DMX (Рисунок 1). Фактически, плата реализует интерфейс RS485, электрические уровни сигналов которого необходимы для коммуникации по протоколу DMX.

Рисунок 1. Внешний вид платы расширения Arduino DMX Shield.

При проектировании схемы платы расширения была заложена определенная гибкость. Так, с помощью перемычек (джамперов), пользователь может выбирать какие сигнальные линии платы Arduino использовать в качестве цифрового входа и выхода интерфейса DMX. Дополнительно, на плате установлен слот для карт памяти microSD с соответствующей схемой согласования уровней и разъем для подключения ЖК индикатора с последовательным интерфейсом.

Такая конструкция позволит реализовать базовые функции DMX протокола посредством сообщений, предварительно запрограммированных в коде программы микроконтроллера или, при использовании соответствующих библиотек, может стать автономной системой с функциями воспроизведения последовательностей записанных на карте памяти microSD. При необходимости данное решение может служить удобным интерфейсом для передачи DMX команд от ПК через последовательный порт.

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

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

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

Схема передачи была разработана с целью повышения эффективности управления устройствами, поэтому интерфейс DMX поддерживает одновременное управление 512 устройствами с 40 полными циклами передачи в секунду. Чтобы добиться такого при передаче 8-битных данных, 1 стоп-бита и 1 старт-бита, скорость должна быть 250 Кбит/с. Последовательная передача данных начинается с заголовка, а затем байты передаются последовательно, начиная с первого (Таблица 1, Рисунок 2).

Таблица 1. Базовые команды протокола DMX512 и их длительность
(Каждый бит, передаваемый по протоколу DMX512, имеет длительность 4 мкс)

Примечание: НО – означает «не определено», определяется разработчиком.

Рисунок 2. Диаграмма сигнала при передаче данных по протоколу DMX512.

Все это означает, что если мы хотим передать новые данные контроллеру с адресом 10, то необходимо также передать данные для контроллеров с адресами 1 – 9. Система адресации основана на номере передаваемого байта, поэтому каждый контроллер ведет подсчет входящих байтов. Контроллер игнорирует байты данных, поступающие до и псоле «своего».

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

В первоначальной версии протокола DMX значения в диапазоне 0-255 интерпретировались как уровни яркости осветительного устройства (00 – выключен, 255 – максимальная яркость), но растущий список устройств с интерфейсом DMX вызвал изменения в интерпретации значений байта. Появилось много дополнительных команд и функций, например, установка позиции, выбор программы, применение специфических параметров, активация функции и пр. Каждый производитель определяет набор команд и карту соответствия значений и функций. Следует учитывать, что иногда одного байта недостаточно для управления всеми возможностями контроллера, поэтому для устройства на шине DMX выделяется диапазон адресов, и считывается более одного байта в последовательности.

Принципиальная схема платы расширения

Рисунок 3. Принципиальная схема платы расширения Arduino DMX Shield.

Основным элементом платы является микросхема MAX485 компании Maxim (Рисунок 3), которая преобразует уровни цифровых сигналов микроконтроллера в дифференциальные сигналы двухпроводного интерфейса RS485. Микросхема содержит приемник, передатчик и логику управления. Для управления направлением передачи данных микросхема MAX485 имеет инверсные входы /RE (вывод 2) и OE (вывод 3). В нашем случае эти входы можно объединить и для управления потребуется одна линия ввода/вывода микроконтроллера. Выводы 6 и 7 микросхемы – это дифференциальный выход, вывод 1 – выход приемника, вывод 4 – вход данных.

Все сигнальные выводы микросхемы подключаются к порту D платы Arduino через перемычки (джамперы). Вывод RO (вывод 1) может подключаться к порту D0 или D4, вывод DI может подключаться к порту D1 или D3, а соединенные вместе /RE+OE могут подключаться к порту D2 или D5.

Еще одна микросхема, использующаяся в схеме, предназначена для преобразования ТТЛ уровней интерфейса ICSP платы Arduino в уровни с напряжением 3.3 В, которые требуются для работы с картой памяти microSD. Микросхема 74HC4050D содержит шесть буферов для преобразования уровней сигналов ТТЛ, но в данной схеме используются лишь три, включенные на входных линиях интерфейса microSD. Выходные уровни интерфейса microSD с напряжением 3.3 В корректно определяются микроконтроллером на плате Arduino как «лог. 1».

Дополнительно на плате установлены два пользовательских светодиода (порт D8 и D7), пользовательская кнопка (порт A1), кнопка сброса и разъем для подключения ЖК индикатора с последовательным интерфейсом (порт A0 или A2, выбирается перемычкой).

Перед работой с платой необходимо корректно установить перемычки сигнальных линий (на плате они обозначены JRO, JDI, JRDE, Рисунок 4). Если совместно с Arduino не используются дополнительные платы расширения, то перемычки можно устанавливать в любую из двух позиций. При использовании дополнительных плат расширения перемычки необходимо устанавливать так, чтобы избежать конфликтов. Также учитывайте, что плата расширения Ethernet Shield использует интерфейс ICSP Arduino, и слот карты памяти microSD в таком случае может конфликтовать с Ethernet платой.

Рисунок 4. Расположение элементов на плате расширения DMX Shield.

Для работы с платой потребуется специальная программная библиотека функций DmxSimple.h, которая вместе с примерами доступна для скачивания в разделе загрузок.

Для управления платой DMX Shield с персонального компьютера и реализации световых эффектов синхронизированных с музыкой можно использовать программный комплект Vixen. Пользователи создают в программе последовательность данных, которые затем передаются через последовательный порт компьютера в Arduino. Пример исходного кода программы микроконтроллера для работы с Vixen находится папке DMX_LightSequencing.

Демонстрационное видео

Загрузки

Библиотека функций и исходные коды примеров — скачать

Перевод: Vadim по заказу РадиоЛоцман

Источник

Opensource контроллер умного дома на базе Arduino Mega 2560 с поддержкой MQTT, DMX-512, 1-Wire, Modbus и Openhab

Сегодня я решился вынести на суд общественности проект, работу над которым вел на протяжении последней пары лет: «LightHub». То, что получилось в итоге, можно назвать, пожалуй, самым дешевым решением для создания Умного дома, которое, тем не менее, умеет:

  • Управлять освещением и силовыми устройствами(Реле, диммеры DMX-512 и Modbus RTU)
  • Управлять теплыми полами (в качестве термодатчиков используются полтора десятка дешевых DS18B20, разведенных по квартире)
  • Управлять задвижками вентиляции/кондиционера
  • Управлять самодельной системой приточной вентиляции.
  • Многое такого, о чем я изначально не задумывался, просто в силу того, что контроллер получился абсолютно открытым, гибко конфигурируемым, и прекрасно дополняющим Опенсорсные решения Openhab+Mosquitto+NodeRed

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

На выход — например, такие вот релейные модули, DMX, Modbus переферия.

Контроллеры конфигурируются при помощи JSON файлов, которые при старте контроллера загружаются по http (далее, конфиг можно сохранить в NVRAM через Serial CLI). Ну и, конечно, все это управляется системой Openhab 2, через штатное мобильное приложение.
Задачи «малой автоматизации» решены как при помощи штатных openhab rules (не очень удобных), так и при помощи NodeRed. (По поводу NodeRed вот статья, которая прекрасно описывает пример автоматизации.)

Исходники, вместе с примерами конфигов, выложены на GIThub, описание понемногу выкладываю на сайте проекта. Соответственно, более полная история под катом.

Началось все с ремонта в квартире, в процессе которого я решил сделать дом прилично умнее.
При этом, тратить серьезные деньги на «Брендовое» решение Умного Дома, откровенно, не хотелось. Тем более, что многие «Серьезные» решения использовали закрытые стандарты и интегрировались друг с другом при помощи откровенных костылей.

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

В качестве Hardware для контроллера я выбрал Arduino Mega 2560+Ethernet shield.
Update: Прислушавшись к комментариям ниже, я портировал проект на Atmel SAM3X8E ARM Cortex-M3 (Arduino DUE), плата, которая при такой же копеечной стоимости, обладает на порядок большей производительностью, а что самое важное — RAM. С библиотекой DMX пришлось повозиться, но теперь и DMX-IN и DMX-OUT работают, используя один аппаратный USART, не занимая без дела ресурса процессора. Проект уже лежит на github и компилируется автоматически под нужную платформу.

Копеечная цена, огромное кол-во портов ввода вывода, 4 аппаратных UART, приличный размер NVRAM, который мне пока удалось только на 30% занять прошивкой и в который умещается с запасом весь конфиг, причем, прямо в формате JSON подтвердили разумность выбора.

После обновления Bootloader, и корректировки библиотеки Ethernet удалось успешно задействовать аппаратный Watchdog процессора, что добавило решению «промышленности» а мне спокойствия, хотя, прошивка и без этого не была замечена в зависании.

Отсутствие на контроллере какой либо операционной системы позволяет считать его «системой реального времени», что позволяет, например, программно генерировать тот же сигнал DMX.
Узкое место — размер RAM. И это не позволяет использовать всю необъятную переферию контроллера. Хотя, более 30-ти разнообразных каналов (items, в терминах конфига) в память вполне умещаются. А подключить столько, сколько позволяет плата Arduino Mega — задача, все же, не имеющая отношение к реальности.
(на ARM — более этого узкого места нет)

Также, масштабируемость достигается увеличением числа устройств. У меня, например, задействованы два контроллера. Они разнесены по квартире (это, также, позволяет не тянуть все провода в одну точку). Для взаимодействия друг с другом, а также, с системами Openhab и NodeRed используется MQTT брокер Mosquitto.

В качестве драйвера шины 1-wire я использовал чип (I2C драйвер) ds2482-100 с Aliexpress, который при цене в 60 руб обеспечивает устойчивую работу с шиной до 100М.

Для гибкого конфигурирования устройства я доработал библиотеку AJSON для Arduino, таким образом, что она имеет возможность как загружать объект по http так читать и записывать объект из/в NVRAM контроллера. Форк доступен на Github.

Serial CLI при создании нового контроллера надо прописать в NVRAM уникальный MAC адрес. Именно MAC является ключом, по которому изначально загружается конфигурация c http сервера.

В качестве управляющего ПО я взял Openhab 2, имеющий весь нужный мне функционал, плюс, мобильное приложение, плюс «Облако» — роль которого, правда, только в том, чтобы предоставлять доступ к домашней инфраструктуре извне, не прокидывая портов на роутере и не обладая фиксированным IP. Также, Openhab имеет интеграцию с HomeKit от Apple, что позволяет управлять устройствами дома с iPhone, вообще без установки аппликации. (Возможность интересная, но пользуюсь, в основном, «родным» приложением).

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

Решения, обнаруженные на рынке были либо закрытыми «вещами в себе», либо стоили неадекватных денег, поддерживая при этом немного каналов. Часто, производители ограничивались тремя каналами (RGB), хотя, вариант RGBW позволяет использовать светодионые ленты в качестве основного освещения, а не просто для цветовой подсветки.

Подумав, я заказал на АliExpress пару плат, каждая из которых может управлять 30-ю каналами LED с номинальным током до 2А на канал.

Для того, чтобы увеличить максимальную мощность одного канала, я перешел со светодиодных лент на 12В на 24В ленты. При этом, полноценно осветить комнату около 16-18 кв. м оказалось возможным при помощи 4-х ключей. БОльшие по площади помещения пришлось зонировать — в гостиной подключил независимо 4 ленты по 5 м, задействовав при это 16 каналов.

Для синхронного управления всей комнатой, пришлось придумать тип канала «группа»

Вот как выглядит описание гостиной в JSON конфиге:

Первый элемент массива — тип канала, второй — параметр канала, который может являться массивом.

Для элемента типа 7 (группа) — аргументом является массив элементов, входящих в группу.
Рекурсия, конечно же, поддерживается.

Для элемента типа 1 (лента RGBW) — аргумент — базовый DMX адрес канала.

Со стандартной библиотекой EasyDMX платы не заработали сразу. Как оказалось, китайский LED контроллер не переваривал 2ms задержку между фреймами DMX (interframe delay). Несложная модификация кода библиотеки (сокращение цикла в два раза) помогла.

Форк библиотеки на GitHub-е
По просьбе читателей, добавил картинки на тему «LED освещение в действие»

Это альтернативный DMX декодер из категории «дорого и богато»

Далее, «фотосессия», на которой можно понять, насколько меняются помещения при изменении освещения, а также, то, что используя только белый цвет в RGBW лентах, можно получить приятное глазу рассеяное освещение.
Рекомендую ленты исключительно с теплым белым светом (2700К)

А далее, несколько примеров комбинирования точечных светильников и LED:

Обычное AC 220В освещение у меня получилось управлять китайскими диммерами с Aliexpress, имеющими поддержку Modbus RTU (стандартный промышленный протокол управления поверх RS-485). Эти диммеры прекрасно управляются локально (выключателями без фиксации), в то же время, контроллер имеет возможность считывать яркость и управлять ими по шине Modbus (реализовано пока для двухканального устройства).

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

Еще вариант управления 220В освещения — использовать DMX-512 AC диммер. На e-bay таких в ассортименте, любого формфактора — плата или на DIN рейку. От одного до восьми каналов.
Я, в начале, поостерегся этого варианта, так как контроллер был еще в очень эксперементальном виде и, для надежности, хотелось сохранить автономное локальное управление. Но сейчас бы уже использовал такой вариант.

Далее — я установил канальный кондиционер, который в состоянии как нагреть так и охладить всю квартиру. Чтобы как-то распределять холод и тепло по спальням, я установил сервоприводы с управлением сигналом 0-10В. Угол открытия задвижек регулируется автоматически при помощи NodeRed, в котором для этого нашелся удобный PID регулятор.

К сожалению, не удалось найти приводов воздушных заслонок с ШИМ или каким-то цифровым входом, поэтому на том же AliExpress были приобретены 4 преобразователя ШИМ в стандартный аналоговый сигнал 0..10В.

К сожалению, на Aliexpress этих устройств уже не вижу, но на e-bay — пожалуйста

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

Ниже пример перепрограммирования таймеров 3 и 4 (отвечают за pin-ы 2, 3, 5, 6, 7, 8 Arduino Mega на частоту 4000Гц).

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

Несмотря на наличие мобильного приложения, протокол управления был закрыт. Я провел некоторый реверс-инженеринг, который показал, что, теоретически, протокол можно расшифровать. Возможно, я бы этим и занялся, но обнаружил, что без переустановки подразетников сие устройство не устанавливается в один ряд с выключателями. Это определило судьбу устройства: продав его, я реализовал функционал простого термостата на своем контроллере, сэкономив почти 30 тыс руб на 5-ти теплых полах.

  • Все управление — локально на контроллере и независимо от домашней ИТ инфраструктуры
  • Используются измерения с 1-wire термодатчиков. Если датчик долгое время не может быть опрошен — нагреватель отключается.
  • Через MQTT можно включить/выключить теплый пол и задать его температуру. Соответственно, полы управляемы через интерфейсы и мобильное приложение Openhab
  • Я не стал реализовывать хитрые сценарии и расписания на контроллере. При желании, это легко реализуется правилами Openhab или Node-Red. Я ограничился только отключением устройств, когда люди покидают дом.

Вот пример конфига для одного теплого пола:

Данные при опросе термометра OneWire с указанным адресом передаются на шину MQTT в топик t_bath1, а также, внутри контроллера, объекту h_bath, имеющему тип №5 (термостат), реле подключено к pin#24 контроллера, уставка — 33 градуса (можно корректировать по MQTT)

В конфиге для каждого входа можно задать как передачу команды локальному объекту так и выдачу команды в MQTT топик. Причем, отдельно как на условное «нажатие» кнопки так и на «отпускание».

Pin 41: Геркон на замке входной двери — при запирании — выдаем в топик /myhome/in/all команду HALT, при отпирании — команду REST.

У меня это приводит к полному «засыпанию» и «просыпанию» дома. К слову — команды не входят в стандартный набор OpenHab, но получились крайне удобны — HALT — выключает устройство, REST — восстанавливает параметры устройства до последнего значения (цвет, яркость, температура), но только для того устройства, которое было выключено командой HALT а не OFF. Это позволяет не включать то, что было выключено на момент покидания дома.

Pin 38: Просто обычный выключатель света. При замыкании — выдает (по умолчанию) команду ON, при размыкании — команду OFF. Эти значения передаются объекту «spots_en». Понятно, что состояние обьекта можно изменить с мобильного приложения. В этом случае, выключатель, как бы, остается, например, во включенном положении, но свет выключен.

Для любителей классических проходных выключателей, подойдет синтаксис Pin 40: И при включении и при выключении выдается команда TOGGLE (тоже, кстати, новая, относительно OpenHab), меняющая положение Вкл-Выкл устройства (в данном примере, лампа управляется не локально, а через MQTT другим контроллером).

Если это не перекидной выключатель а кнопка — достаточно просто скорректировать «rcmd»:»» — при этом команда на переключение будет выдаваться только при нажатии.

А, ну и почти забыл описать DMX-IN — вход, ради которого, можно сказать, я и начинал эту разработку.

На рынке масса удачных с дизайнерской точки зрения и, в целом, эргономичных DMX контроллеров светодиодных лент.

Один из таких (сенсорную панель) я и купил в самом начале для экспериментов с DMX. Все хорошо, но архитектура DMX не предусматривает никакого управления из более чем одного места. Существует один Мастер, который постоянно транслирует в шину яркости каналов. Но в этом проекте данная проблема решена. Контроллер LightHub отслеживает изменения каналов DMX на входе, подключенном к сенсорной панели. Если они изменяются — транслирует изменения на выход (с маппингом на сконфигурированные устройства, в том числе, на группы светодиодных лент).

Пока ничего не меняется — устройства нормально управляются удаленно. Стоит сенсорной панели поменять значения яркости каналов — эти изменения транслируются на DMX выходы.

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

К сожалению, в одной статье невозможно описать все нюансы, заложенные в разработку.
Например, совсем за кадром осталась тема подключения Modbus устройств, их пуллинг и синхронизация локального состояния устройства с системой Умного Дома, интеграция с простой приточной установкой. Ну и, возможно, сравнение с существующими системами близких классов, такими, например, как MegaD-328, AMS и, даже, WirenBoard. Возможно, если будет заинтересованность — продолжу.

Также, пока за кадром то, что с использованием NodeRed удалось проинтегрировать систему с Telegram. Пока работает для получения оповещений, но можно создать полноценный Bot.

Относительно проекта LightHub — при всей дешевизне, контроллеры оказались вполне рабочим решением. Честно говоря, я сам не верил, что на основе Arduino можно создать стабильно работающую систему, но, по-моему, это удалось.

Конечно, надо многое еще доделать: полностью уйти от хардкода (осталось совсем чуть-чуть), немного и местами почистить и рефакторить код, тщательно документировать проект, развести печатную плату (сейчас интерфейсные Шилды спаяны просто на основе макетных плат и содержат три MAX-485 — (DMX-IN, DMX-OUT, Modbus) и 1-Wire мост) — и это станет, по сути, очень бюджетным готовым решением.

Warning: Напоминаю, что проект пока на уровне макетных плат. Открывая следующий спойлер, вы можете нанести урон своим эстетическим чувствам.


Первый контроллер, управляющий LED (60 каналов DMX-512), Modbus (диммеры, приточка), заслонки ветиляции;


Это DMX-512 декодер, который удобно размещать там, где светодиодные ленты приходят к трансформаторам. У меня — под фальшпотолком в кладовке.

А это-второй контроллер, обслуживающий 1-wire, выключатели/датчики и релейный модуль. (Сам релейный модуль разместился прямо в распаечной коробке, где ему и место вместе с тремя фазами. Соседство 380В и слаботочки я искоренил везде, где возможно, после одного неудачного происшествия)

Понятно, что надо расширять функционал. Как минимум, в направлении беспроводных датчиков/устройств. (Хотя, например, ZWave и так сейчас можно использовать через стандартные биндинги Openhab).

Возможность подключения, например, бюджетного NooLight, вероятно, неплохая идея. Возможно, подумаю над миграцией на ESP-8266 для расширения RAM, хотя, уход на WiFi с проводного подключения к LAN мне не нравится с точки зрения надежности. Да и ESP не обладает такой богатой переферией как Arduino Mega. Еще планирую сделать учет электроэнергии через датчики тока и подключение Rotary Encoder на вход.

Также, полезно было бы сделать конфигурирование и запуск контроллера более User Friendly (визуальные конфигураторы и пр.). При этом, сознательно не хочется превращать контроллер в вебсервер с файлами/картинками, AJAX и пр. На мой взгляд, это уже должно являться прерогативой сервера. Хотя бы на основе Raspberry.

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

UPDATE:

После публикации статьи, объединив усилия вместе с одним из жителей Хабра и нарисовав принципиальную схему LighthHub Shield, приступили к разводке печатной платы, с учетом всего осмысленного опыта и комментариев

  • Плата будет совместима как с Arduino Mega (5v) так и с Arduino DUE (ARM 3,3В)
  • Встроенный интерфейс Ethernet на базе Wiznet5500
  • 8 опторазвязанных дискретных входов, 8 дискретных входов/выходов с защитой по напряжению/току
  • 8 аналоговых входов с защитой по напряжению/току. В дальнейшем, предполагаю использовать аналоговые входы для контроля потребляемой мощности (датчики тока) и для того, чтобы подключать внешние потенциометры (диммеры)
  • 8 ШИМ выходов, 4 из них с мощными выходными ключами (до 500 мА/50В) + 4 дискретных мощных выхода. Позволят подключить локально к контроллеру, например, несколько пускателей или даже не сильно длинную RGBW LED ленту.
  • Разьем формата UEXT, который позволит, впоследствии, подключить к контроллеру совместимую переферию — например дополнительные радиомодули, для соединения с беспроводными устройствами.
  • Остальные входы/выходы будут выведены без защит на разъемы RJ45 для подключения локальных устройств (релейные платы, ЦАП и пр)
  • Конечно же, остаются интерфейсы 1-Wire для подключения термодатчиков, DMX-512 вход и выход для управления освещением, Modbus RTU для всего остального

Оставить комментарии по функциональности, а также, желание присоединиться к заказу первой партии плат, можно тут

Следующим пунктом программы будет разработка платы контроллера со встроенным модулем ESP32 (это позволит уйти от формфактора Ардуино)

Источник

Adblock
detector