Вступление
Занимаясь домашней автоматизацией на протяжение последних трех лет, я стараюсь отслеживать все новые устройства в этой области. Недавно на выставке попалось на глаза новое устройство отечественного производства. Поискав в интернете, не нашел о них никакой информации. Странно подумал я и решил связаться с производителем (указывать его не буду). Пообщавшись, удалось заполучить на месяц тестовый образец. Спустя месяц решил поделиться своими впечатлениями о данном изделии.
Описание от производителя
По словам производителя, исследуемое устройство представляет собой платформу, позволяющую создавать автоматизированные системы мониторинга и управления инфраструктурными объектами. Платформа позволяет разрабатывать как централизованные, так и распределенные системы, в том числе подключать любые смарт-устройства, а функциональные особенности системы определяются установленным программным обеспечением.
Производитель заявляет следующие характеристики устройства:
Процессор | • CPU: Allwinner H5,Quad-core 64-bit Cortex A53 • RAM:1GB • Storage: 8GB eMMC, MicroSD card |
Операционная система | • Linux Debian или Ubuntu |
Коммуникации | • Network: Gbps Ethernet • WiFi: 802.11b/g/n • Bluetooth: 4.0 dual mode • Radio: 2.4 GHz • 2 x USB Host • 1 x RS485 |
Порты ввода — вывода | • 4 «сухих» контакта 350 v / 120мА • 4 выхода 12 v / 1А • 4 входа 0 – 12 v |
Индикация состояния | • OLED display • LED |
Питание | • DC 12 v |
Препарируем клиента
Устройство поставляется в двух вариантах: просто «голое» железо и уже готовое решение с программным обеспечением. Мне достался первый вариант, но так даже интереснее – есть где порезвиться фантазии.
Внешний вид устройства достаточно аскетичный:
Корпус устройства предусматривает крепление в шкафу на DIN рейку и занимает по ширине четыре модуля.
На лицевой панели находятся:
- дисплей;
- четыре кнопки;
- светодиодный индикатор состояния устройства («красный» – отключено, «зеленый» – питание подано, «синий» — показывает активность процессора);
Под крышками расположены:
- разъемы ввода-вывода (на первый взгляд мне показалось, что их количество может быть недостаточным, но прокомментирую этот момент чуть ниже);
- RS485 интерфейс;
- подключение питания.
Все разъемы сделаны под винт, что меня порадовало, так как не люблю я зажимные. На правой стороне коробки нет никаких разъемов и контролов, что в целом может пригодиться для более плотной установки оборудования в шкафу.
На левой стороне собраны все разъемы:
- съёмная WiFi антенна;
- 2 USB;
- 1 Eth
- аудио разъем.
WiFi антенна мешает подключению USB устройств и сетевого кабеля. Её надо либо поворачивать вниз, либо выносить на лицевую сторону шкафа кабелем, второй вариант, наверное, правильнее, таким образом улучшаем уровень сигнала.
Приступим к «вскрытию пациента» (весь корпус собран на защелках, разобрать его не составляет труда) и посмотрим из чего он состоит внутри/Открываем лицевую крышку и видим:
- OLED дисплей SSD1306 (128х64px): экранчик конечно небольшой, но получить минимальную информацию можно;
- Четыре кнопки для локального управления устройством, судя по обозначению, для управления выводом информации на экран;
- Кнопка управления питанием (как потом разобрался за управление питанием отвечает ATtiny13);
- RGB светодиод;
- Под надписью расположилась антенна радиомодуля.
Едем дальше – вскрываем корпус и видим, что устройство состоит из трех плат: основная плата, на ней крепиться процессорная плата и шлейфом к ней же подключается «верхняя» плата, лицевая сторона которой описана выше. Исследуем их внимательнее:
- Процессорный модуль представляет собой одноплатный компьютер NanoPi NEO Plus2. Не слишком раскрученный OBC, но очень интересный с технической точки зрения. Прочитать про него можно тут.
На основной плате располагается:
- Защита от переполюсовки (продумали «защиту от дураков» уже неплохо);
- DC-DC преобразователь на XL4005E1 5А, радует, что не поскупились на мощный диод Шотки (на 12А), но вот катушка намотана тонковатым проводом – 3А потянет, но более грузить бы ее не стал, на обратной стороне платы сделаны полигоны охлаждения преобразователя, что добавляет уверенности в работе (управляется преобразователь от ATtiny13);
- Остальные детали включены по стандартным схемам: стабилизатор напряжения AMS 1117 на 3.3 v, MCP23017 расширитель, SP3485 для организации RS485 интерфейса, ADS1115 16-битный АЦП, наличие датчика атмосферного давления BMP180 приятно удивило.
На обратной стороне «верхней» платы установлены:
- RTC модуль DS3231;
- Расширитель портов PCF8574, отвечающий за обработку нажатий кнопок;
- Радиомодуль nRF24L01P с усилителем.
Использование и программирование
Как я уже говорил мне досталось голое железо и проверять работу модулей и создание сценариев работы пришлось самому. Не стал мудрствовать лукаво, Linux сборку взял Armbian, а все программирование сделал на Python – быстро, дешево и сердито! Все микросхемы хорошо известны широкому кругу радиолюбителей, найти описание и базовые способы применения не составит никакого труда.
После изучения устройства сформировался примерный перечень задач:
- Через выходы «сухих» контактов подключить контакторы 220v. (Получить управляемые линии электропитания)
- К двум выходам 12v/1А и на два входа подключить стандартные охранные и пожарные датчики. (Получить охранно-пожарную систему, без выхода на пульт, но это зачастую и не надо).
- На свободные входы-выходы подключить, датчики протечки и шаровые краны с электроприводом на 12 v. (Получить защиту от протечки).
- Поднять WEB сервер и написать интерфейс управления (Получить удаленное управление).
- Проверить подключение по радио, WiFi и RS485 дополнительных устройств (Проверить возможность построения распределенной сети).
- Проверить работу USB модема.
- Проверить работу в качестве роутера.
Для тестирования собрал быстренько стенд и начал развлекаться:
ATtiny13 уже запрограммирована, я ее трогать не стал пусть отвечает за питание по замыслу производителя.
MCP23017, ADS1115, PCF8574, DS3231, BMP180 – все это работает по I2C, так что понимание функционирования этой шины сразу определяет около 80% кода. Все завелось (как и ожидалось), благо адресация устройств уже установлена производителем.
nRF24L01P работает по SPI шине, примеров использования которой тоже достаточно. Связался с парой устройств на Arduino, все работает, как и задумано.
RS485 был опробован на протоколе Modbus со счетчиком электроэнергии Eastron SDM220. Показания снимаются, ни каких неожиданностей не возникло.
В USB воткнул модем Huawei E1550 все определилось, поднял vpn-клиент и связался с домашним сервером. Установил WEB-сервер и поигрался удаленным управлением.
Модуль WiFi работает, как в режиме клиента, так и в режиме точки доступа. Перевел модуль в режим AP, установил DHCP-сервер, настроил iptables и получил WiFi-роутер.
Установка локального Blynk-серввера не вызвала проблем. Проверил работу с ESP8266. Управление со смартфона работает, показания отображаются.
Итак, все поставленные задачи выполнены, центральное устройство умного дома запущено! Может сложиться впечатление, что все программируется, настраивается легко и просто или же я гений.
Уверяю вас, это не так! С большинством микросхем и модулей я уже сталкивался, так что на грабли наступал раньше причем лоб болел очень сильно , но шишки прошли, а знания остались!
Мощности процессорного модуля более чем достаточно для решения поставленных мною задач, во время тестирования средняя нагрузка на процессор не превышала 15%. Наличие eMMC памяти и MicroSD карты позволит организовать дублирование операционки и софта. Потребление без подключения USB устройств составляет около 300 мА. При таком потребление организовать бесперебойное питание от аккумулятора часов на 5 работы не составит сложностей.
Выбранная элементная база для построения периферии вполне надежна, что дает уверенность на беспроблемную работу устройства в режиме 24х7.
Наличие малого количества входов и выходов на самом устройстве вполне компенсируется наличием 485 шины и радиомодулем, то есть построить распределенную систему управления ни составит большого труда, а тот набор входов и выходов, что имеется на борту может быть использован для локального управления в шкафу электропитания.
Выводы
Выполнит ли это устройство, заявленную производителем, интеграцию всех smart устройств? С некоторой натяжкой можно сказать, что выполнит. Но к сожалению, не хватает радиомодуля на 433 MHz, CAN-шины, поддержки ZigBee, но наличие RS485, радиомодуля на 2.4 GHz и WiFi позволит подключить достаточное количество устройств, а протоколы взаимодействия можно реализовать программным способом.
Повторюсь, рассматриваемое устройство производится в двух вариантах: полностью готовым решением для построения распределенной системы управления и только «железо». На мой взгляд, готовое решение можно покупать только при нежелании разбираться с программированием и лени. В остальных случаях намного интереснее взять платформу и запрограммировать ее под себя.
Стоимость устройства в настоящий момент мне неизвестна. На мой взгляд, если производитель не загонит цену более 13 т.р. за «голую» версию, то данное устройство вполне интересно к приобретению. Закупив все детали в Китае и скомпоновав это в единый корпус, вы вряд ли получите дешевле.
Конкурентом может выступить Wiren Board 5. Он выигрывает по количеству портов и возможных интерфейсов, но проигрывает по мощности процессорного модуля. На стандартных задачах это никак не сказывается, а вот установить локально Blynk-сервер или сделать модуль голосового управления может быть проблематично. Если кто пробовал это сделать на WB5 прошу высказаться в комментариях.
P.S.: Уже закончив статью, обнаружил на плате еще и микросхему криптографии ATSHA204. Она поддерживает криптографический алгоритм SHA‑256 и отлично подходит для задач симметричной аутентификации. Ну это уже совсем для Гиков!
Автор: titanovs