Samsung ARTIK 030 (MGM111) и Thread. Быстрый старт

ARTIK 030 от Samsung есть не что иное, как MGM111 от Silicon Labs. Данный модуль реализует стандарт связи 802.15.4, а значит, что на нем может быть реализовано устройство как для Thread, так и для ZigBee.

В статье рассмотрен быстрый старт работы с модулем ARTK 030 с использованием ARTIK 030 Dev Kit и протокола Thread. У Samsung есть описание быстрого старта для Thread — ARTIK 030 Thread Getting Started, но в нем рассмотрены не все «подводные камни».

artik 030

Что необходимо

  1. Набор разработчика ARTIK 030 Development Kit SIP-KITSZG001
  2. Установленная среда разработки IAR Embedded Workbench for ARM 7.80
  3. Установленная среда разработки Simplicity Studio v4

Важное замечание по поводу IAR

От IAR используется только компилятор, вся разработка ведется непосредственно в Simplicity Studio. Для работы необходима полная версия IAR IAR for ARM версии, не ниже 7.80. Для тестирования хватит пробной 30-дневной версии.

Шаг 0. Регистрация набора ARTIK 030 для получения доступа к фреймворку Thread от Silicon Labs

В данной статье мы не будем компилировать прошивку — поэтому ни IAR, ни регистрация отладочного набора, по большому счету, не нужны. Однако, как только вы захотите хоть что-то изменить в демо-прошивке, они будут необходимы.

У Silicon Labs, как и прежде, осталось правило относительно протоколов — для доступа к фреймворку необходимо зарегистрировать набор разработчика.

Как это делается:

  1. Подключаем отладочную плату к ПК.
  2. Выбираем в ниспадающем меню Login -> Kit Registration.
  3. Вводим серийный номер набора разработчика в соответствующее поле. Серийный номер набора расположен на коробке с набором разработчика, в виде надписи на наклейки со штрих-кодом. Обозначается как S/N

Без регистрации кита вам не будет предоставлен доступ к фреймворкам Thread и Zigbee.

И да — если у вас нет официального кита, то вам доступ не предоставят. Поэтому нет варианта сэкономить ~500$, даже если у вас есть другие отладочные наборы от Silicon Labs, которые дешевле. Например, наличие Thunderboard Sense, про который я писал ранее, не дает права доступа к соответствующим фреймворкам, не смотря на возможность работы Thunderboard Sense в составе ZigBee или Thread сетей. Я уже обращался в службу поддержки с такими вопросами и ответ был следующим: «Мы считаем, что использование рекомендованных китов обязательно и не допускает исключений».

Шаг 1. Скачиваем ARTIK 030 Tutorial 1 Package и прошиваем две платы

Со страницы загрузки ARTIK Developer Portal скачиваем ARTIK 030 Tutorial 1 Package и распаковываем в удобное место. В данном архиве содержатся две прошивки в виде бинарных файлов:

  • Бутлоадер
  • Прошивка устройства типа REED

После распаковки переходим в Simplicity Studio и прошиваем первую плату.

artik 030 upload firmware

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

artik 030 binary upload

Затем точно также поступаем и со второй платой.

Шаг 2. Открываем консоли двух устройств

Там же, в подключенных платах, выбираем открытие консоли для обеих устройств (пункт Launch Console).

artik 030 launch console

Для работы необходимо выбрать Serial 1.

artik 030 consoles

Прошивка конфигурирует оба устройства как оконечные устройства с вохможностью маршрутизации (Routed Enable End Device — REED). Для подключения одно из устройств мы сконфигурируем так, чтобы одно было роутером (commissioner), а второе — оконечным устройством (joiner).

Шаг 3. Настраиваем одно из устройств в качестве роутера

Для начала сбросим прошлые настройки сети. Для этого в открытой консоли устройства введем:

Затем — установим приватный ключ, который должен состоять из 16 шестнадцатеричных цифр:

Приведенный ключ — только для примера. Для вашего случая, естественно, он может быть другим.

Далее посылаем команду формирования (form) сети:

где:

  • 25 — номер канала;
  • 3 — мощность в dBm;
  • 2 — тип устройства;
  • «PC1» — ID сети (network ID);
  • «FD00:0DB8::» — ULA-префикс (ULA prefix)

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

После этого можем выполнить команду info и получим примерно следующий вывод:

На этом конфигурация роутера (commissioner) окончена.

Шаг 4. Настраиваем одну из плат в качестве оконечного устройства

Вторая плата у нас будет являться оконечным устройством (joiner).

Для начала также сбросим настройки сети:

Далее — установим ключ. Ключ должен быть равен ключу, заданному на роутере:

После этого назначим оконечное устройство сети (commision), созданной роутером. В общем виде команда будет выглядеть следующим образом:

Для приведенных выше значений команда будет иметь вид:

После этого — присоединяемся (join) к сети:

Шаг 5. Проверяем связь между устройствами

Это можно осуществить с помощью команды ping, общий вид которой:

Узнать local_ip_0 можно с помощью команды info.

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

Шаг 6. Обмениваемся командами между устройствами

Обмен между устройствами возможен по протоколу CoAP, который также реализует HTTP-запросы. Для передачи сообщения нам нужно знать полный IPv6-адрес устройства и маршрут отправки с возможными параметрами:

Для приведенных выше данных и текущей прошивки команда будет иметь вид.

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

Выводы

В статье рассмотрен быстрый старт работы с ARTIK 030. Буду благодарен за обратную связь.

Ссылки

Добавить комментарий