Настраиваем шлюз LoRaWAN и создаем наше первое IoT-приложение
В статье «Базовые станции Multi-Tech позволяют развернуть сеть LoRaWAN за пару кликов» говорилось о том, как просто создать сеть IoT, используя оборудование Multi-Tech. Теперь настало время запустить наше первое приложение.
Итак, нам понадобится:
- шлюз Conduit (AEP) с установленным модулем mCard (MTAC-LORA-868)
- антенна диапазона 868 МГц
- компьютер (ПК)
ПК мы подключим через Ethernet к шлюзу и будем использовать для настройки/конфигурации последнего.
Шлюз Conduit – это по сути та же базовая станция, но для использования внутри помещений (исполнение indoor):
Для начала нам нужно будет настроить LoRaWAN Network Server, а потом создать наше приложение в графической среде Node-Red. Приложение будет принимать сообщения от оконечных устройств LoRaWAN и посылать их обратно (режим эха), попутно отображая принятые сообщения в интерфейсе Node-Red.
По умолчанию в шлюзе установлен фиксированный IP 192.168.2.1, логин – admin, пароль – admin. После успешного ввода пароля сразу переходим в пункт меню Setup -> LoRa Network Server и видим следующую картинку:
Посмотрим, что тут за что отвечает:
- Чтобы включить сервер, поставим галочку Enabled.
У шлюза сконфигурированы 3 фиксированных канала шириной 125 кГц (центральные частоты — 868,1, 868,3 и 868,5 МГц), и можно сконфигурировать пять дополнительных каналов шириной 125 кГц и с расстоянием между центральными частотами 200 кГц. Эти дополнительные каналы конфигурируются заданием центральной частоты дополнительного диапазона в поле Additional Channels. Например, если в поле Additional Channels мы задаем значение 869,3, по получаем дополнительные каналы со следующими центральными частотами: 868,9; 869,1; 869,3; 869,5; 869,7 МГц.
Диапазоны допустимых значений в поле Additional Channels — 863,5-867,5 и 869,1-869,5 (МГц).
Поле Mode может принимать два значения: NETWORK SERVER и PACKET FORWARDER. Если мы планируем использовать LoRaWAN Network Server на самом шлюзе, то оставляем значение NETWORK SERVER, а если, скажем, в облаке – то PACKET FORWARDER. В нашем случае оставляем NETWORK SERVER.
Галочка Public относится к типу сети – Public или Private. Если используется тип Private (галка не установлена), то быстрее происходит присоединение к сети LoRaWAN оконечных устройств (1-2 сек.), а также при желании можно отключать шифрование полезной нагрузки.
Наиболее важными являются поля Network ID и Network Key. По сути они соответствуют значениям AppEUI и AppKey спецификации LoRaWAN, но так как использование достаточно длинных (8 и 16 байт соответственно) шестнадцатеричных значений не всегда удобно, Multi-Tech решил предоставить пользователям право выбора. В шлюзах/БС Conduit AppEUI и AppKey можно задавать двумя способами:
а) человеколюбивым – в поле Network ID выбираем Name и ниже пишем человекопонятное имя сети (шлюз сам переведет наше имя в значение AppEUI);
б) соответствующим спецификации LoRaWAN — в поле Network ID выбираем EUI и записываем шестнадцатеричное значение AppEUI.
Значения AppEUI и AppKey в шлюзе/БС должны соответствовать значениям, запрограммированным в оконечных устройствах LoRaWAN.
После конфигурирования сервера LoRaWAN нужно не забыть нажать Save and Restart, чтобы применить внесенные изменения.
Вот такая несложная настройка. Всё, теперь можно снова залогиниться и перейти в пункт меню Apps -> Node-Red, чтобы создать демонстрационное приложение.
После повторного ввода логина/пароля admin/admin (это уже для доступа к Node-Red) мы попадаем в Node-Red:
В левой части находятся узлы, которые мы можем перетаскивать в основное поле и соединять между собой с помощью мышки. Для нашего примера возьмем из раздела Input узел lora, а из раздела Output – узлы debug и lora, и соединим их так, как показано на картинке:
Нажмем кнопку Deploy в верхнем правом углу окна Node-Red – всё, приложение готово!
Теперь можно посмотреть, что получается при отправке сообщений с устройства LoRaWAN на шлюз Conduit. После успешного приема сообщения от устройства мы должны получить ответное сообщение на это же устройство, а также можем увидеть это сообщение (Hello_Habroworld!) на вкладке debug в правой части окна Node-Red (благодаря подключенному узлу debug):
В нашем демонстрационном примере полученные сообщения эхом отправляются обратно, в реальной же конфигурации их можно без дополнительных усилий пересылать на определенные порты TCP/UDP удаленного сервера, посылать в виде сообщений MQTT, SMS, e-mail, сохранять в файл, публиковать в Twitter, обрабатывать на шлюзе/БС и пр.
Конечно, аналогичным образом можно передавать данные и в обратном направлении.
Таким образом, можно очень быстро создавать приложения IoT и демонстрировать их любимым заказчикам.
Источник
Как сделать дешевый одноканальный шлюз с помощью ESP32 LoRa платы
Шлюзы LoRaWAN основанные на базе Semtech SX1301 обычно стоят очень дорого и даже если взять LoRa шлюз основанный на базе платы Raspberry Pi для внутреннего размещения и экспериментов, цена все равно будет около $200.
Но существует более дешевый способ (примерно $70) — можно использовать одноканальный LoRa шлюз, который, как следует из названия, поддерживает только один канал, что ограничивает количество узлов и вынуждает вас устанавливать узлы на той же частоте, что и ваш шлюз. Они не очень подходят для коммерческого использования. Если вы планируете реализовать сеть с десятком узлов или выше, то вы можете использовать более дешевую LoRa плату ESP32, такую как одноканальный LoRa шлюз ESP32, которая продается на Sparkfun за $29.95.
- Сеть
- WiFi и Bluetooth 4.2 LE через модуль ESP32-WROOM-32 с интегрированной в печатную плату антенной
- LoRa @ 868 / 915 МГц с Lora модемом Hope RFM95W LoRa, которым можно управлять через SPI интерфейс + u.FL разъем для антенны
- Вход и выходы
- 14x контактных отверстий GPIO ESP32
- Qwiic-разъем для модулей Sparkfun
- Отладка – через микро USB порт
- Прочее – Кнопки сброса и ESP32 pin0; пользовательский светодиод и светодиод питания
- Питание – 5 В через микро USB порт
Плата имеет открытые исходные данные с ресурсами, которые загружены на Github, также компания предоставляет подробное руководство по настройке платы шлюза ESP32 1-Ch LoRa с The Things Network (TTN).
Это не единственное решение одноканального шлюза, поскольку существует более дешевая TTGO LoRa плата, которую можно использовать для этой цели с кодом для шлюза и узла, который был перенесен на Github. Также есть учебное видео пособие, состоящие из четырех частей, загруженное на Youtube канал Vergil Cola, в котором объясняется, как начать работу с данной платой и получить данные в TTN.
Источник
Отправка данных с IoT-устройства по сети LORAWAN в сервис The Things Network
В течении многих лет огромный потенциал Интернета Вещей (IoT) сдерживался техническими проблемами, такими как малый срок службы устройств работающих от батарей, короткой дальностью связи, высокой стоимостью и отсутствием единых стандартов.
Технология, получившая название LoRaWAN (Long Range wide-area networks) позволила преодолеть все эти препятствия. На основе новой спецификации и нового протокола для LPWAN, использующего нелицензируемый диапазон частот, технология LoRaWAN позволила подключать датчики на большие расстояния, предлагая при этом оптимальное время автономной работы датчиков и минимальные требования к инфраструктуре.Конечные LoRa-устройства могут передать информацию с расстояния в 15 км от базовой станции, используя при этом мощность передачи, не превышающую 25 мВт.
Типовую сеть LoRaWAN можно представить в виде оконечных устройств(точек, узлов), данные с которых передаются (в зашифрованном виде!) на шлюзы, далее на сервер сети провайдера и далее на сервер приложений провайдера, откуда всё это уже поступает к конечному пользователю. В LoRaWAN сети шлюзы также называют концентраторами, конечные устройства -точками или узлами.
Сервис The Things Network (www.thethingsnetwork.org) – открытая LoRaWAN сеть, поддерживаемая и развиваемая ее участниками. Сервис предоставляет набор открытых инструментов и глобальную открытую сеть для создания IoT-приложений Благодаря надежному сквозному шифрованию создается защищенная и совместная сеть Internet of Things, охватывающая многие страны мира. Сейчас работают тысячи шлюзов, обеспечивающих покрытие миллионам людей.
Любой желающий может зарегистрировать в сети свое Lora-устройство как узел (node). Но это если узел может подключиться к существующему шлюзу. Карта шлюзов
Если нет возможности подключиться к шлюзу, необходимо зарегистрировать свой шлюз (gateway). Один из вариантов шлюза — The Things Indoor Gateway
The Things Indoor Gateway (TTIG) представляет собой полностью совместимый шлюз LoRaWAN с Wi-Fi в качестве транзитного соединения.
Характеристики:
- 8-канальный внутренний шлюз LoRaWAN;
- Один из первых шлюзов, поддерживающих современный протокол BasicStation;
- Поддерживает LBT.
- Простые шаги установки, занимающие менее 5 минут.
- Можно подключиться к любой сети по выбору.
- Настройка и подключение через WiFi.
- Питание через кабель USB-C;
- Встроенная всенаправленная антенна для использования внутри помещений.
- Доступны версии EU868, US915, AS923 и CN470.
2 режима работы:
Режим конфигурации (CONF)
В этом режиме устройство действует как точка доступа Wi-Fi, к которой пользователи могут подключаться и настраивать сеть WiFi, к которым будет подключаться шлюз во время нормальной работы. Устройство не может маршрутизировать пакеты LoRaWAN в этом режиме.
Режим шлюза (GW)
В этом режиме устройство действует как шлюз для маршрутизации трафика между устройством LoRaWAN и сетью. В этом режиме точка доступа WiFi для настройки недоступна.
Активация шлюза
- Нажмите кнопку сброса (маленькая кнопка на задней панели шлюза рядом с портом USB-C) и удерживайте ее в течение 5 секунд, пока индикатор не начнет быстро мигать ЗЕЛЕНЫМ КРАСНЫМ в течение нескольких раз.
- Удерживайте кнопку SETUP (кнопка в верхней части шлюза, рядом со светодиодом) в течение 10 секунд, пока светодиод не начнет быстро мигать КРАСНЫМ.
- Теперь шлюз предоставляет точку доступа WiFi, SSID которой равен MINIHUB-xxxxxx, где xxxxxx — это последние 6 цифр идентификатора шлюза.
- Пароль для этой сети напечатан на задней панели устройства под WiFi PW .
- После подключения к этой сети перейдите на 192.168.4.1 с помощью веб-браузера для доступа к странице конфигурации WiFi.
- Выберите сеть WiFi и введите пароль, если это закрытая сеть.
- Выберите SAVE & REBOOT.
- Если ваш конфиг правильный,
- Шлюз будет мигать ЗЕЛЕНЫМ в течение нескольких секунд, пока он подключается к этой сети.
- Затем он будет мигать ЗЕЛЕНЫМ КРАСНЫМ в течение нескольких секунд, пока он подключается к конечной точке CUPS и выбирает необходимую информацию для подключения к конечной точке трафика LNS .
- Если ваша конфигурация прошла успешно, индикатор будет зеленым, что означает, что шлюз подключен к сети LoRaWAN и готов к обработке пакетов.
Подключение к серверу The Things Network
Сначала регистрируемся в сервисе The Things Network (www.thethingsnetwork.org). Затем необходимо войти в свой профиль и зарегистрировать шлюз. Нажимаем на кнопку Setup a gateway
Чтобы подключить этот шлюз к консоли The Things Network, зарегистрируйте шлюз, используя опцию I’m using the Legacy Packet Forwarder .
Gateway EUI можно получить на странице настройки WiFi.
Это значение должно быть введено в поле Gateway EUI на консоли .
Введите другие данные, такие как местоположение, частотный план и маршрутизатор.
Если ваша конфигурация прошла успешно, Вы увидите Status connected
Шлюз подключен к сервису. Мы можем подключаться к нему устройствами Lora.
Плата The Things Uno
Компания Things Network предоставляет совместимые с экосистемой Arduino аппаратные средства, который позволяют легко развертывать сети LoRaWAN. На данный момент компания продвигает совместимую с Arduino плату Things Uno. Things Uno базируется на микроконтроллере ATmega32u4. По сути, она основана на конструкции Arduino Leonardo, а не Arduino UNO. . Плата Things Uno имеет приемопередатчик RN2483 компании Microchip для связи по сети LoRaWAN, здесь также присутствует встроенная печатная антенна для обеспечения лучшей связи.
Необходимо установить библиотеку TheThingsNetwork, чтобы получить те же простые в использовании методы для подключения к сети и отправки данных.
Загрузим на плату Things Uno пример DeviceInfo из библиотеки TheThingsNetwork.
Внесем изменения в скетч
В монитор последовательного порта выводится необходимая нам информация об EUI устройства. Эти данные нам пригодятся.
Далее заходим в сервисе в консоль The Things Network и выбираем Applications, а затем add application
Заполняем поля и нажимаем на кнопку Add Application
Теперь к данному приложению необходимо добавить устройство. Нажимаем на ссылку register device
И в окне вводим данные нашего устройства. Вот где нужен EUI устройства
Нажимаем кнопку Register. Для отправки данных на нужны два значения Application EUI и App Key
Загрузим на плату Things Uno пример SendOTAA из библиотеки TheThingsNetwork. Внесем изменения в скетч
После загрузки скетча в приложение должны приходить данные. Выбираем вкладку Data
Устройство отправляет данные в сеть The Things Network.
Это необработанные данные RAW. В следующей части рассмотрим как выделять нужные данные и отправлять их по нужному нам адресу.
Источник