Konfigurowanie LoraWan Gateway

10

Próbuję zbudować sieć LoRaWan przy użyciu czujnika programowalnego w Arduino i Dragino Lora Shield .

Znalazłem wiele rozwiązań do tworzenia bramy, w tym Raspberry Pi połączonej z inną Dragino Lora Shield lub z iC880A , a dane, które otrzymam, zostaną wysłane na serwer w chmurze. Jestem bardzo zdezorientowany co do programowania bramy.

  • Czy muszę mu powiedzieć, aby łączył się z węzłem i serwerem? Czy może odbiera dane automatycznie?
  • I czy programuję serwer tak, aby łączył się z bramą lub bezpośrednio z węzłami?
Mohamed Achref Dridi
źródło
2
Witamy na stronie. Czy możesz dodać kilka informacji o używanych modelach urządzeń i dodać więcej szczegółów na temat swojego przypadku użycia? Pomoże nam to udzielić lepszych odpowiedzi.
Helmar
Cześć i dzięki! Jestem początkującym w sieciach Iot, więc utworzyłem węzeł za pomocą arduino uno, czujnika temperatury i Dragino Lora Shield, próbuję wysłać datę na serwer, więc spróbowałem utworzyć bramę LoraWan za pomocą raspberry pi, zrobiłem niektóre badania, w jaki sposób przekształcić go w bramę LoraWan, i dowiedziałem się, że mogę użyć innej Dragino Lora Shield lub z modułem iC880A, i znalazłem kod źródłowy, aby to zrobić, ale nadal nie jestem pewien, jak podłączyć brama do węzła i jak wysłać dane z węzła do bramy do serwera? z góry dziękuję !!
Mohamed Achref Dridi

Odpowiedzi:

11

W typowej sieci LoRaWAN bramy są głupimi urządzeniami, jak wyjaśnia LoRa Alliance :

Architektura sieci LoRaWAN jest zazwyczaj ułożona w topologii gwiazdy, w której bramy są przezroczystym mostem przekazującym komunikaty między urządzeniami końcowymi a serwerem centralnej sieci w backendie.

Tak więc brama musi być skonfigurowana tylko do łączenia się z jakimś serwerem sieciowym, takim jak otwarta The Things Network . To wszystko.

Bramy są często nazywane „przekaźnikami pakietów”. W związku z tym bramy właśnie to robią: przesyłają wszystkie otrzymane pakiety LoRaWAN do jakiegoś serwera sieciowego (niezależnie od tego, który węzeł je wysłał) i przesyłają wszystko, co nakazuje serwer sieciowy. Dlatego węzły (urządzenia końcowe) nie łączą się z niektórymi bramami ; zamiast tego po prostu transmitują i mają nadzieję, że jedna lub więcej bram odbierze transmisję i przekaże ją do serwera sieciowego, który zna węzeł. (Bramy nie mogą odczytać zaszyfrowanych danych, które przekazują).

Aby połączyć węzły z siecią, są one „aktywowane” za pomocą jednej z dwóch opcji :

  • Aktywacja Over-The-Air (OTAA)

    Po pierwsze, za pomocą strony internetowej lub interfejsu API każdy nowy węzeł jest rejestrowany na serwerze sieciowym za pomocą unikalnego urządzenia EUI ( DevEUI). Następnie otrzymuje publiczny identyfikator aplikacji ( AppEUI) i tajny klucz aplikacji ( AppKey). Te trzy wartości są zaprogramowane w węźle.

    Następnie, gdy są gotowe do wysłania po raz pierwszy, wartości są używane przez węzeł do utworzenia i przesłania żądania dołączenia LoRaWAN. Jeśli takie żądanie zostanie odebrane przez jedną lub więcej bram, jest przekazywane do serwera sieciowego, który, jeśli zostanie zatwierdzony, powie jednej bramie, aby przesłało Przyjęcie Dołącz. Jeśli zostanie odebrany przez węzeł, daje to węzłu publiczny adres urządzenia ( DevAddr), tajny klucz sesji sieciowej ( NwkSKey) i tajny klucz sesji aplikacji ( AppSKey).

    Wartości określone na podstawie opcji Akceptuj dołączenie są używane za każdym razem, gdy węzeł musi przesłać niektóre rzeczywiste dane (wraz z licznikiem bezpieczeństwa, który rozpoczyna się od zera przy każdym dołączaniu). Aktywacja jest ważna tak długo, jak węzeł przechowuje ją w pamięci (a liczniki zabezpieczeń nie zostały wyczerpane), zwykle przez wiele miesięcy, a nawet lat. Za każdym razem, gdy zostanie utracony, węzeł może wysłać nowe żądanie dołączenia i uzyskać nowe sekrety.

  • Aktywacja przez personalizację (ABP)

    Tutaj podczas rejestracji za pomocą strony internetowej lub interfejsu API węzeł otrzymuje od razu adres urządzenia ( DevAddr), tajny klucz sesji sieciowej ( NwkSKey) i tajny klucz sesji aplikacji ( AppSKey), które są programowane w węźle i nigdy się nie zmieniają. Węzeł nie musi najpierw wysyłać żądania dołączenia, zanim będzie mógł rozpocząć wysyłanie jakichkolwiek danych, ale należy zachować ostrożność, aby nie utracić liczników bezpieczeństwa. Ponadto klucze są specyficzne dla danej sieci; APB utrudnia (jeśli nie jest to niemożliwe) przenoszenie węzłów do innego operatora sieci.

Arjan
źródło
1
Niektóre specjalne bramy zawierają serwer sieci LoRaWAN i mogą działać jako niezależne sieci. Ale większość musi być podłączona do zewnętrznego serwera sieciowego. Usunąłem swoją odpowiedź, która nie była wystarczająco jasna w tej kwestii.
Sylvain
0

Odpowiedź Arjana jest dobra. Techniczny. Chciałem podać inną odpowiedź dotyczącą smaku, aby pomóc tym, którzy są nowi i zmagają się, aby zebrać obraz w odniesieniu do bram i sposobu, w jaki pakiety przemieszczają się tam iz powrotem.

Analogia...

You > Letter > Mailbox > Mailman > Post Office Dist > Recipient

|----------------- TX -------------------|

Node > Packet > Transmission > Gateway > Network Server > Application

|----------------- RX -------------------|

Node < Packet < Transmission < Gateway < Network Server < Application

List / Pakiet ma adres. Listonosz / brama odbiera list ze skrzynki pocztowej lub innej skrzynki, do której wrzuciłeś list. Jest on obsługiwany aż do adresata. Jeśli adres jest nieprawidłowy, nie dotrze i należy o tym powiadomić. Odbiorca może wysłać do Ciebie list za pośrednictwem tego samego systemu.

Niezależnie od tego, czy zamierzasz korzystać z sieci The Things Network, czy próbować zbudować własny prywatny serwer przy użyciu czegoś takiego jak LoRaServer , potrzebujesz bramki w zasięgu twojego węzła / mote / urządzenia końcowego, aby przekazywać wiadomości tam i z powrotem. Rozważ różne klucze w kodzie węzła jako adresy na literze w analogii.

Można określić, czy jest już brama TTN w danym obszarze na ich stronie mapy , a jeśli jest w zasięgu jednego węzła, wiadomości powinny dotrzeć do TTN (zakładając, że zostały zarejestrowane i stosowane klucze do węzła). Jeśli w zasięgu nie ma żadnej bramy, możesz ją zbudować. Można to zrobić na wiele sposobów.

Jeśli chodzi o konfigurację bramy, w zależności od wybranej biblioteki, zazwyczaj wystarczy skonfigurować niektóre parametry w kodzie źródłowym lub w pliku global_conf.json lub local_conf.json.

Oto przykład majsterkowania przy RFM9X (oparty na SX1276) i RPI3 B + przy użyciu single_chan_pkt_fwdktóre btw nie dostarczy odpowiedzi ... pamiętaj, że to tylko majsterkowanie / testowanie. Zarówno forwarder, jak i poniższe przykłady global_conf.json nie są plug-n-play i nie należy na nich polegać w celu zapewnienia prawidłowej sieci LoRaWan. Zgodna brama ma 3 radiotelefony i może przetwarzać wiele kanałów i jednocześnie wysyłać / odbierać. Ten przykład jest po prostu odbierany z węzła na jednym kanale i nie jest bardzo niezawodny, ale przedstawia konfigurację. Każda z wartości zależy od używanego sprzętu i miejsca, w którym się znajdujesz ... lub gdzie znajduje się brama, np. USA, UE itp., Warto również zauważyć, że taki plik global_conf.json nie jest jednego rozmiaru pasuje do wszystkich. Różne biblioteki zazwyczaj mają więcej opcji konfiguracji dla wielu radiotelefonów, kanałów itp. ... tylko dla twojej informacji.

{
  "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": "[email protected]",
    "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 
    ]
  }
}

Załóżmy, że budujesz węzeł za pomocą urządzenia i kodu Arduino. I używasz czegoś takiego jak biblioteka LMIC-Arduino i przykładowy szkic. Najpierw musisz określić na podstawie sprzętu urządzenia, jak skonfigurować mapę pinową, aby urządzenie działało. Następnie, jeśli zamierzasz użyć TTN, postępuj zgodnie z jednym z wielu przewodników, aby się zarejestrować i uzyskać potrzebne klucze, które umieścisz w kodzie szkicu. Musisz także upewnić się, że transmitujesz na odpowiedniej częstotliwości i tak ... aby ustawić się w linii z bramą w twoim obszarze.

Chris
źródło