Полное руководство по настройке шлюза LoRaWAN

  • Шлюз LoRaWAN выступает в качестве моста между узлами LoRa и сетевыми серверами, требуя тщательной настройки аппаратных, IP-сетевых и радиопараметров.
  • Файлы, такие как global_config.json и local_config.json, определяют частоты, GPS, gateway_ID и серверы, и даже могут управляться удаленно с помощью репозиториев GitHub.
  • Для интеграции с такими платформами, как TTN и AWS IoT Core для LoRaWAN, требуется регистрация шлюза, приложений и конечных устройств, а также согласование идентификаторов, ключей и частотных планов.
  • Непрерывный мониторинг через веб-консоли и API позволяет обнаруживать ошибки частоты, сбои в соединении и проверять правильность приема и обработки восходящих сигналов.

Конфигурация шлюза LoRaWAN

Соберите и мелко нарежьте Настройка шлюза LoRaWAN Поначалу это может показаться немного сложным: параметры радиосвязи, сети, серверы, сертификаты, странные идентификаторы… но на самом деле, если вы разберетесь в каждом элементе, это будет вполне логичный процесс. В этой статье мы рассмотрим все этапы, от аппаратной части до сервера LoRaWAN, включая TTN и AWS IoT Core, чтобы дать вам полное и практическое представление.

Мы будем опираться на примеры из реальной жизни, такие как: Шлюзы RAK (RAK7289, RAK831)В руководстве будут рассмотрены общедоступные сети, такие как The Things Network (TTN), облачные решения, например AWS IoT Core для LoRaWAN, и конфигурации от производителей, например MOKO. Мы объединим всю эту информацию в единое руководство, включающее предупреждения о безопасности, советы по определению IP-адреса шлюза, а также подробную информацию о конфигурации сети и радиосвязи.

Основные понятия: что такое шлюз LoRaWAN и для чего он нужен.

Una Шлюз LoRaWAN Это устройство, отвечающее за прослушивание узлов LoRa (датчиков, трекеров и т. д.) и пересылку их сообщений на сервер сети LoRaWAN через интернет (Ethernet, Wi-Fi, LTE/4G, 5G, спутник и т. д.). Можно рассматривать его как своего рода вышка сотовой связи но для устройств с очень низким энергопотреблением.

На физическом уровне шлюз объединяет один или несколько концентраторы LoRa (например, RAK831), способный отслеживать несколько каналов параллельно и с различными коэффициентами расширения спектра, плата управления (например, Raspberry Pi или встроенный SoC), сетевые интерфейсы (Ethernet, Wi-Fi, LTE) и часто, GPS для синхронизации и приблизительное географическое местоположение узлов.

В экосистеме LoRaWAN шлюз не интерпретирует содержимое кадров приложений: просто инкапсулировать и переслать Пакетный пересыльщик отправляет пакеты на сервер LoRaWAN (LNS: LoRaWAN Network Server) или в облачную инфраструктуру CUPS/LNS. Таким образом, ключевая конфигурация заключается в параметрах радиосвязи, идентификаторах шлюза и адресе сервера, на который будут отправлены данные.

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

Типичное аппаратное обеспечение шлюза LoRaWAN

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

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

В случае некоторых комплектов MOKO на базе RAK831 и Raspberry Pi 3B, в комплектацию может входить, помимо прочего, следующее: переходная пластина для GPSGPS-антенна, стекловолоконная LoRa-антенна с достаточным коэффициентом усиления для установки на мачте, несколько метров коаксиального кабеля RG-58, радиатор для платы концентратора и даже примеры узлов, таких как WisNode или LoRa-трекеры.

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

В коммерческих шлюзах, таких как RAK7289Все аппаратные компоненты интегрированы в корпус промышленного класса, предназначенный для использования вне помещений, с антенной LoRa и, иногда, дополнительной антенной для LTE/4G. Как правило, эти модели предлагают достаточно удобный веб-интерфейс для настройки, поэтому работа сосредоточена на сетевых параметрах (IP, DNS и т. д.) и направлении шлюза к нужному серверу LoRaWAN.

Настройка сети шлюза: статический IP-адрес, DHCP и первоначальный доступ.

Прежде чем прикасаться к части, отвечающей за LoRaWAN, необходимо убедиться, что... Шлюз корректно подключен к IP-сети. (LAN или WAN). Без подключения к интернету (или к вашему локальному серверу) радиостанция не сможет нормально работать.

Во многих шлюзах (например, RAK7289) интерфейс администрирования предоставляется через веб-интерфейс и доступен через его IP-адрес в сетиВы можете настроить его как DHCP-клиент (который автоматически получает IP-адрес от маршрутизатора) или с статическим IP-адресом в зависимости от топологии вашей сети.

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

  • Обратитесь непосредственно к Список клиентов DHCP на маршрутизаторе или сервере, идентифицируя шлюз по его MAC-адресу или имени хоста (например, «RAK7289»).
  • Используйте такие инструменты, как птар или использовать другие IP-сканеры, чтобы определить, какие устройства отвечают в вашем сетевом сегменте.

Некоторые шлюзы включают в себя точка доступа Wi-Fi для управления Открытая архитектура, разработанная специально для первоначальной настройки. При подключении к этой сети Wi-Fi шлюз будет работать как маршрутизатор, а IP-адрес шлюза по умолчанию на вашем компьютере будет совпадать с IP-адресом управления устройством.

Важная мера безопасности: после завершения запуска рекомендуется отключить управление Wi-Fi за исключением случаев крайней необходимости, поскольку открытая управляемая сеть Wi-Fi представляет собой явную уязвимость в реальных условиях.

В интерфейсе конфигурации (например, в меню «Сеть → Интерфейс WAN» шлюза RAK) можно выбрать между статическим IP-адресом и DHCP, определить DNS, маску подсети, шлюз, а также изменить доступ к учетным данным По умолчанию (имя пользователя и пароль) ни в коем случае нельзя оставлять такими, какими они установлены на заводе.

Настройка и конфигурация шлюза в сети The Things Network (TTN)

После того как ваш шлюз получит доступ к интернету, следующим шагом во многих проектах по развертыванию в сообществах или лабораториях станет... Интегрируйте его с TTN (The Things Network)., бесплатная и общедоступная сеть LoRaWAN, идеально подходящая для образовательных проектов, тестирования и небольших развертываний.

Обычно процесс начинается с создания учетной записи на веб-сайте TTN и доступа к... консоль Из значка профиля. При первом входе в систему вам будет предложено выбрать регион (например, Европа, Северная Америка и т. д.), после чего вы сможете перейти в раздел «Приложения» или «Шлюзы». Для регистрации шлюза вам нужно будет перейти именно в раздел «Перейти к шлюзам».

На консоли TTN при нажатии кнопки Зарегистрируйте шлюзВам потребуется ввести несколько параметров: идентификатор шлюза, его уникальный EUI и частотный план для вашего региона. EUI шлюза обычно доступен в веб-интерфейсе устройства или в его встроенном программном обеспечении, как правило, в разделе настроек сети LoRa.

Важно, чтобы Идентификатор шлюза, заданный в TTN, должен совпадать с идентификатором, настроенным на устройстве.особенно если это требуется в документации производителя. Кроме того, вам потребуется выбрать соответствующий частотный план (например, EU868 для Европы), который определяет доступные каналы и параметры радиосвязи, совместимые с правилами вашей страны.

После регистрации шлюза в TTN настройка в консоли практически завершена. TTN отобразит статус шлюза (подключен или нет), когда устройство начнет отправлять пакеты. пересыльщик пакетов TTN используя соответствующий адрес сервера.

Настройка пересылки пакетов и параметры LoRaWAN.

Интерфейс шлюза (меню сети LoRa → Сетевые настройки → Пересылка пакетов или аналогичный) — это место, где происходит Параметры подключения к серверу LoRaWANЭтот раздел служит связующим звеном между миром радиосвязи LoRa и сетевым сервером.

Переадресатор пакетов настраивается путем указания адрес сервера (например, маршрутизатор TTN или пользовательский маршрутизатор, такой как router.us.mokolora.network в развертываниях MOKO), а также восходящие и нисходящие порты (serv_port_up и serv_port_down). Каждый настроенный сервер также может быть включен или выключен с помощью стандартного флага, такого как serv_enabled.

В шлюзах MOKO и на базе Raspberry Pi многие из этих параметров хранятся в JSON-файлах, например: global_config.json y local_config.jsonкоторые, соответственно, определяют общую конфигурацию региона и конкретные данные шлюза (идентификатор, местоположение, серверы и т. д.).

Файл global_config.json обычно содержит блок gateway_conf с настройками для GPS и синхронизациянапример:

{"gateway_conf":{"GPS":true,"gps_tty_path":"/dev/ttyAMA0","fake_gps":false}}

В то время как файл local_config.json хранит такие данные, как gateway_IDкоординаты (ref_latitude, ref_longitude, ref_altitude), контактный адрес электронной почты, описание и список серверов, к которым подключается пересыльщик пакетов, каждый со своим server_address, serv_port_up, serv_port_down и serv_enabled.

Управление файлами конфигурации и gateway_ID

В системах типа Raspberry Pi с MOKO интересным аспектом является то, как это работает. генерирует и управляет gateway_IDОбычно он вычисляется на основе MAC-адреса сетевого интерфейса (например, eth0) с помощью скрипта, который преобразует его в идентификатор EUI64, вставляя между ними "FFFE" и делая результат заглавным.

Затем этот gateway_ID используется в файле local_config.json для уникальной идентификации шлюза к серверу LoRaWAN. Кроме того, во многих развертываниях используется схема удаленная настройка Основано на репозитории GitHub, где опубликованы файлы global_config.json для каждого региона и файлы local_config.json для конкретных шлюзов.

Механизм работает следующим образом: при запуске LoRa-концентратор загружает из GitHub конфигурационный файл, соответствующий его gateway_ID, проверяет наличие изменений с момента последнего запуска и, если обнаруживает новую версию, синхронизирует её, создавая новый файл конфигурации. символическая ссылка из файла bin/local_config.json в клонированный файл репозитория.

Если вы хотите воспользоваться этой системой, вы можете это сделать. Загрузите свой собственный конфигурационный файл в удалённый репозиторий.Назовите его с помощью gateway_ID (например, MFP254862KEF1034.json), создайте форк, отправьте запрос на слияние в основной репозиторий, и после принятия ваш шлюз будет автоматически загружать эту конфигурацию при последующих запусках.

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

Ошибки региональных настроек, каналов и частот.

Один из аспектов, вызывающих множество вопросов при настройке шлюзов LoRaWAN, — это региональная конфигурация частотВ каждой стране или географическом регионе разрешены определенные диапазоны частот для LoRa (например, 868 МГц в Европе, 915 МГц в некоторых регионах Америки и т. д.), и сетевые серверы проверяют, что пакеты поступают на разрешенных частотах.

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

Если конфигурация вашего шлюза не совпадает с конфигурацией сервера, к которому вы подключаетесь, вы можете столкнуться с такими ошибками, как: «Пакет отклонен, частота несовместима»Например, шлюз может отправлять пакеты на частоте 868.3 МГц, в то время как сервер ожидает пакеты в диапазоне 890-975 МГц, что приводит к ошибкам в журнале пересылки пакетов.

Чтобы избежать этих ошибок, обязательно скачайте файл. Файл global_config.json должен быть корректным для вашего региона.и убедиться, что ваш сервер (TTN, MOKO, AWS IoT Core) настроен на тот же частотный план. Также следует проверить, что конечные узлы (трекеры, датчики и т. д.) используют один и тот же диапазон частот, определенный на шлюзе и сервере.

В таких странах, как Китай, например, используются специфические конфигурации с другими диапазонами и каналами, чем те, что применяются в Европе, поэтому недостаточно просто скопировать любой пример из интернета; необходимо использовать конкретный файл, связанный с вашим географическим регионом чтобы всё идеально сочеталось.

Подключение шлюзов LoRaWAN к AWS IoT Core

В более сложных конфигурациях вы можете интегрировать свои шлюзы напрямую с AWS IoT Core для LoRaWANиспользуя облачные возможности Amazon для управления устройствами, сбора данных и обработки сообщений.

Общий алгоритм включает в себя регистрацию шлюза в AWS IoT Core для LoRaWAN, получение необходимой информации (сертификатов, URL-адресов конечных точек), а затем настройку устройства шлюза для подключения к сети. Конечная точка CUPS или LNS от AWS, в соответствии с поддерживаемым протоколом.

В зависимости от типа шлюза, в документации производителя будет указано, как это работает. загрузить сертификаты доверия В руководстве объясняется, как указать пути к этим сертификатам в прошивке и как перенаправить их на URL-адреса CUPS или LNS, предоставляемые AWS. Важно точно следовать этому руководству, поскольку аутентификация TLS является обязательной.

На шлюзах, совместимых с протоколом CUPS, необходимо указать URL-адрес конечной точки CUPS, который будет иметь формат, аналогичный: prefix.cups.lorawan.region.amazonaws.com:443. На шлюзах, совместимых с LNS, URL-адрес будет выглядеть примерно так: https://prefix.lns.lorawan.region.amazonaws.com:443, всегда с использованием префикса. порт 443 и безопасное соединение.

После загрузки сертификатов и настройки конечных точек шлюз начнет взаимодействовать с AWS IoT Core для LoRaWAN Проверить его статус (подключен, получен последний сигнал восходящего канала и т. д.) можно через веб-консоль или с помощью API GetWirelessGatewayStatistics, который возвращает информацию, такую ​​как ConnectionStatus и LastUplinkReceivedAt, в формате JSON.

Использование консоли и API AWS для мониторинга состояния шлюза.

После подключения шлюза к AWS IoT Core для LoRaWAN платформа предлагает несколько способов... Убедитесь, что всё работает исправно.Наиболее быстрый вариант — это веб-консоль AWS IoT, где есть специальный раздел «Шлюзы».

В консоли, при выборе шлюза на странице «Шлюзы», появится блок. Подробные сведения о LoRaWANТам вы можете увидеть статус подключения, а также дату и время последнего полученного сигнала, что позволяет с первого взгляда проверить, активен ли шлюз и взаимодействует ли он с облаком.

Если вы предпочитаете автоматизировать мониторинг, вы можете использовать API GetWirelessGatewayStatisticsДля выполнения этой операции не требуется тело запроса, и она возвращает JSON, в котором указывается, например, ConnectionStatus (Connected/Disconnected), LastUplinkReceivedAt с меткой времени и WirelessGatewayId, соответствующий устройству.

Примером ответа может служить следующее: что-то вроде: {"ConnectionStatus":"Connected","LastUplinkReceivedAt":"2021-03-24T23:13:08.476015749Z","WirelessGatewayId":"30cbdcf3-86de-4291-bfab-5bfa2b12bad5"}которые вы можете интегрировать в свои инструменты мониторинга или пользовательские панели мониторинга.

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

Регистрация приложений и конечных устройств в TTN.

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

В консоли TTN перейдите в раздел «Приложения» и создайте новое приложение, присвоив ему имя/идентификатор. Внутри этого приложения используйте кнопку... «регистр конечного устройства» Для регистрации каждого узла LoRaWAN можно заполнить данные вручную или использовать шаблоны, в зависимости от типа устройства.

Ключевые параметры включают в себя DevEUI, JoinEUI (APP-EUI) и AppKeyНекоторые инструменты, такие как собственная консоль TTN, позволяют Автоматическая генерация DevEUI и AppKey. с помощью кнопок генерации, что упрощает запуск при использовании стандартных узлов или пользовательских разработок.

В случае с JoinEUI в некоторых случаях можно установить практически любое значение, при условии, что оно будет соответствовать заданным параметрам. настройки устройства (Например, в инструменте настройки Loko параметр APP-EUI соответствует параметру JoinEUI в TTN). Остальные ключи должны точно совпадать между консолью и прошивкой узла.

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

Практический пример с использованием трекеров и инструментов настройки.

Довольно распространённый пример из реальной жизни — это использование GPS-трекеры LoRaWAN Для определения местоположения людей, транспортных средств или объектов путем периодической отправки их координат по сети. Такие устройства, как Dragino TrackerD или Loko Air, очень хорошо иллюстрируют этот процесс.

Например, в образовательном учреждении несколько трекеров могут быть зарегистрированы в одном приложении в TTN, используя тот факт, что каждый из них имеет свои преимущества. уникальные учетные данные (DevEUI, AppEUI/JoinEUI, AppKey), которые описаны в руководстве пользователя или на этикетке устройства. Все они связаны с одним и тем же приложением, но имеют индивидуальную идентификацию.

Для настройки расширенных параметров трекера (частота отправки координат, длительность тревожной тревоги и т. д.) устройство можно подключить через USB, а также использовать последовательный интерфейс со скоростью передачи 115200 бод. предопределенные AT-командыНекоторые модели не принимают ввод команд по одной; вместо этого для корректной интерпретации необходимо ввести всю команду целиком.

В случае с такими устройствами, как Loko Air, инструмент Инструмент настройки Loko Это позволяет считать текущую конфигурацию, включить режим LoRaWAN и заполнить три основных параметра (JoinEUI/AppEUI, DevEUI и AppKey) таким образом, чтобы они соответствовали информации об активации конечного устройства в сети The Things Network.

После применения настроек и перезагрузки устройства, если шлюз работает корректно и находится в зоне действия, вы должны начать видеть... живой трафик в разделе «Конечные устройства» TTN, включая сообщения с декодированными данными и местоположением трекера на карте, если это позволяет формат.

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

На протяжении всего этого пути, от аппаратного обеспечения до облачных решений, включая TTN, AWS и тонкую настройку конфигурации радиосвязи, становится ясно, что шлюз LoRaWAN — это не просто «антенна», а… нервный центр который связывает физический мир датчиков с платформами данных, где фактически создается ценность проекта.

Последний абзац

Как только будет понятна внутренняя работа — аппаратное обеспечение RAK831 или RAK7289, файлы global_config и local_config, удаленная синхронизация через GitHub, настройка IP-адреса и отключение управляющего Wi-Fi, настройка и параметризация TTN, защищенное соединение с AWS IoT Core, а также регистрация приложений и конечных устройств, таких как GPS-трекеры или устройства Loko Air, — станет гораздо проще понять, что Настройка шлюза LoRaWAN Это просто упорядоченная сумма нескольких логических шагов, где ключевым моментом является соблюдение регионального частотного плана, согласование идентификаторов и ключей между шлюзом, сервером и узлами, а также использование консолей и API различных сервисов для постоянной проверки того, что восходящие каналы связи поступают и что инфраструктура LoRaWAN работает так, как вы ожидаете в вашей реальной конфигурации.