У нас тут уже образовался клуб любителей контроллеров и их программирования, мы познакомились с устройством и назначением DIY контроллеров компании Kincony серии KC868 (A4, A6, A8, Uair, AG, A16, A32, Server) и значительно продвинулись в этой теме, но мир контроллеров не заканчивается на продукции Kincony, есть много не менее достойных и интересных производителей, и в моём распоряжении оказался целый набор устройств от компании Iconic Devices (Norvi): NORVI IIOT (AE01-T), NORVI ENET (AE06-T), NORVI Cema (M1), NORVI Agent 1 (AT01-BM1), NORVI Agent 2 (AP01-BC1).
Как вы догадываетесь, я не могу отказать себе в удовольствии разобрать по косточкам и препарировать всё это великолепие и не могу не поделиться с вами результатами своих изысканий. Эта первая статья цикла о девайсах Norvi будет посвящена модели NORVI IIOT — базовой для всего семейства контроллеров этой компании.
Итак, приступим…
Немного о компании Iconic Devices
Iconic Devices — это небольшая частная компания, которая занимается производством контроллеров для DIY рынка, хотя сама называет их промышленными («Industrial»), а также заказной разработкой кастомных решений для автоматизации.
Но самое удивительное в этой компании не это, а место её нахождения. Iconic Devices, производящая контроллеры NORVI, находится не где-нибудь, а в невероятно экзотической стране Шри-Ланке.
Цитата из Википедии:
Шри-Ланка (официальное название — Демократическая Социалистическая Республика Шри-Ланка) — государство в Южной Азии, на одноимённом острове у юго-восточного побережья Индостана. Со времён португальского вторжения и до 1972 года в европейских языках страна называлась Цейлон. В переводе с санскрита шри-ланка означает «славная, благословенная земля».
Вот из такого экзотического места, которое никак не ассоциируется с технологичной продукцией, к нам на тест прибыли рассматриваемые контроллеры. Далее переходим от географических изысканий непосредственно к разбору технических характеристик и назначения контроллеров Norvi.
Контроллеры Norvi
Моя небольшая, но очень интересная коллекция контроллеров Norvi
Семейство контроллеров Norvi имеет очень широкую и разветвлённую номенклатуру, в которой не так-то просто разобраться. Основной их форм-фактор — это устройства на DIN-рейку в виде управляющих контроллеров и модулей расширения с различными дополнительными компонентами (LoRa, NB-IoT, Analog Input и т. д.). Блоки между собой соединяются 10-контактным шлейфом.
В этом, наиболее популярном форм-факторе, в линейке устройств Norvi присутствуют контроллеры на ESP32, ATmega32-U4, Mega 2560 и STM32F103RBT6. Все эти контроллеры различаются количеством входов и выходов, поддерживаемыми функциями и прочими характеристиками.
Кроме устройств на DIN-рейку в ассортименте компании Iconic Devices присутствуют контроллеры во встраиваемых корпусах (Agent 2 AP01-BC1, AP01-BC2, AP01-BA1, AP01-BA2) и линейка устройств в «индустриальном» (закрытом, IP67) исполнении — серии M11 и М12.
Контроллеры Norvi в различных модификациях имеют (или не имеют) на своём борту релейные или транзисторные выходы, интерфейс RS485, дисплей, картридер для microSD карт, часы реального времени (RTC) и Ethernet интерфейс (W5500). Все модели контроллеров Norvi снабжены тем или иным количеством (от 2 до 14) цифровых входов (Digital Input).
Семейство NORVI IIOT
Базовой для контроллеров Norvi является линейка NORVI IIOT. Эти контроллеры имеют в качестве ядра ESP32 (ESP32-WROOM-32) со всеми присущими ему возможностями (2 ядра MCU, Wi-Fi, Bluetooth, 4 МБ EEPROM и т. д.), что сразу выводит контроллеры NORVI IIOT на определённый уровень — они могут решать довольно «тяжёлые» задачи, поддерживать беспроводную связь и полноценный веб-интерфейс, работать с шифрованием данных и т. д.
Все модели контроллеров линейки NORVI IIOT имеют межблочный интерфейс и цифровые опторазвязанные входы (DI). Остальные характеристики отличаются, составить представление о них можно по следующей таблице:
Модель AE01-T, имеющаяся в моём распоряжении, выделена серым фоном.
Исходя из этой таблицы, можно также понять принцип наименования моделей контроллеров, используемый компанией Iconic Devices:
- Две первые буквы (AE) кодируют принадлежность к тому или иному подсемейству контроллеров Norvi.
- Цифры в названии (01, 02, 03, 04 и т. д.) обозначают собственно модель в линейке контроллеров.
- Буквенный индекс (R, T, V, I) обозначает функциональное отличие модели (реле, транзисторные выходы, входы по напряжению, токовые входы и т. д.).
Можно заметить, что в линейке NORVI IIOT особняком стоит «недоделанная» модель AE03 — у неё нет модификаций и набор возможностей тоже немного странный — там есть только 8 цифровых входов и 1 аналоговый вход 1-10 вольт. Чтобы понять, что это значит и зачем понадобилось выпускать такой контроллер, нужно сказать несколько слов об идеологии компании Iconic Devices:
Компания Iconic Devices выпускает не универсальные многофункциональные контроллеры, а множество специализированных моделей для конкретных (специфических) задач — исходя из вашей задачи вы можете подобрать ту или иную модель контроллеров Norvi (и решить свою задачу по автоматизации). Здесь речь идёт о наборе функций (входы, выходы и т. д.), а не о программировании — все контроллеры Norvi свободно программируются.
Практически все модели линейки NORVI IIOT имеют (кроме межблочного интерфейса и цифровых входов) транзисторные выходы, интерфейс RS485, дисплей и кнопки управления на передней панели. В целом, можно сказать, что линейка NORVI IIOT является «визитной карточкой» всей экосистемы контроллеров Norvi и представляет собой довольно «приятное» решение — ESP32 с его вычислительными и коммуникационными возможностями, стильный корпус на DIN-рейку, наличие дисплея и кнопок управления, довольно широкий набор возможностей (входы, выходы, интерфейс RS485, картридер для microSD карт, часы реального времени). Ну и самое главное — возможность как угодно программировать работу этих контроллеров (или заливать любые готовые прошивки).
Компоненты и характеристики
Теперь от общего описания линейки NORVI IIOT переходим к рассмотрению конкретной модели этого семейства. В моём распоряжении находится модель AE01-T, которая имеет:
- ESP32 (ESP32-WROOM-32)
- 8 цифровых входов
- 8 транзисторных выходов
- интерфейс RS485
- дисплей (SSD1306)
- индикаторные светодиоды входов и выходов
- кнопки управления на передней панели
- межблочный интерфейс
- Mini-USB разъём для программирования
- Напряжение питания: 24 В
Это начальная модель линейки, которая лишена аналоговых входов, картридера для microSD карты карты памяти и часов реального времени, а вместо реле здесь используются транзисторные выходы. Вспоминаем идеологию компании Iconic Devices (подбор модели контроллера под конкретную задачу) и делаем вывод, что AE01-T предназначен для проектов, где нужно управлять чем-то при помощи транзисторных выходов (например, какими-нибудь клапанами), взаимодействовать по RS485 интерфейсу и анализировать состояние до 8-и входов.
При этом можно использовать базовые возможности линейки NORVI IIOT — выводить информацию на экран, управлять контроллером при помощи кнопок, визуально (при помощи светодиодов) наблюдать состояние входов и выходов контроллера.
Кроме этого, AE01-T имеет разъём межблочного интерфейса, а значит нам доступно увеличение его функциональности при помощи модулей расширения, например, можно добавить поддержку беспроводной LoRa связи или подключить модуль аналоговых входов, если это требуется по вашему проекту.
В целом, это неплохой подход — формализовал задачу, купил нужный Norvi контроллер, смонтировал его, залил прошивку и закрыл задачу.
Внешний вид и устройство
Внешний вид, дизайн и сама концепция корпуса, индикации и кнопок управления — великолепны (на мой взгляд). Контроллер выглядит очень хорошо, особенно если учесть, что это устройство для DIY рынка и самостоятельного программирования ESP32.
Правда картину немного портит выступающий Mini-USB разъём, если производитель каким-то образом устранит это недоразумение, то контроллер будет выглядеть просто отлично (кстати, в старшей модели NORVI ENET эта проблема решена — там используется Micro-USB разъём, который не выступает над поверхностью корпуса).
Вид контроллера с обратной стороны. Видны крепления на DIN-рейку и выдвигающиеся пластины для крепления на любую ровную поверхность. Всё сделано отлично — хорошая пластмасса, достойный дизайн, качественная сборка, в общем с обратной стороны контроллер производит такое же благоприятное впечатление, как и с лицевой.
Вид NORVI IIOT со снятой верхней крышкой. Процесс разборки не совсем простой, контроллер собран на достаточно тугих защёлках и сама геометрия плат и корпуса и их плотного (в прямом смысле этого слова) взаимодействия наводят на мысль, что NORVI IIOT не очень предназначен для разборки — в экстренном случае разобрать контроллер можно, но делать это часто (для каких-то манипуляций с допайкой компонентов) весьма затруднительно.
Подсказка: разъём межблочного интерфейса нельзя высвободить из крышки корпуса «легитимными» действиями, можно только, применив усилие, изогнуть пластмассу крышки и слегка «покорёжить» штыри, соединяющие платы контроллера — делать это нужно аккуратно, чтобы ничего не сломать в процессе.
Верхняя крышка с обратной стороны.
Нижняя часть (основание или «поддон») в которую крепится плата контроллера. Тут тоже нужно быть готовым гнуть пластмассу «сильно, но точно», чтобы ничего не поломать в процессе сборки/разборки.
Возникает вопрос: а зачем вообще что-то гнуть и разбирать контроллер? Вопрос правомерный — большинству «нормальных» пользователей продукции Norvi разбирать контроллер не придётся, они могут его просто использовать в готовом виде для решения своих задач. Подсказки что и как гнуть даны для таких пользователей как я, которым обязательно нужно разобрать контроллер и что-нибудь туда допаять и вообще посмотреть что и как там устроено.
Схемотехника
Теперь переходим к рассмотрению внутреннего устройства контроллера и его схемотехники. Для начала вид начинки контроллера сбоку. Видно, что контроллер состоит их двух плат, соединённых между собой двумя стойками по 12 штырьков, то есть всего обе платы соединяют 24 линии. Соединения сделаны неразборными и это очень прискорбно — разъединить платы можно только путём хирургического воздействия на соединяющие штыри — либо их выкусывать, либо выпаивать, либо и то и другое последовательно.
Хотя ничто не мешало установить на одной из плат соответствующие разъёмы и иметь возможность спокойно разъединять платы при необходимости. Видимо это не сделано, исходя из идеологии контроллеров Norvi — разборка и модернизация в них не предусмотрены.
Вид сборки из двух плат снизу. Виден выступающий за пределы платы разъём межблочного интерфейса, который упорно мешал разборке контроллера.
Тут нужно упомянуть ещё об одной особенности контроллеров Norvi — закрытости их схемотехники.
Пояснение. Компания Iconic Devices по какой-то причине не раскрывает схемотехнику своих контроллеров, она предоставляет только мануалы по внешнему подключению к ним периферии. Не совсем понятно, что Iconic Devices пытается скрыть — для квалифицированного разработчика (при наличии тестового образца) не составляет никакого труда создать копию контроллера (схемы и печатных плат) — это дело максимум нескольких дней, если не часов.
И здесь вскрывается ещё один элемент идеологии компании Iconic Devices: она выпускает закрытые («вещь в себе») контроллеры на железном уровне, но открытые для DIY программирования и заливки любых прошивок. Мне такой подход не очень импонирует, но, в принципе, он имеет право на жизнь, тем более, что никто не мешает провести собственное расследование и всё-таки допаять что-то нужное именно вам в NORVI IIOT.
Поэтому дальнейшее исследование схемотехники мы будем проводить партизанскими методами, пытаясь понять что и как работает внутри NORVI IIOT (нет принципиальной схемы контроллера от производителя и на специальный запрос предоставить схему компания ответила вежливым отказом).
Важное замечание. Работая с контроллерами Norvi, нужно иметь в виду одну особенность — невероятное количество ошибок в официальной документации от производителя — такое впечатление, что перепутано всё, что только можно перепутать. Поэтому рекомендуется прежде, чем что-то подключать по руководствам Iconic Devices, десять раз всё перепроверить. В этом смысле эта и следующие мои статьи будут являться чуть ли не единственным источником, который содержит достоверную и проверенную информацию по распиновке, подключению входов и выходов, распределению GPIO, адресам устройств на I2C шине и т. д. контроллеров Norvi.
Внешний вид, назначение контактов и расположение индикаторов NORVI IIOT в модификации AE01-T
Интерфейс между платами
Платы контроллера соединены между собой двумя группами контактов P1 и P2. Поскольку официальная схема от производителя отсутствует, то назначение конкретных пинов неизвестно. Можно, конечно, провести исследование и самостоятельно восстановить схему как соединений между платами, так и всего контроллера, но без особой нужды этим заниматься не имеет смысла, поэтому мы ограничимся только общим описанием того, что и как устроено внутри NORVI IIOT.
Нижняя плата содержит колодки для подключения входов и выходов, питания контроллера (24 В) и интерфейса RS485. Кроме колодок, на нижней плате находятся элементы подсистемы питания, интерфейса RS485, транзисторных выходов (или реле в некоторых моделях) и цифровых входов (и/или аналоговых входов в некоторых моделях линейки).
Верхняя плата содержит сам модуль ESP32 (ESP32-WROOM-32), линейный стабилизатор для его питания (3,3 В), разъём межблочного интерфейса, подсистему USB подключения на чипе CP2102, дисплей, управляющие кнопки, индикаторные светодиоды и прочие вспомогательные элементы.
Всё, в общем, неплохо, если бы ещё заменить наглухо запаянные соединения между платами на разъёмные, то всё стало бы совсем хорошо. Про вывод на платы отдельных SPI и I2C разъёмов и прочие вольности я вообще молчу — это противоречит идеологии закрытого железа контроллеров компании Norvi.
Питание
Подсистема питания состоит из импульсного понижающего регулятора напряжения на LM2596S (5 В) с соответствующими элементами обвязки (располагается на нижней плате) и линейного регулятора LM117-3V3 для формирования напряжения 3,3 В (находится на верхней плате, с обратной её стороны).
Производитель заявляет, что входное напряжение должно быть 24 В (на самом деле контроллер работает и от меньшего напряжения). Обратите внимание на правильное расположение контактов для подключения напряжения питания — производитель умудрился перепутать обозначения контактов в некоторых ревизиях официальной документации.
Правильное обозначение контактов питания — «плюс» ближе к краю, «минус» рядом со входами.
Вид на элементы подсистемы питания NORVI IIOT. Видна микросхема DC-DC преобразователя LM2596S, индуктивность, диод, фильтрующие конденсаторы и прочие элементы.
Отдельно нужно сказать о вариантах запитки контроллера. Нормальным является режим питания через контакты клеммных колодок напряжением 24 В, но частично запитать контроллер можно и от Mini-USB разъёма, в этом случае будут работать ESP32, дисплей, выходы и можно будет заливать прошивки в контроллер.
Ядро ESP32
В качестве ядра контроллера NORVI IIOT используется всем нам хорошо известный модуль ESP32-WROOM-32. Располагается он на обратной стороне верхней платы, вместе с линейным регулятором LM117-3V3, формирующим напряжение 3,3 В для его питания.
USB-UART
Для подключения к компьютеру, программирования и заливки прошивок в ESP32 на верхней плате присутствует Mini-USB разъём и микросхема USB-UART преобразователя CP2102, а также прочие элементы и кнопка — «RESET» (которая становится доступной только после разборки контроллера).
На фото виден тот самый выступающий и портящий внешний вид контроллера Mini-USB разъём, а также видна выглядывающая из-под дисплея микросхема USB-UART преобразователя CP2102.
Цифровые входы
AE01-T имеет 8 цифровых входов, подключённых через две счетверённые оптопары TLP290-4 и соответствующую обвязку.
Ниже приведена схема подключения цифровых входов. Здесь возможны два варианта с «плюсом» на COM контакт и с «минусом», в терминологии производителя «Sink» и «Source». Обратите внимание на нумерацию GPIO контактов — здесь она приведена в правильном и проверенном виде.
Транзисторные выходы
Модель AE01-T имеет 8 транзисторных выходов, которые разделены на две группы: 6 основных выходов T0-T5 и два дополнительных T0.1 и T0.0. В чём разница между основными и дополнительными выходами из официальной документации непонятно — это нигде явным образом не указывается. У меня сложилось впечатление, что принципиальной разницы между ними нет, это просто рудимент наименования выходов от моделей с поддержкой и релейных и транзисторных выходов.
Нумерация выходов и входов контроллера, начиная с ноля наводит на мысль, что проектированием контроллера занимался программист. Смысл наименования дополнительных выходов «T0.1 и T0.0» мне расшифровать не удалось (даже боюсь предполагать, что это значит, особенно с реверсивной логикой, где «1» идёт впереди «0»).
Внутреннюю схему работы релейных и транзисторных выходов контроллеров NORVI IIOT показывает следующая иллюстрация. В случае реле на выходы коммутируется напряжение, подключённое к контакту COM, а в случае с транзисторами происходит подключение выходов к «земле». Надпись на контроллере сообщает о максимально допустимом токе «Transistor 500mA Max».
На нижней плате видна разметка для установки реле и «добротные» перемычки для транзисторных выходов, которые просто замыкают соответствующие контакты на плате.
Вывод NC в данном случае не используется, а в случае релейных контроллеров серии NORVI IIOT на этом месте располагается клемма COM.
Обратите внимание на нумерацию GPIO — здесь она также указана в правильном и проверенном виде.
RS485
Интерфейс RS485 реализован на микросхеме трансивера MAX485, которая располагается на нижней печатной плате контроллера.
Фото подсистемы RS485 контроллера NORVI IIOT. Виден чип MAX485 и прочие элементы этой подсистемы.
Расположение контактов интерфейса RS485 на самом контроллере.
И схема подключения RS485 устройств к контроллеру из документации производителя.
Дисплей
В NORVI IIOT для вывода информации используется популярный OLED дисплей SSD1306. Надо сказать, что это очень полезное дополнение функционала контроллера — на него удобно выводить всю нужную информацию и сам контроллер с дисплеем смотрится гораздо более «презентабельно».
Поскольку дисплей SSD1306 очень популярный, то с библиотеками и примерами нет никаких проблем — в интернете можно найти огромное количество кода для этого дисплея.
Адрес дисплея на I2C шине — 0x3C.
Перемычки
На верхней плате присутствуют загадочные конфигурационные перемычки. Разумеется, нет никакой официальной информации об их назначении. Логика подсказывает, что они используются для конфигурации железа внутри линейки контроллеров NORVI IIOT. В принципе, можно озаботься и установить что и как конфигурирует каждая отдельная перемычка, но без особой необходимости заниматься этим нет смысла.
Кнопки
Кнопки это ещё одна (на ровне с дисплеем) простая, но приятная особенность контроллера NORVI IIOT — они дают возможность интерактивного взаимодействия с контроллером, например, для его настройки или оперативного изменения параметров или режимов работы, что очень удобно.
Кнопки подключены к контроллеру на вывод GPIO32 через небольшую схему, которая (при помощи аналогового чтения) позволяет определять какая из кнопок (или какое их сочетание) нажата. Для ESP32 с его дефицитом GPIO этот подход выглядит вполне разумным.
Межблочный интерфейс
Межблочный интерфейс — это очень полезное дополнение, он позволяет значительно расширить базовые возможности контроллера. В NORVI IIOT в качестве межблочного интерфейса используется шлейфовое 10-контактное соединение.
Как это уже стало доброй традицией, в различных версиях официальной документации перепутаны все обозначения контактов межблочного разъёма. По моим ощущениям, сколько версий документации, столько и неправильных распиновок межблочного разъёма.
Для установки истинного положения вещей мне пришлось вооружиться скетчем и вольтметром и вручную перепроверить, что же и как там подключено. Предлагаю вам единственную (в природе) правильную и проверенную схему распиновки межблочного разъёма контроллеров серии NORVI IIOT.
Теперь несколько замечаний по этой распиновке:
- Производитель везде упорно указывает, что контакты 3 и 7 межблочного разъёма пустые и ни к чему не подключены. Одновременно, для других линеек контроллеров он указывает, что к этим контактам подключены напряжения 5 и 3,3 В. Реальные замеры показывают, что и в линейке NORVI IIOT на контактах 3 и 7 присутствуют указанные напряжения.
- На контакты 2 и 4 выведены сигналы IO1 и IO3. Здесь имеется не совсем понятная ситуация: IO1 и IO3 используются в скетчах для связи с контроллером и его программирования, они же используются для интерфейса RS485 и они же (!) выведены в межблочный разъём. Что всё это значит и как это работает нужно разбираться отдельно.
- Примерно та же ситуация с контактами 5 и 6. На них выведены IO0 (BOOT) и IO32 (KEYS). Зачем выводить в межблочный разъём уже использующиеся внутри контроллера GPIO не совсем понятно. Если IO0 ещё можно объяснить необходимостью удалённо перезагружать контроллер, то зачем выводить IO32, (уже) обслуживающее кнопки, мне совсем непонятно.
- По некоторым сведениям (официальной документации) GPIO25 тоже имеет отношение к интерфейсу RS485. Зачем выводить его в межблочный разъём мне тоже непонятно.
Светодиодные индикаторы
Светодиодные индикаторы состояния входов и выходов и отдельный светодиод наличия напряжения питания. Очень простое, но полезное дополнение функциональности контроллера — сразу видно что и как в данный момент работает.
Распиновка
Распиновка контроллера NORVI IIOT AE01-T. Жёлтым цветом помечены контакты, выведенные в межблочный разъём. В целом всё понятно, логично и ожидаемо — можно приступать к программированию.
Заключение
На этом я заканчиваю разбор контроллера NORVI IIOT AE01-T и его схемотехники, в следующих статьях мы познакомимся с другими моделями контроллеров Norvi, имеющихся в моём распоряжении, и поговорим об их программировании и использовании в DIY проектах по автоматизации.
Комментарии (10)
Barma2012
19.07.2022 17:16С Ethernet есть модели?
Или с Лорой?
smart_alex Автор
19.07.2022 17:34С Ethernet есть линейка NORVI ENET, которой будет посвящена следующая статья.
LoRa подключается к контроллеру при помощи модуля расширения (на DIN-рейку).
nixtonixto
20.07.2022 08:02Хотя ничто не мешало установить на одной из плат соответствующие разъёмы и иметь возможность спокойно разъединять платы при необходимости. Видимо это не сделано, исходя из идеологии контроллеров Norvi — разборка и модернизация в них не предусмотрены.
Паяные соединения гораздо надёжней разъёмных. Мы тоже на этом уже обжигались. То, что хорошо работает на столе — быстро отказывает на объекте, в условиях вибраций и перепадов температуры и влажности.
peacemakerv
20.07.2022 20:12В принципе, одной статьи, IMHO, достаточно. Авторы сделали почти всё для того, чтобы почти по любому поводу было "стремно" использовать их разработки.
smart_alex Автор
20.07.2022 20:31Я бы не стал так огульно критиковать всё относящееся к Norvi. Да, недостатки и косяки есть (а где их нет?, кроме Сименса :). А замечания свои выкладывайте здесь — почитаем.
peacemakerv
20.07.2022 20:34Дак я не хаю, просто статья оставила вот такое впечатление, что не интересно использовать. Хотя статьи поковырявших, конечно, читать - интересно.
smart_alex Автор
20.07.2022 20:37Ну вы как-то разверните своё мнение — почему неинтересно? И что (какие решения) вам интересно использовать?
vassabi
вангую, что железо им делает кто-то еще, а софт и продажи готового - уже они сами. Изза чего схемотехника и т.д. скрыты за какими-то NDA и всякой юриндистикой, с которой ни техподдержка, ни разрабы, ни продажники связываться не собираются.
Поэтому и существует такое разделение.
smart_alex Автор
А схему зачем скрывать? Там нет ничего особенного...
vassabi
я думаю, что это не так что "они ее закрывают", а она с самого начала была под NDA (стандартная практика), и с тех пор так оно и осталось
Во всяком случае, я такое видал у наших коллег - им самим работать не мешает, они туда все равно не суются (а если им надо - то засылают пожелания оригинальному изготовителю железа), а вот уже своим клиентам они говорят "не предусмотрено" и всё