Обзор WISNode-LoRa

Сегодня обзор будет на ардуино-стайл плату с модулем RAK811, который содержит в себе микроконтроллер для малопотребляющих решений STM32L151CBU6 и LoRa трансивер SX1276 с внешней обвязкой для работы на частоте 868 МГц.

Что же такое LoRa? Это, собственно, как метод модуляции LoRa в беспроводных сетях LPWAN, так и открытый протокол LoRaWAN.
Технология LoRa может обеспечивать низкоскоростную связь на расстояния до 15 км при минимальном потреблении электроэнергии, обеспечивающем несколько лет автономной работы на одной батарее.
Диапазон применений данной технологии огромен: от собственной домашней автоматизации и модных течений интернета вещей (Internet of Things, IoT) до автоматизации промышленности и организации умных городов.

Сам метод модуляции LoRa проприетарный, запатентован компанией Semtech. В настоящее же время и другие производители имеют лицензию на производство LoRa трансиверов (например Microchip, STMicroelectronics).

Первый взгляд

Приходит плата в стандартной для RAKWireless коробочке (кликабельно):

Внутри следующий набор:

B35-3

  • Собственно, сама плата WISNode-LoRa;
  • USB-microUSB шнур хорошего качества;
  • Антенна с SMA разъёмом;
  • Переходная плата-согласователь уровней UART, для использования с 5 В ардуино;
  • Пара перемычек MJ-6 для PLS-типа разъёмов.

Плата поближе отдельно (кликабельно):

И модуль RAK811 без крышки:

B35-8

Справа от SX1276 видны две ВЧ микросхемы чисто китайского происхождения (просто так не купить на замену или в свои проекты) в малогабаритных корпусах, а именно RFSW8001 (100…4000 МГц коммутатор) и QM14001 (ВЧ усилитель).

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

Схемотехника

Пробежимся по официальной схеме для первой ревизии (которая у меня) —  WisNode-LoRa Schematic_20161216.

Итак, по порядку. Ардуино-стайл гребёнки H1…H4 сделаны практически просто прямыми переходниками, и кроме питания\сброса есть соединения только к UART (и тот отключаемый) для работы по АТ-командам:

B35-9

На плате имеется одна кнопка SW1 для сброса:

B35-10

К USB подключен USB-UART на бюджетной CH340G, через которую можно работать с АТ-командами или прошить STM32 (выставив пин boot, отвечающий за соответствующий режим), также есть индикация не только питания, но и активности на обоих линиях UART:

B35-11

А также здесь же показан P5 разъём для перемычек, с помощью которого выбирается, куда подключён RAK811 — к ардуино-гребёнкам или к USB-UART.

И последнее, самое важное, — сам модуль:

B35-12

Здесь стоит отметить следующие особенности:

  • Разъём P1 для выбора перемычкой BOOT режима STM32L;
  • Разъём J1 и резистор R6 (требуется замена, установлена обычная нулёвка) для проведения замеров потребления;
  • Есть SWD разъём для прошивки и отладки — P4;
  • Выведены все пины модуля на разъёмы P2, P3, что удобно при написании собственной прошивки.

И если посмотреть на последнюю версию схемы — WisNode LoRa Schematic_20171129, то можно увидеть одно отличие — наличие на плате встроенного согласователя уровней (который у меня идёт отдельной платой):

B35-13

Нашел схему и самого модуля — RAK811 Schematic, что интересно, сделана она уже не в альтиуме, что даёт тему для размышлений (модули заказные\в RAK разные команды, работают на разном софте\и т.п.)… :)

Также стоит отметить, что еще есть модификация модуля RAK811-N в таком же корпусе. Перед покупкой стоит определиться, для чего этот модуль вам нужен и будете ли вы использовать только АТ-команды или писать свою прошивку для встроенного STM32L (в случае RAK811). Основные отличия:

B35-14

Nano100 — это уже чисто китайский микроконтроллер и за пределами Китая возможно будут трудности с его применением\освоением + прошивка RAK811-N НЕ opensource, в плане же поддержки (и развития) своего китайского производителя RAK молодцы!

Габариты модуля RAK811(-N):

B35-15

P2P Тест

Проведём пока что простой тест между двумя платами WISNode-LoRa, без использования шлюза (аля RAK831 или аналогичным).

Можно такой тест провести по официальной инструкции для AT-команд, но это не очень удобно, другой способ — это скачать адаптированные исходники примера прошивки под официальные модули RAK811 TrackerBoard, RAK811 SensorNodeBoard, модифицировать их и залить мастер\слейв варианты прошивки в конкретные модули.

Собственно, для второго способа нужно следующее:

  • RAKWireless/RAK811_BreakBoard — opensource проект прошивки;
  • Keil uVision v5 — IDE для написания кода, компиляции и отладки прошивки (я использовал v5.20);
  • Дополнительные паки помимо стандартных для Keil uVision — STM32L1xx_DFP, MbedOS Scheduler (при открытии или компиляции проекта, Keil сообщит, если чего то не хватает);
  • J-Link или любой другой программатор-отладчик, способный подключаться по SWD (можно и без этого, просто прошив модуль по UART);
  • Опционально будет наличие I2C или SPI дисплея, для удобства (в моём случае это I2C OLED дисплей на SSD1306).

Выглядит мастер-плата с простейшим китайским повербанком (с фирменным от ***** вышел забавный казус, т. к. плата потребляет ~50…60 мА, то повербанк не считал это за нагрузку и просто выключался, поэтому пришлось подыскать простейший и дешевый noname-повербанк для этих целей) вот так (кликабельно):

ЗЫ. Не стоит бродить с такой приблудой на виду у доблестных полицменов, а то они изъявят настойчивое желание «помочь вам» в проведении тестирования связи. ;D

Slave плата же просто голая, как из коробки (кликабельно):

Расписывать, что и как изменил в проекте, не буду, просто приведу ссылку на проект, который получился — RAK811_BreakBoard_P2P_Test. Открывать проект RAK811_BreakBoard_P2P_Test\Keil\ping-pong\ping-pong.uvprojx. Вкратце же, изменения только в main.c файле, добавлены шрифты и драйвер SSD1306 (который я взял от другого проекта для RTL8710AF, адаптировав за пару минут буквально, т. к. логика работы с периферией здесь аналогична), а также в объявлениях проекта добавил REGION_EU868:

B35-19.png

Логика работы проста как валенок, плата с OLED дисплеем — мастер, который отправляет (+1 к количеству переданных пакетов) и ждёт ответа от слейва, если ответ не пришёл или пришёл не соответствующий ожидаемому, то будет засчитана ошибка связи (+1 к количеству ошибок). Количество переданных пакетов и ошибок выводится на дисплей. Слейв же просто ждёт пакета, и если принятый пакет соответствует ожидаемому, отправляет обратно пакет другого типа. По факту идёт просто обмен строками по 4 символа: Ping -> Pong.

Компилируем и заливаем. Начнём простой тест дальности работы! Вот небольшая мини карта, по которой можно ориентировочно представлять условия, в которых проводился тест:

B35-20

По карте — синий круг «S» — это лежащий у окна Slave-модуль прошивкой, антенна стандартная, что идёт в комплекте, красные круги с цифрами — это положение мастер-модуля, антенна также стандартная. Мастер-модуль держался в руках, на уровне груди (и не подымался как можно выше, а также никаких отражателей не применялось).

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

B35-21

На расстоянии ~350…380 метров приём довольно резко ухудшается и с дальнейшим увеличением расстояния постепенно падает до 0. Cтоит отметить, что только точка «1» находится практически в прямой видимости без препятствий, остальные — нет. Расстояние указано прямое. На карте также отмечена зона (зелёным цветом), за большим зданием, на которой приём вообще отсутствует.

Вывод

Это моё первое знакомство с LoRa, и меня оно порадовало, модули даже без использования шлюза и\или без привязки к IoT сетям (к примеру The Things Network) можно использовать на достаточно большие расстояния (в сравнении с тем же WiFi) в городе для мелкой автоматизации или аналитики. Отдельно порадовало большое наличие документации, примеров и исходников. Всё в целом можно разделить по категориям:

Плюсы:

  • Открытый стандарт;
  • Не требуется лицензия на использование;
  • Низкое потребление (~ 30мА при передаче и ~ 5,5 мА при приёме);
  • Поддержка 2х частот — 868 МГц или 915 МГц;
  • Открытая прошивка (относится только к RAK811!);
  • Организации связи на приличном расстоянии (заявлено до 5 км в городе, у меня вышло порядком меньше, возможно, допустил ошибку где-то или это имеется в виду при использовании шлюза + установку антенны на крышу здания, в дальнейшем буду пробовать со шлюзом).

Минусы:

  • Невысокая скорость (0,3…5 кбит\сек).

Цена на модули и чипы умеренная, поэтому ни в плюсы, ни в минусы записывать не буду.

Также, пока я очень писал обзор, уже появились интересные модули и отладочные платы для расширенного применения этих чипов, а именно:

  • RAK811 LoRa Tracker Board — содержит на борту помимо RAK811 еще и MAX-7Q GPS модуль, MEMS датчик.

B35-22

  • LoRa/LoRaWAN Program Button — аналог RAK611 (IoT Dash Button), только на LoRa в аналогичном корпусе. По идее, будет жить от встроенного аккумулятора значительно дольше, чем WiFi версия на RAK473, а также дальность работы значительно превосходит WiFi.

B35-23

  • RAK813 Break Board — совсем свежий продукт, LoRa + BLE 5.0 на nRF52832 + GPS + HT + MEMS датчик + интерфейс для подключения дисплея. Поиграться есть с чем. ;)

B35-24

Судя по фаршу и возможностям, данные платы расширяют сферу быстрого внедрения поддержки LoRa в свои проекты и предоставляется неплохой выбор по параметру цена\возможности.

Ссылки

Что где скачать:

  • RAK WIKI — общее описание, примеры и немного документации;
  • Document Download — страница с документацией и мануалами, на модуль RAK811 отдельно;
  • RAKWireless/RAK811_BreakBoard — opensource проект прошивки;
  • Flash Loader Demonstrator — утилита от STMicroelectronics для обновления прошивки STM32 по UART.

Не реферальные ссылки, что где купить:

Реклама

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

Please log in using one of these methods to post your comment:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

w

Connecting to %s