Я пытаюсь построить сеть LoRaWan, используя датчик, программируемый с помощью Arduino и Dragino Lora Shield .
Я нашел много решений для создания шлюза, в том числе Raspberry Pi, связанный с другим Dragino Lora Shield или с iC880A , и полученные данные будут отправлены на сервер в облаке. Я очень запутался в программировании шлюза.
- Нужно ли указывать это для подключения к узлу и к серверу? Или он получает данные автоматически?
- И программирую ли я сервер для подключения к шлюзу или напрямую к узлам?
networking
lora
Мохамед Ахреф Дриди
источник
источник
Ответы:
В типичной сети LoRaWAN шлюзы - это тупые устройства, как объясняет LoRa Alliance :
Таким образом, шлюз необходимо настроить только для подключения к какому-либо сетевому серверу, например, к открытой сети The Things Network . Это все.
Шлюзы часто называют «пересылками пакетов». Таким образом, шлюзы делают именно это: они пересылают все принятые пакеты LoRaWAN на некоторый сетевой сервер (независимо от того, какой узел отправил его), и они передают все команды сетевого сервера. Следовательно, узлы (конечные устройства) не подключаются к какому-либо шлюзу ; вместо этого они просто передают и надеются, что один или несколько шлюзов получат свою передачу и передают ее сетевому серверу, который знает узел. (Шлюзы не могут прочитать зашифрованные данные, которые они пересылают.)
Чтобы подключить узлы к сети, они «активируются» одним из двух способов :
Активация по воздуху (OTAA)
Во-первых, используя какой-либо веб-сайт или API, каждый новый узел регистрируется на сетевом сервере, используя свое уникальное устройство EUI (
DevEUI
). Затем он получает открытый идентификатор приложения (AppEUI
) и секретный ключ приложения (AppKey
). Эти три значения запрограммированы в узле.Затем, когда он готов к отправке в первый раз, значения используются узлом для создания и передачи запроса на присоединение LoRaWAN. Если такой запрос получен одним или несколькими шлюзами, он перенаправляется на сетевой сервер, который, если он будет утвержден, сообщит одному шлюзу о необходимости принять соединение. Если он получен узлом, то это дает узлу публичный адрес устройства (
DevAddr
), секретный сетевой ключ сеанса (NwkSKey
) и секретный ключ сеанса приложения (AppSKey
).Значения, определенные из Join Accept, используются всякий раз, когда узлу требуется передать некоторые фактические данные (вместе со счетчиком безопасности, который начинается с нуля при присоединении). Активация действует до тех пор, пока узел хранит ее в памяти (а счетчики безопасности не были исчерпаны), как правило, в течение многих месяцев или даже лет. В случае потери узел может отправить новый запрос на присоединение и получить новые секреты.
Активация с помощью персонализации (ABP)
Здесь, при регистрации с использованием некоторого веб-сайта или API, узлу сразу присваивается адрес устройства (
DevAddr
), секретный сетевой ключ сеанса (NwkSKey
) и секретный ключ сеанса приложения (AppSKey
), которые запрограммированы в узле и никогда не изменяются. Узлу не нужно сначала отправлять запрос на соединение, прежде чем он сможет начать отправку каких-либо данных, но необходимо позаботиться о том, чтобы счетчики безопасности не были потеряны. Кроме того, ключи являются специфическими для данной сети; APB затрудняет (если не делает невозможным) перемещение узлов на другого сетевого провайдера.источник
Ответ Арджана хорош. Технический. Я хотел дать другой вариант ответа, чтобы помочь тем, кто новичок и изо всех сил пытается соединить картину в отношении шлюзов и того, как пакеты перемещаются назад и вперед.
Аналогия ...
Письмо / Пакет имеет адрес. Почтальон / шлюз забирает письмо из вашего почтового ящика или любого почтового ящика, в который вы уронили ваше письмо. Оно обрабатывается до самого получателя. Если адрес неправильный, он не придет, и вы должны получить уведомление об этом. Получатель может отправить вам письмо обратно через ту же систему.
Собираетесь ли вы использовать The Things Network или пытаетесь создать свой собственный частный сервер, используя что-то вроде LoRaServer, вам понадобится шлюз в пределах досягаемости вашего узла / мотива / конечного устройства для пересылки сообщений туда и обратно. Думайте о различных ключах в коде узла как об адресах на букве в аналогии.
Вы можете определить, есть ли уже шлюз TTN в вашем регионе на их странице карты, и если он находится в пределах досягаемости вашего узла, ваши сообщения должны достигнуть вашего TTN (при условии, что вы зарегистрировали и применили ключи к своему узлу). Если в пределах досягаемости нет ворот, вы можете построить свой собственный. Есть много вариантов сделать это.
Что касается настройки шлюза, в зависимости от того, какую библиотеку вы выбираете, вам обычно просто нужно настроить некоторые параметры либо в исходном коде, либо в файле global_conf.json или local_conf.json.
Вот пример из возни с RFM9X (на основе SX1276) и RPI3 B + с использованием single_chan_pkt_fwdКоторый, кстати, не даст ответов ... имейте в виду, что это только для возиться / тестирования. И примеры пересылки, и приведенные ниже примеры global_conf.json не являются plug-n-play и не должны использоваться для правильной работы LoRaWan. Совместимый шлюз имеет 3 радиомодуля и может обрабатывать несколько каналов и отправлять / получать одновременно. Этот пример только получает от узла на единственном канале и не очень надежен, но представляет конфигурацию. Каждое из значений зависит от используемого вами оборудования и местоположения ... или расположения шлюза, такого как США, ЕС и т. Д. ... Также стоит отметить, что такой global_conf.json не является единым размером подходит всем. Разные библиотеки обычно имеют больше параметров конфигурации для нескольких радиостанций, каналов и т. Д. - только для справки.
Допустим, вы создаете узел с устройством и кодом Arduino. И вы используете что-то вроде библиотеки LMIC-Arduino и пример скетча. Сначала вы должны определить, на основе аппаратного обеспечения устройства, как настроить раскладку для устройства, чтобы оно даже работало. Затем, если вы собираетесь использовать TTN, вы должны выполнить любое из многих руководств, чтобы зарегистрироваться и получить необходимые ключи, которые вы вставили в код эскиза. Вы также должны убедиться, что вы передаете на соответствующей частоте и т. Д., Чтобы выровняться со шлюзом в вашем регионе.
источник