Ответ Арджана хорош. Технический. Я хотел дать другой вариант ответа, чтобы помочь тем, кто новичок и изо всех сил пытается соединить картину в отношении шлюзов и того, как пакеты перемещаются назад и вперед.
Аналогия ...
You > Letter > Mailbox > Mailman > Post Office Dist > Recipient
|----------------- TX -------------------|
Node > Packet > Transmission > Gateway > Network Server > Application
|----------------- RX -------------------|
Node < Packet < Transmission < Gateway < Network Server < Application
Письмо / Пакет имеет адрес. Почтальон / шлюз забирает письмо из вашего почтового ящика или любого почтового ящика, в который вы уронили ваше письмо. Оно обрабатывается до самого получателя. Если адрес неправильный, он не придет, и вы должны получить уведомление об этом. Получатель может отправить вам письмо обратно через ту же систему.
Собираетесь ли вы использовать 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 не является единым размером подходит всем. Разные библиотеки обычно имеют больше параметров конфигурации для нескольких радиостанций, каналов и т. Д. - только для справки.
{
"SX127x_conf": // depending on your hardware/radio this could be something like sx1301..., sx127x...., etc..
{
"freq": 903000000, // depending on whether US (900 range), EU (800 range) or other...
"spread_factor": 7, // look this up
"pin_nss": 10, // wiringpi value = physical pin #24
"pin_dio0": 5, // wiringpi value = physical pin #18
"pin_rst": 21 // wiringpi value = physical pin #29
},
"gateway_conf":
{
"ref_latitude": 0.0,
"ref_longitude": 0.0,
"ref_altitude": 2,
"name": "WHATEVER NAME",
"email": "WHATEVER@EMAIL.TLD",
"desc": "WHATEVER DESC",
"servers":
[
{
"address": "localhost", // this one is private so localhost, but TTN lookup address
"port": 1700, // this one is private so localhost, but TTN lookup port
"enabled": true
} // you could add more... say you have a private one and TTN
]
}
}
Допустим, вы создаете узел с устройством и кодом Arduino. И вы используете что-то вроде библиотеки LMIC-Arduino и пример скетча. Сначала вы должны определить, на основе аппаратного обеспечения устройства, как настроить раскладку для устройства, чтобы оно даже работало. Затем, если вы собираетесь использовать TTN, вы должны выполнить любое из многих руководств, чтобы зарегистрироваться и получить необходимые ключи, которые вы вставили в код эскиза. Вы также должны убедиться, что вы передаете на соответствующей частоте и т. Д., Чтобы выровняться со шлюзом в вашем регионе.