Вводная инструкция для желающих попробовать

Привет, Хабр. Меня зовут Сергей Жуков и я преподаю на курсе «Embedded Developer» в Otus. В этой статье на примере контроллера Wiren Board покажу, как без CLI и скриптов пройти первый запуск: подключиться по USB/RNDIS, зайти в веб-интерфейс, выдать права, настроить сеть, добавить модули и кратко подключить датчики по RS-485/Modbus.


Давеча мне задали вопрос — «а как начать делать умный дом»?

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

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

В таких условиях мой выбор пал на Wirenboard. Во‑первых, сам контроллер с датчиками был у меня на руках :) А вторая причина — все основные настройки можно произвести через веб‑интерфейс, что понижает порог входа до минимума. А теперь по шагам.

Включение

Чтобы включить контроллер, понадобится, как минимум, сам контроллер и блок питания (12-48VDC) к нему. Как их соединить — просьба разобраться самостоятельно :)

Обший вид тестовой сборки
Обший вид тестовой сборки

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

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

Собственно включение — что достаточно ожидаемо — производится нажатием кнопки питания на лицевой панели.

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

Проверка связи

Для установки соединения с контроллером понадобится кабель Type‑C. Любой. Потому что фактически обмен данными производится по USB2, а разъем выбран исключительно для удобства использования.

Подключаем его в разъем консоли:

Расположение разъема отладочной консоли
Расположение разъема отладочной консоли

После этого в Windows (линуксоводы, как обычно, страдают) в диспетчере устройств должен появится еще один последовательный порт (Win+x → Device Manager):

Отображение последовательного интерфейса в дереве устройств
Отображение последовательного интерфейса в дереве устройств

В данном конкретном примере — это COM17. Именно через него и посмотрим на железяку изнутри. Устанавливаем Putty (https://ru.wikipedia.org/wiki/PuTTY), ну или свой любимый терминал, задаем настройки соединения и жмем Enter:

Настройки подключения для Терминала
Настройки подключения для Терминала

Если все прошло без приключений, то командная строка что‑нибудь ответит:

Ответ в косоль
Ответ в косоль

Если хочется немного острых ощущений — то можно перезагрузить контроллер кнопкой питания и посмотреть, что он будет слать в лог — все должно закончится хорошо :)

Лог успешной загрузки
Лог успешной загрузки

Панель управления

Итак: контроллер запитан, Линукс запущен и связь с устройством установлена. Теперь хотелось бы чего‑нибудь понастраивать и, желательно, ничего не сломать. Для этого понадобится второй порт — расположенный рядом:

Расположение разъема интерфейса RNDIS
Расположение разъема интерфейса RNDIS

Примечание: в новых версиях железа используется композитное устройство — сеть и консоль привязаны на один разъем — перетыкать ничего не надо. Но если эксперимент проводится на корпоративном компьютере, где политиками системы USB CDC разрешено, а RNDIS — нет, то не заработает ничего!

На всякий случай проверяем, что еще одна сеть появилась (Win+x → Network & Internet → Ethernet)

Окно сетевых настроек
Окно сетевых настроек

Если адрес компьютера 10.200.200.2 — то логично предположить, что перед ним еще что‑то есть. И эта догадка верна! Для проверки теории заходим в консоль (Win+x → Terminal) и тестируем связь:

ping 10.200.200.1

Окно проверки подключения
Окно проверки подключения

Ну или без дополнительных проверок заходим сразу на веб‑морду: вводим этот адрес (10.200.200.1) в строку браузера и любуемся результатом:

Пока не очень понятно — но уже очень интересно:)

Настройка

Для начала можно пробежаться по всем менюшкам — за это ничего не будет — и добраться до пункта прав доступа:

Страница управления правами доступа
Страница управления правами доступа

Чтоб чего‑нибудь понастраивать — понадобятся права Администратора, которые на этой страничке и выдаются — под честное слово :)

Сразу появляются дополнительные менюшки, по которым опять можно пробежать — но теперь с осторожностью. К примеру, вкладка «Устройства» и в самом деле управляет устройством!

Страница управления устройствами
Страница управления устройствами

Ну и пробежимся по основным доступным опциям.

Настройки → Конфигурационные файлы → Сетевые соединения

Страница настроек сетевых подключений
Страница настроек сетевых подключений

Здесь, очевидным образом, спрятались сетевые настройки. Можно осуществить подключение к локальной сети или WiFi, к примеру. Тогда получится продолжить упражнения уже без отладочного кабеля USB.

Настройки → Конфигурационные файлы → Модули расширения и порты

Список боковых модулей расширения
Список боковых модулей расширения

Если контроллер был приобретен с боковыми модулями — то здесь следует указать, какими именно. Просто отчекиваем их мышкой последовательно согласно физической установке. Самое главное — не забыть нажать кнопочку «Записать»!

Если все было сделано правильно, то релюшками можно будет пощелкать и панели управления:

Виджет управления реле
Виджет управления реле

Характерный звук подтвердит выполнение команды :)

Бонус трек

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

Датчик надо предварительно подключить. Любезно воспользуемся иллюстрацией с сайта производителя:

Схема проводного подключения датчиков
Схема проводного подключения датчиков

Вроде все просто: А к А, плюс к плюсу ну и так далее...

Затем надо убедиться, что шина включена: Настройки → Конфигурационные файлы → Модули расширения и порты → Интерфейс RS485-1

— Тип модуля: Интерфейс RS485

— Failsafe bias: Включен

— 120Ω резистор‑терминатор: Включен

Страница настроек порта RS485
Страница настроек порта RS485

Далее настраиваем подключение удаленных датчиков: Настройки → Конфигурационные файлы → Настройка драйвера Serial‑устройств →RS485-1

Страница настроек датчиков
Страница настроек датчиков

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

Список с поддерживаемыми полевыми устройствами
Список с поддерживаемыми полевыми устройствами

Ну и взводим галочку «Опрашивать устройство», чтобы получать из него данные периодически:

Страница настроек параметров датчика
Страница настроек параметров датчика

Если все прошло хорошо, а не как обычно, то в разделе «устройства» даже что‑то появится:

Пример отображения состояния подключенного устройства Modbus
Пример отображения состояния подключенного устройства Modbus

Вот примерно подобным образом на RS485 шину и навешиваются дополнительные устройства с целью охвата обширных площадей.

Итого

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

Предлагаю первый шаг в управление домом (или еще чем‑нибудь) считать выполненным!


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

Отзыв студента курса Embedded Developer
Отзыв студента курса Embedded Developer

Если вам интересно разобраться в архитектуре микроконтроллеров, интерфейсах взаимодействия и практических методах программирования встроенных систем на профессиональном уровне, обратите внимание на курс «Embedded Developer». Чтобы понять, подойдет ли вам курс, пройдите вступительный тест.

А 25 сентября в 20:00 в рамках курса я проведу бесплатный урок на тему «Разработка Embedded устройств для IoT». Записаться на этот и другие открытые уроки можно на странице курса.

Комментарии (0)