Как стать автором
Обновить

Ещё одно устройство для Умного дома

Время на прочтение 6 мин
Количество просмотров 51K

Вступление


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

Описание от производителя


По словам производителя, исследуемое устройство представляет собой платформу, позволяющую создавать автоматизированные системы мониторинга и управления инфраструктурными объектами. Платформа позволяет разрабатывать как централизованные, так и распределенные системы, в том числе подключать любые смарт-устройства, а функциональные особенности системы определяются установленным программным обеспечением.

Производитель заявляет следующие характеристики устройства:
Процессор • 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 – быстро, дешево и сердито! Все микросхемы хорошо известны широкому кругу радиолюбителей, найти описание и базовые способы применения не составит никакого труда.

После изучения устройства сформировался примерный перечень задач:

  1. Через выходы «сухих» контактов подключить контакторы 220v. (Получить управляемые линии электропитания)
  2. К двум выходам 12v/1А и на два входа подключить стандартные охранные и пожарные датчики. (Получить охранно-пожарную систему, без выхода на пульт, но это зачастую и не надо).
  3. На свободные входы-выходы подключить, датчики протечки и шаровые краны с электроприводом на 12 v. (Получить защиту от протечки).
  4. Поднять WEB сервер и написать интерфейс управления (Получить удаленное управление).
  5. Проверить подключение по радио, WiFi и RS485 дополнительных устройств (Проверить возможность построения распределенной сети).
  6. Проверить работу USB модема.
  7. Проверить работу в качестве роутера.



Для тестирования собрал быстренько стенд и начал развлекаться:

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 и отлично подходит для задач симметричной аутентификации. Ну это уже совсем для Гиков!
Теги:
Хабы:
+30
Комментарии 181
Комментарии Комментарии 181

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн