Lorawan шлюз своими руками

Настраиваем шлюз 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 и демонстрировать их любимым заказчикам.

    Источник

    Создаем собственный GPS-Трекер на технологии LoRa

    В этой статье вы узнаете, как создать собственный GPS-трекер с помощью микроконтроллеров Pycom LoPy, а также научитесь настраивать одноканальный LoRa Nano-Gateway.
    Здесь я изложу ключевые этапы со всеми необходимыми ссылками.

    Если вас интересуют подробное руководство и пояснения, то можете посмотреть видео запись моего выступления на технологическом подкасте IBM Developer Europe Crowdcast.

    Начнем с общей схемы архитектуры, на которой показаны все компоненты, участвующие в процессе настройки трекера.

    Узел LoPy служит в качестве GPS-устройства, отправляющего данные на LoRa Nano-Gateway.

    Сам шлюз LoRa подключен к ‘TheThingsNetwork’ по WiFi.

    В конечном итоге мы получим Node-RED, выполняющийся в IBM Cloud, который будет принимать MQTT сообщения от TheThingsNetwork, сохранять их в базе данных Cloudant и отображать точки GPS-данных на карте.

    Оборудование:

    • 1 LoPy в качестве узла LoRa + антенна (868MHz/915MHz) + аккумулятор 3.7V LiPo;
    • Последовательный GPS-модуль 1 uBlox NMEA с антенной;
    • 1 LoPy в качестве LoRa Nano-Gateway + антенна (868MHz/915MHz);
    • 2 платы расширения Pycom.

    Ссылки на используемое оборудование здесь: pycom.io/products/hardware

    Программная часть:

    Для программирования микроконтроллеров LoPy мы будем использовать Pymakr – плагин для редакторов Atom и VS Code.

    LoPy от Pycom.io – это мульти-сетевой аппаратный модуль на базе микроконтроллера ESP32. Большинство из используемых в нем функций и библиотек собраны на MicroPython.

    1. Настройка LoRaWAN Nano Gateway и подключение к TheThingsNetwork

    Исходный код для LoRaWAN Nano-Gateway ждет вас здесь.

    Распакуйте скачанный файл, после чего найдите каталог lorawan-nano-gateway в директории examples.

    Все подробности по настройке Nano-Gateway изложены в следующей ссылке.

    Следуя этому руководству, вы определите шлюз в TheThingsNetwork, настроите параметры конфигурации в соответствии с вашим регионом, загрузите код на плату и убедитесь в ее работоспособности через консоль TheThingsNetwork.

    Создайте бесплатный аккаунт в TheThingsNetwork – он послужит вам точкой регистрации для шлюза и точкой получения пакетов данных, которые мы будем отправлять с LoRa-узла нашего GPS-трекера.

    2. Настройка LoRa-узла с GPS-трекером

    Следуйте инструкциям TheThingsNetwork для регистрации и активации вашего устройства LoPy.

    Есть два способа активации LoPy: либо через OTAA (активация «по воздуху»), либо ABP (активация путем персонализации). Первый вариант считается предпочтительным, если вы используете несколько устройств, но не подойдет для работы с LoRa Nano-Gateway.

    Следующий образец кода использует активацию ABP и после установки LoRa-соединения отправляет 10 байт в виде 10 отдельных пакетов.

    Теперь узел LoRa настроен, и мы должны увидеть поступающие пакеты как через консоль Nano-Gateway, так и в консоли TheThingsNetwork.

    Далее мы можем добавить код для считывания фиксированных данных о местоположении GPS.
    Образец этого кода лежит здесь.

    В данном примере мы используем библиотеку ‘adafruit_gps’ и отправляем пакет данных только, когда устанавливаем фиксированное местоположение GPS.

    Это, конечно, здорово, но все полученные нами данные в байтах. Как же их перевести в доступный для использования формат? Конечно же декодировать.

    Направляйтесь в консоль TheThingsNetwork и выберите ваше приложение, в котором перейдите во вкладку Payload Formats и определите декодер, не забыв также сохранить его.

    Теперь, когда наш GPS-трекер подключен через LoRaWAN, перейдем к самому интересному, а именно настроим сохранение в БД и начнем показывать данные на карте.

    Этот процесс я привык реализовывать в среде IBM Cloud при помощи Node-RED.
    Здесь можно быстро и легко зарегистрировать бесплатный Lite-аккаунт.

    По умолчанию потоки Node-RED сохраняются в БД Cloudant, поэтому можно без проблем использовать эту же БД для сохранения наших GPS-данных.

    Образец потока Node-RED находится здесь.

    GPS-данные через MQTT собираются с TheThingsNetwork и сохраняются в Cloudant.

    Для получения этих данных вам потребуется создать/сгенерировать новый ключ доступа. Снова направляйтесь в консоль TheThingsNetwork и выберите свое приложение, перейдите во вкладку settings и найдите среди прочих настроек access keys. Сгенерированный ключ будет находиться в нижней части страницы окна просмотра приложения.

    Читайте также:  3 фазный инвертор своими руками

    Более подробное о взаимодействии MQTT с ‘TheThingsNetwork’ рассказано здесь.

    Заключение

    Эта статья поможет вам лучше ознакомиться с основами использования Интернета Вещей (IoT) при помощи LoRa-соединения.

    Если вам не терпится увидеть все это в действии, то еще раз напомню про свое выступление на технологическом подкасте IBM Developer Europe Crowdcast.

    В этом видео я также показываю, как подключить LoRa GPS-трекер к публичному бельгийскому провайдеру этой технологии – Proximus.

    А какие еще, на ваш взгляд, есть варианты применения LoRa для Интернета Вещей?

    Источник

    Как сделать дешевый одноканальный шлюз с помощью 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 для настройки недоступна.
    Активация шлюза

    1. Нажмите кнопку сброса (маленькая кнопка на задней панели шлюза рядом с портом USB-C) и удерживайте ее в течение 5 секунд, пока индикатор не начнет быстро мигать ЗЕЛЕНЫМ КРАСНЫМ в течение нескольких раз.
    2. Удерживайте кнопку SETUP (кнопка в верхней части шлюза, рядом со светодиодом) в течение 10 секунд, пока светодиод не начнет быстро мигать КРАСНЫМ.
    3. Теперь шлюз предоставляет точку доступа WiFi, SSID которой равен MINIHUB-xxxxxx, где xxxxxx — это последние 6 цифр идентификатора шлюза.
    4. Пароль для этой сети напечатан на задней панели устройства под WiFi PW .
    5. После подключения к этой сети перейдите на 192.168.4.1 с помощью веб-браузера для доступа к странице конфигурации WiFi.
    6. Выберите сеть WiFi и введите пароль, если это закрытая сеть.
    7. Выберите SAVE & REBOOT.
    8. Если ваш конфиг правильный,
      • Шлюз будет мигать ЗЕЛЕНЫМ в течение нескольких секунд, пока он подключается к этой сети.
      • Затем он будет мигать ЗЕЛЕНЫМ КРАСНЫМ в течение нескольких секунд, пока он подключается к конечной точке CUPS и выбирает необходимую информацию для подключения к конечной точке трафика LNS .
    9. Если ваша конфигурация прошла успешно, индикатор будет зеленым, что означает, что шлюз подключен к сети 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. В следующей части рассмотрим как выделять нужные данные и отправлять их по нужному нам адресу.

    Источник

    Оцените статью