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?
networking
lora
Mohamed Achref Dridi
źródło
źródło
Odpowiedzi:
W typowej sieci LoRaWAN bramy są głupimi urządzeniami, jak wyjaśnia LoRa Alliance :
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.źródło
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...
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.
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.
źródło