Создайте сеть потоков с помощью платы разработки B91 и OpenThread.

1. Введение

26b7f4f6b3ea0700.png

OpenThread — это реализация с открытым исходным кодом сетевого протокола Thread® , представляющего собой надежный и безопасный протокол беспроводной ячеистой сети, разработанный для устройств Интернета вещей (IoT). OpenThread был разработан командой Nest компании Google и свободно доступен сообществу разработчиков как проект с открытым исходным кодом.

Спецификация Thread устанавливает надежный, безопасный и энергоэффективный протокол беспроводной связи для устройств с ограниченными ресурсами, которые обычно встречаются в умных домах и коммерческих зданиях. OpenThread включает в себя весь сетевой уровень, такой как IPv6, 6LoWPAN, IEEE 802.15.4 с защитой MAC, установление связи в ячеистой сети и маршрутизация в ячеистой сети.

Компания Telink интегрировала реализацию OpenThread в Zephyr RTOS, обеспечивая бесшовную совместимость с оборудованием Telink. Исходный код этой интеграции легко доступен на GitHub , а также предоставляется в виде комплекта для разработки программного обеспечения (SDK).

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

codelab_overview.png

Что вы узнаете

  • Для настройки реализации OpenThread с использованием среды разработки Telink Zephyr.
  • Для сборки примеров командной строки OpenThread ( ot-cli-ftd и ot-rcp ) и их прошивки на платы разработки Telink B91.
  • Для настройки маршрутизатора OpenThread Border Router (OTBR) с использованием Docker на Raspberry Pi 3B+ или более поздней версии.
  • Для создания сети потоков на OTBR.
  • Для добавления устройств в сеть Thread с использованием внеполосной отладки.
  • Для проверки связи между узлами в сети Thread с помощью CLI.

Что вам понадобится

Аппаратное обеспечение:

  • Две платы разработки B91.
  • Один Raspberry Pi 3B+ или более поздней версии с образом операционной системы Raspbian.
  • Компьютер под управлением Linux с как минимум двумя USB-портами.
  • Коммутатор (или маршрутизатор) с подключением к интернету и несколько кабелей Ethernet.

Программное обеспечение:

  • Инструмент для записи и отладки Telink — LinuxBDT.
  • Инструмент для работы с последовательным портом, например, PuTTY.
  • Другие инструменты, такие как Git и West.

2. Предварительные требования

Концепции потоков и интерфейс командной строки OpenThread

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

Linux-машина

Компьютер под управлением Linux (Ubuntu v20.04 LTS или более поздняя версия) выступает в качестве машины сборки для настройки среды разработки Telink Zephyr и прошивки всех плат разработки Thread. Для выполнения этих задач компьютеру Linux необходимы два свободных USB-порта и подключение к интернету.

Подключение через последовательный порт и терминалы

Устройство можно напрямую подключить к USB-порту компьютера под управлением Linux. Кроме того, для доступа к устройствам вам понадобится программа для работы с последовательным портом.

В этом практическом занятии для управления FTD Joiner и Raspberry Pi используется терминальная программа PuTTY. В ней представлен обзор её использования, но можно также применять и другие терминальные программы.

Для выполнения этого лабораторного задания требуется два комплекта B91 Development Kits. На фотографии ниже показан минимально необходимый набор компонентов.

overview.png

Один из этих комплектов будет использоваться в качестве RCP (радиопроцессора), а другой — в качестве FTD (полнопотокового устройства). Если у вас еще нет этого комплекта, вы можете получить более подробную информацию на официальном сайте Telink . Для работы потребуются следующие компоненты:

Индекс

Имя

1

Совет по развитию Telink B91

2

Доска для выжигания Телинк

3

Антенна 2,4 ГГц

4

USB-кабель (USB A — mini USB)

Raspberry Pi 3B+ или более поздней версии с образом операционной системы Raspbian.

Для выполнения этого практического задания потребуется Raspberry Pi 3B+ или более поздняя версия с образом ОС Raspbian Bullseye Lite или Raspbian Bullseye с рабочим столом . Он должен быть подключен к интернету через Ethernet и настроен как хост для OpenThread Border Router (OTBR).

Сетевое подключение

Коммутатор (или маршрутизатор) с подключением к интернету и несколько кабелей Ethernet. Они используются для подключения Raspberry Pi к машине под управлением Linux, что облегчает настройку Raspberry Pi пользователем через хост.

LinuxBDT

Инструмент Telink Burning and Debugging Tool (BDT) , применимый ко всем сериям чипов Telink, позволяет стирать и прошивать микропрограмму OpenThread на отладочные платы Telink B91. Установите версию linuxBDT для Linux (на базе X86) на свой компьютер с Linux.

Другие

  • Git используется для настройки среды разработки Telink Zephyr.
  • Уэст отвечает за управление проектом Zephyr и сборку бинарных файлов OpenThread.

3. Настройка прошивки

На компьютере с Linux откройте терминал командной строки и выполните следующие команды, чтобы убедиться, что ваша APT обновлена.

$ sudo apt update
$ sudo apt upgrade

После этого перейдите к следующим шагам.

  1. Установите зависимости.
    $ wget https://apt.kitware.com/kitware-archive.sh
    $ sudo bash kitware-archive.sh
    $ sudo apt install --no-install-recommends git cmake ninja-build \
    gperf ccache dfu-util device-tree-compiler python3-dev python3-pip \
    python3-setuptools python3-tk python3-wheel xz-utils file make gcc \
    gcc-multilib g++-multilib libsdl2-dev
    
    В настоящее время Zephyr требует минимальных версий основных зависимостей, таких как CMake (3.20.0), Python3 (3.6) и Devicetree Compiler (1.4.6).
    $ cmake --version
    $ python3 --version
    $ dtc --version
    
    Перед тем как переходить к следующим шагам, проверьте установленные версии в вашей системе. Если версии указаны неверно, переключитесь на стабильное и актуальное зеркало APT или обновите эти зависимости вручную.
  2. Установите запад.
    $ pip3 install --user -U west
    $ echo 'export PATH=~/.local/bin:"$PATH"' >> ~/.bashrc
    $ source ~/.bashrc
    
    Убедитесь, что ~/.local/bin добавлен в переменную среды $PATH .
  3. Получите исходный код проекта Zephyr.
    $ west init ~/zephyrproject
    $ cd ~/zephyrproject
    $ west update
    $ west blobs fetch hal_telink
    $ west zephyr-export
    
  4. Установите дополнительные зависимости Python для Zephyr.
    $ pip3 install --user -r ~/zephyrproject/zephyr/scripts/requirements.txt
    
  5. Настройте инструментарий Zephyr. Загрузите инструментарий Zephyr (около 1–2 ГБ) в локальную директорию, чтобы иметь возможность прошивать большинство плат.
    $ wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.16.1/zephyr-sdk-0.16.1_linux-x86_64.tar.xz
    $ wget -O - https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.16.1/sha256.sum | shasum --check --ignore-missing
    
    Загрузите Zephyr SDK и поместите его в рекомендуемый путь, как показано ниже.
    $HOME/zephyr-sdk[-x.y.z]
    $HOME/.local/zephyr-sdk[-x.y.z]
    $HOME/.local/opt/zephyr-sdk[-x.y.z]
    $HOME/bin/zephyr-sdk[-x.y.z]
    /opt/zephyr-sdk[-x.y.z]
    /usr/zephyr-sdk[-x.y.z]
    /usr/local/zephyr-sdk[-x.y.z]
    
    Где [-xyz] — необязательный текст, который может быть любым, например, -0.16.1. После установки SDK каталог нельзя переместить. Затем установите набор инструментов Zephyr.
    $ tar xvf zephyr-sdk-0.16.1_linux-x86_64.tar.xz
    $ cd zephyr-sdk-0.16.1
    $ ./setup.sh -t riscv64-zephyr-elf -h -c
    
  6. Создайте пример "Hello World". Сначала убедитесь в правильности официальной конфигурации проекта Zephyr, используя пример "Hello World", а затем переходите к настройке собственного проекта.
    $ cd ~/zephyrproject/zephyr
    $ west build -p auto -b tlsr9518adk80d samples/hello_world
    
    Используйте команду West build для сборки примера hello_world из корневого каталога репозитория Zephyr. Файл прошивки с именем zephyr.bin находится в build/zephyr directory .
  7. Добавьте скрипт среды Zephyr в файл ~/.bashrc . Выполните следующие команды.
    $ echo "source ~/zephyrproject/zephyr/zephyr-env.sh" >> ~/.bashrc
    $ source ~/.bashrc
    
  8. Добавьте удалённый репозиторий Telink Zephyr. Загрузите репозиторий Telink локально как ветку разработки и обновите его.
    $ cd ~/zephyrproject/zephyr
    $ git remote add telink-semi https://github.com/telink-semi/zephyr
    $ git fetch telink develop
    $ git checkout develop
    $ west update
    $ west blobs fetch hal_telink
    

Для получения более подробной информации вы можете обратиться к руководству по началу работы с Zephyr Doc .

Загрузите инструмент Telink LinuxBDT и распакуйте его в локальную директорию на вашем компьютере с Linux, например, в домашний каталог ~ , чтобы иметь возможность прошить микропрограмму на плату разработки B91.

$ cd ~
$ wget http://wiki.telink-semi.cn/tools_and_sdk/Tools/BDT/LinuxBDT.tar.bz2
$ tar -vxf LinuxBDT.tar.bz2 

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

$ cd LinuxBDT
$ sudo ./bdt lsusb -v
Bus 002 Device 001: ID 1d6b:0003 xHCI Host Controller
Bus 001 Device 003: ID 0bda:565a Integrated_Webcam_HD
Bus 001 Device 023: ID 413c:301a Dell MS116 USB Optical Mouse
Bus 001 Device 037: ID 248a:826a Telink Web Debugger v3.6
Bus 001 Device 001: ID 1d6b:0002 xHCI Host Controller

Если вы видите сообщение "Telink Web Debugger v3.6", это означает, что программист BDT успешно подключился к машине под управлением Linux.

Компиляция прошивки

В этом практическом занятии мы создадим два типа прошивки OpenThread:

  • ot-cli-ftd ,
  • и ot-rcp .

Методы компиляции следующие:

  1. Радиокопроцессор ( ot-rcp )
    $ cd ~/zephyrproject
    $ rm -rf build_ot_coprocessor
    $ west build -b tlsr9518adk80d -d build_ot_coprocessor zephyr/samples/net/openthread/coprocessor -- -DDTC_OVERLAY_FILE="usb.overlay" -DOVERLAY_CONFIG=overlay-rcp-usb-telink.conf
    
  2. Полнофункциональное устройство Thread с интерактивной командной строкой ( ot-cli-ftd )
    $ cd ~/zephyrproject
    $ rm -rf build_ot_cli_ftd
    $ west build -b tlsr9518adk80d -d build_ot_cli_ftd zephyr/samples/net/openthread/cli -- -DOVERLAY_CONFIG=overlay-telink-fixed-mac.conf -DCONFIG_OPENTHREAD_FTD=y
    

Прошивка

Подключите плату разработки B91 к плате для прошивки с помощью USB-кабеля, как показано на рисунке ниже.

connection_overview.png

Для прошивки микропрограммы выполните следующие команды в командной строке (на примере прошивки микропрограммы ot-cli-ftd ).

$ cd ~/zephyrproject/build_ot_cli_ftd/zephyr
$ cp zephyr.bin ~/LinuxBDT/bin/ot-cli-ftd.bin
$ cd ~/LinuxBDT
$ sudo ./bdt 9518 ac
 Activate OK!
$ sudo ./bdt 9518 wf 0 -i bin/ot-cli-ftd.bin
 EraseSectorsize...
 Total Time: 2181 ms
 Flash writing...
 [100%][-] [##################################################]
 File Download to Flash at address 0x000000: 491700 bytes
 Total Time: 30087 ms

Метод прошивки для ot-rcp в основном такой же, как и для ot-cli-ftd . Однако есть различия в путях и названиях прошивок.

После прошивки различите две платы разработки B91, соответственно пометив их. Плату, прошитую ot-cli-ftd обозначьте как "FTD Joiner", а плату, прошитую ot-rcp как "RCP".

4. Настройте последовательную консоль для устройства FTD Joiner.

Как показано на рисунке, подключите FTD Joiner непосредственно к USB-порту компьютера под управлением Linux.

usb_connection.png

После подключения устройства FTD Joiner к компьютеру под управлением Linux откройте PuTTY. Затем создайте новый терминал, укажите информацию о последовательном порте и откройте его.

uart_console.png

Справочник по командной строке OpenThread находится здесь: Справочник по CLI OpenThread . Обязательно добавляйте префикс ot ко всем командам.

Примеры:

> ot state
disabled
Done
> ot channel
11
Done
>

5. Настройте Raspberry Pi в качестве пограничного маршрутизатора OpenThread.

Маршрутизатор OpenThread Border Router — это устройство, состоящее из двух основных частей:

  • Raspberry Pi содержит все необходимые сервисы и микропрограммное обеспечение для работы в качестве пограничного маршрутизатора (BR).
  • RCP отвечает за обмен данными между потоками.

Радиокопроцессор (RCP)

Для прошивки микропрограммы ot-rcp выполните те же действия, что и при прошивке микропрограммы ot-cli-ftd . Подключите плату разработки B91 к USB-порту Raspberry Pi, как показано на рисунке ниже.

OTBR_overview.png

Raspberry Pi

  1. Убедитесь, что образ операционной системы Raspbian Bullseye Lite или Raspbian Bullseye с рабочим столом корректно записан на SD-карту.
  2. У вас есть возможность либо подключиться к Raspberry Pi по SSH, либо работать напрямую с операционной системой Raspbian. В этом практическом занятии будет использоваться SSH.
  3. Прежде чем переходить к установке OTBR Docker на следующем шаге, убедитесь, что вы сначала обновили локальный репозиторий и менеджер пакетов.
    $ sudo apt-get update
    $ sudp apt-get upgrade
    

Установите Docker.

Если вы на предыдущем шаге просто обновили локальный репозиторий и менеджер пакетов APT, перезагрузите Raspberry Pi, а затем откройте окно SSH-терминала.

  1. Установите Docker:
    $ curl -sSL https://get.docker.com | sh
    
  2. Добавьте текущую учетную запись в группу Docker, чтобы предоставить необходимые права доступа, и вам не придется добавлять sudo перед каждой командой.
    $ sudo usermod -aG docker $USER
    
    Для вступления изменений в силу необходимо перезагрузить Raspberry Pi.
  3. Если Docker не запущен, запустите его:
    $ sudo dockerd
    
  4. Скрипты брандмауэра OTBR генерируют правила внутри контейнера Docker. Перед этим выполните modprobe для загрузки модуля ядра iptables.
    $ sudo modprobe ip6table_filter
    

Настройка и запуск Docker

В этом практическом задании используется образ Docker OTBR, напрямую загруженный из Docker Hub OpenThread . Этот образ был протестирован и проверен командой OpenThread.

  1. Загрузите последнюю версию образа:
    $ docker pull openthread/otbr:latest
    
  2. Проверьте список образов в контейнере Docker:
    $ docker images
    REPOSITORY        TAG       IMAGE ID       CREATED      SIZE
    openthread/otbr   latest    db081f4de15f   6 days ago   766MB
    
  3. Определите имя последовательного порта устройства RCP, проверив /dev ; ttyACM0 указывает на правильное подключение RCP.
    $ ls /dev/tty*
    ...
    /dev/ttyACM0
    ... 
    
  4. При первом запуске Docker-контейнера OTBR укажите последовательный порт RCP ( ttyACM0 ). Для продолжения использования Docker-контейнера OTBR выполните команду `docker start otbr` .
    $ docker run --name "otbr" --sysctl "net.ipv6.conf.all.disable_ipv6=0 net.ipv4.conf.all.forwarding=1 net.ipv6.conf.all.forwarding=1" -p 8080:80 --dns=127.0.0.1 -it --volume /dev/ttyACM0:/dev/ttyACM0 --privileged openthread/otbr --radio-url spinel+hdlc+uart:///dev/ttyACM0
    
  5. Откройте новое окно SSH-терминала, чтобы проверить соединение между Raspberry Pi и RCP.
    $ docker exec -ti otbr sh -c "sudo ot-ctl"
    > state 
    disabled
    Done
    

Дополнительные команды Docker:

  • Получите информацию о запущенном контейнере Docker:
    $ docker ps -aq
    
  • Остановить Docker-контейнер OTBR:
    $ docker stop otbr
    
  • Удалите Docker-контейнер OTBR:
    $ docker rm otbr
    
  • Перезагрузите Docker-контейнер OTBR:
    $ docker restart otbr
    

На этом этапе устройство FTD Joiner и модуль OTBR готовы, и вы можете перейти к следующему шагу — построению сети Thread.

6. Создайте сеть потоков.

Создание сети потоков в RCP

Для создания сети Thread мы используем оболочку ot-ctl на OTBR. Если вы вышли из оболочки в предыдущем разделе, введите следующую команду, чтобы запустить ее снова в SSH-терминале:

$ docker exec -ti otbr sh -c "sudo ot-ctl"

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

Индекс

Командование

Введение

Ожидаемый ответ

1

dataset init new

Создайте новый набор данных случайной сети.

Сделанный

2

dataset commit active

Зафиксируйте новый набор данных в активном операционном наборе данных в энергонезависимой памяти.

Сделанный

3

ifconfig up

Активируйте интерфейс IPv6.

Сделанный

4

thread start

Включите работу протокола Thread и подключитесь к сети Thread.

Сделанный

Подождите 10 секунд, пока интерфейс потока не заработает.

5

state

Проверьте состояние устройства. Эту команду можно вызывать несколько раз, пока она не станет ведущей и не перейдет к следующему шагу.

лидер
Сделанный

6

dataset active

Проверьте полный набор активных оперативных данных и запишите сетевой ключ.

Временная метка активности: 1
Канал: 13
Маска канала: 0x07fff800
Идентификатор PAN: b07476e168eda4fc
Локальный префикс сетки: fd8c:60bc:a98:c7ba::/64
Сетевой ключ: c312485187484ceb5992d2343baaf93d
Название сети: OpenThread-599c
Идентификатор PAN: 0x599c
PSKc: 04f79ad752e8401a1933486c95299f60
Политика безопасности: 672 onrc 0
Сделанный

Ключ сети, сгенерированный случайным образом программой OTBR во время создания сети, будет использоваться при подключении устройств ot-cli-ftd к этой сети Thread.

Добавьте соединитель FTD в поток с помощью внеполосного ввода в эксплуатацию.

Внеполосная настройка подразумевает передачу сетевых учетных данных устройствам, ожидающим подключения к сети, не связанным с беспроводной связью (например, путем ручного ввода в интерфейсе командной строки OpenThread). Введите следующие команды в указанном порядке в последовательной консоли устройства FTD Joiner.

Индекс

Командование

Введение

Ожидаемые ответы

1

ot dataset networkkey c312485187484ceb5992d2343baaf93d

Для подключения устройства к сети Thread достаточно лишь сетевого ключа.

Сделанный

2

ot dataset commit active

Зафиксируйте новый набор данных в активном операционном наборе данных в энергонезависимой памяти.

Сделанный

3

ot ifconfig up

Активируйте интерфейс IPv6.

Сделанный

4

ot thread start

Включите работу протокола Thread и подключитесь к сети Thread.

Сделанный

Подождите 20 секунд, пока устройство подключится и настроится.

5

ot state

Проверьте состояние устройства.

дочерний/маршрутизатор
Сделанный

Топология

Введите в SSH-терминале такие команды, как ipaddr , child table , router table чтобы получить ответы, подобные приведенным ниже фрагментам кода.

> ipaddr rloc
fd8c:60bc:a98:c7ba:0:ff:fe00:b000
Done
> child table
| ID  | RLOC16 | Timeout    | Age        | LQ In | C_VN |R|D|N|Ver|CSL|QMsgCnt|Suprvsn| Extended MAC     |
+-----+--------+------------+------------+-------+------+-+-+-+---+---+-------+-------+------------------+
|   1 | 0xb001 |        240 |         23 |     3 |   51 |1|1|1|  3| 0 |     0 |   129 | 82bc12fbe783468e |

Done
> router table
| ID | RLOC16 | Next Hop | Path Cost | LQ In | LQ Out | Age | Extended MAC     | Link |
+----+--------+----------+-----------+-------+--------+-----+------------------+------+
| 44 | 0xb000 |       63 |         0 |     0 |      0 |   0 | 7ae354109d611f7e |    0 |

Done
...
> child table
| ID  | RLOC16 | Timeout    | Age        | LQ In | C_VN |R|D|N|Ver|CSL|QMsgCnt|Suprvsn| Extended MAC     |
+-----+--------+------------+------------+-------+------+-+-+-+---+---+-------+-------+------------------+

Done
> router table
| ID | RLOC16 | Next Hop | Path Cost | LQ In | LQ Out | Age | Extended MAC     | Link |
+----+--------+----------+-----------+-------+--------+-----+------------------+------+
| 33 | 0x8400 |       63 |         0 |     3 |      3 |  13 | e61487c1cda940a6 |    1 |
| 44 | 0xb000 |       63 |         0 |     0 |      0 |   0 | 7ae354109d611f7e |    0 |

Done

Значение RLOC16 у OTBR равно 0xb000 , а значение RLOC16 у FTD Joiner изначально равно 0xb001 . Затем RLOC16 у FTD Joiner становится 0x8400 после получения идентификатора маршрутизатора. Видно, что FTD Joiner был преобразован из дочернего узла в маршрутизатор.

В текущей сети Thread содержится два узла, а топология показана на рисунке ниже.

топология.png

7. Взаимодействие между нитевидными устройствами

Связь ICMPv6

Для проверки возможности обмена данными между устройствами Thread в одной сети мы используем команду ping . Сначала используем команду ipaddr для получения количества строк кода (RLOC) устройства.

> ipaddr
fd8c:60bc:a98:c7ba:0:ff:fe00:fc11
fdbd:7274:649c:1:1d19:9613:f705:a5af
fd8c:60bc:a98:c7ba:0:ff:fe00:fc10
fd8c:60bc:a98:c7ba:0:ff:fe00:fc38
fd8c:60bc:a98:c7ba:0:ff:fe00:fc00
fd8c:60bc:a98:c7ba:0:ff:fe00:b000       # Routing Locator (RLOC)
fd8c:60bc:a98:c7ba:5249:34ab:26d1:aff6
fe80:0:0:0:78e3:5410:9d61:1f7e
Done

Для выполнения операции ping введите следующую команду в последовательной консоли устройства FTD Joiner.

> ot ping fd8c:60bc:a98:c7ba:0:ff:fe00:b000
16 bytes from fd8c:60bc:a98:c7ba:0:ff:fe00:b000: icmp_seq=1 hlim=64 time=19ms
1 packets transmitted, 1 packets received. Packet loss = 0.0%. Round-trip min/avg/max = 19/19.0/19 ms.
Done

Ответ последовательного порта указывает на то, что сторона OTBR получила запрос ping, а FTD Joiner получил ответ ping, возвращенный OTBR. Связь между двумя устройствами успешна.

UDP-коммуникация

Сервисы приложений, предоставляемые OpenThread, также включают UDP. Вы можете использовать API UDP для передачи информации между узлами в сети Thread или для передачи информации во внешние сети через Border Router. Подробное описание API UDP OpenThread приведено в примере использования CLI OpenThread — UDP . В этом практическом занятии будут использованы некоторые из API этого примера для передачи информации между OTBR и FTD Joiner.

Сначала получите Mesh-Local EID устройства OTBR. Этот адрес также является одним из IPv6-адресов устройства Thread, и его можно использовать для доступа к устройствам Thread в том же сетевом разделе Thread.

> ipaddr mleid
fd8c:60bc:a98:c7ba:5249:34ab:26d1:aff6
Done

Введите следующие команды в SSH-терминале, чтобы включить OTBR UDP и привязать порт 1022 устройства.

> udp open
Done
> udp bind :: 1022
Done

Введите следующие команды в последовательной консоли и включите UDP для FTD Joiner. Привяжите порт 1022 устройства, а затем отправьте 5-байтовое hello сообщение на OTBR.

> ot udp open 
Done
> ot udp bind :: 1022
Done
> ot udp send fd8c:60bc:a98:c7ba:5249:34ab:26d1:aff6 1022 hello
Done

Терминал SSH выводит следующую информацию: OTBR получает сообщение hello от FTD Joiner, что означает успешное UDP-соединение.

> 5 bytes from fd8c:60bc:a98:c7ba:9386:63cf:19d7:5a61 1022 hello

8. Поздравляем!

Вы создали простую сеть Thread и проверили обмен данными внутри этой сети.

Теперь вы знаете:

  • Как создать и использовать среду разработки Telink Zephyr.
  • Как собрать бинарные файлы ot-cli-ftd и ot-rcp , а также прошить их на платы разработки Telink B91.
  • Как настроить Raspberry Pi 3B+ или более позднюю версию в качестве пограничного маршрутизатора OpenThread (OTBR) с использованием Docker.
  • Как создать сеть потоков в OTBR.
  • Как добавить устройства в сеть Thread с помощью внеполосной настройки.
  • Как проверить связь между узлами в сети Thread.

Дополнительная литература

Посетите openthread.io и GitHub , чтобы узнать о различных ресурсах OpenThread, в том числе:

Справочные документы: