Kompletny przewodnik po konfiguracji bramy LoRaWAN

  • Brama LoRaWAN działa jako pomost między węzłami LoRa i serwerami sieciowymi, wymagając starannej konfiguracji sprzętu, sieci IP i parametrów radiowych.
  • Pliki takie jak global_config.json i local_config.json definiują częstotliwości, GPS, gateway_ID i serwery, a nawet można nimi zarządzać zdalnie za pomocą repozytoriów GitHub.
  • Integracja z platformami takimi jak TTN i AWS IoT Core dla LoRaWAN wymaga zarejestrowania bramy, aplikacji i urządzeń końcowych, dostosowania identyfikatorów, kluczy i planów częstotliwości.
  • Ciągły monitoring za pośrednictwem konsol internetowych i interfejsów API umożliwia wykrywanie błędów częstotliwości, awarii połączeń i sprawdzanie, czy łącza uplink są odbierane i przetwarzane prawidłowo.

Konfiguracja bramy LoRaWAN

Złóż i drobno posiekaj Konfigurowanie bramy LoRaWAN Na początku może się to wydawać nieco onieśmielające: parametry radiowe, sieci, serwery, certyfikaty, dziwne identyfikatory… ale w rzeczywistości, jeśli zrozumiesz każdy element, to całkiem logiczny proces. W tym artykule przejdziemy od sprzętu do serwera LoRaWAN, w tym TTN i AWS IoT Core, aby zapewnić Ci pełny i praktyczny przegląd.

Będziemy opierać się na przykładach ze świata rzeczywistego, takich jak: Bramki RAK (RAK7289, RAK831)Omówimy sieci publiczne, takie jak The Things Network (TTN), rozwiązania chmurowe, takie jak AWS IoT Core dla LoRaWAN, oraz konfiguracje producentów, takie jak MOKO. Wszystkie te treści połączymy w spójny przewodnik, zawierający ostrzeżenia dotyczące bezpieczeństwa, wskazówki dotyczące znajdowania adresu IP bramy oraz szczegółowe informacje o konfiguracji sieci i łączności radiowej.

Podstawowe koncepcje: czym jest brama LoRaWAN i co robi

A Brama LoRaWAN To urządzenie odpowiedzialne za nasłuchiwanie węzłów LoRa (czujników, trackerów itp.) i przekazywanie ich komunikatów do serwera sieci LoRaWAN przez internet (Ethernet, Wi-Fi, LTE/4G, 5G, satelitę itp.). Można je traktować jako rodzaj wieża telefonii komórkowej ale dla urządzeń o bardzo niskim poborze mocy.

Na poziomie fizycznym brama integruje jeden lub więcej Koncentratory LoRa (takich jak RAK831) zdolnych do monitorowania wielu kanałów równolegle i różnych współczynników rozprzestrzeniania, płyty sterującej (np. Raspberry Pi lub wbudowanego układu SoC), interfejsów sieciowych (Ethernet, Wi-Fi, LTE) i często GPS do synchronizacji i przybliżona geolokalizacja węzłów.

W ekosystemie LoRaWAN brama nie interpretuje zawartości ramek aplikacji: po prostu kapsułkuj i przekaż dalej Przekierowanie pakietów wysyła pakiety do serwera LoRaWAN (LNS: LoRaWAN Network Server) lub do infrastruktury chmurowej CUPS/LNS. Dlatego kluczowa konfiguracja koncentruje się na parametrach radiowych, identyfikatorach bram oraz adresie serwera, do którego dane będą wysyłane.

W zależności od wdrożenia będziesz mógł używać bramy publiczne (na przykład dla społeczności TTN na obszarach miejskich) lub skonfigurować własną bramę obejmującą obszar wiejski, gospodarstwo rolne, kampus edukacyjny lub środowisko przemysłowe, w którym potrzebna jest pełna kontrola nad infrastrukturą.

Typowy sprzęt bramy LoRaWAN

Aby zbudować lub wdrożyć bramę, masz do wyboru różne opcje, od zamkniętych urządzeń komercyjnych po Zestawy deweloperskie oparte na Raspberry PiDość reprezentatywnym przykładem jest zastosowanie zintegrowanej centrali RAK831 z Raspberry Pi.

Typowy zestaw bramki LoRa tego typu zwykle zawiera: wszystkie niezbędne komponenty sprzętowe Aby rozpocząć pracę bez konieczności szukania poszczególnych części: samej płytki koncentratora LoRaWAN, płyty głównej, anten i adapterów. To znacznie przyspiesza proces konfiguracji i eliminuje problemy z kompatybilnością.

W konkretnym przypadku niektórych zestawów MOKO opartych na RAK831 i Raspberry Pi 3B, pakiet może zawierać między innymi: Płytka adaptera GPSAntena GPS, antena LoRa z włókna szklanego o wystarczającym zysku do instalacji na maszcie, kilka metrów kabla koncentrycznego RG-58, radiator dla płytki koncentratora, a nawet przykładowe węzły, takie jak trackery WisNode lub LoRa.

Wielką zaletą tych zestawów jest to, że karta pamięci Raspberry Pi jest zazwyczaj dostarczana wstępnie skonfigurowany z oprogramowaniem bramki (przekierowanie pakietów, skrypty konfiguracyjne itp.), dzięki czemu nie musisz niczego kompilować ani pobierać z GitHub, aby zacząć, poza dostosowaniem kilku plików konfiguracyjnych.

W bramach komercyjnych, takich jak RAK7289Cały sprzęt jest zintegrowany w obudowie przemysłowej, gotowej do montażu na zewnątrz, z anteną LoRa i, czasami, dodatkową anteną LTE/4G. Modele te zazwyczaj oferują dość przejrzysty interfejs konfiguracji internetowej, więc praca koncentruje się na parametrach sieciowych (IP, DNS itp.) i skierowaniu bramy do właściwego serwera LoRaWAN.

Konfiguracja sieci bramy: statyczny adres IP, DHCP i początkowy dostęp

Zanim dotkniesz części LoRaWAN, musisz się upewnić, że Brama jest prawidłowo podłączona do sieci IP (LAN lub WAN). Bez połączenia z internetem (lub z lokalnym serwerem) prawidłowe działanie radia jest bezcelowe.

W wielu bramach (np. RAK7289) interfejs administracyjny jest prezentowany przez sieć i dostępny za jej pośrednictwem. Adres IP w sieciMożna go skonfigurować jako klienta DHCP (który automatycznie uzyskuje adres IP z routera) lub ze statycznym adresem IP, w zależności od topologii sieci.

Jeżeli urządzenie pochodzi z fabryki lub zostało skonfigurowane przez inną organizację, może znajdować się w trybie klient DHCPW takim przypadku musisz dowiedzieć się, jaki adres IP przypisał router lub serwer DHCP Twojej sieci. Aby to zrobić, możesz:

  • Skonsultuj się bezpośrednio z Lista klientów DHCP na routerze lub serwerze, identyfikując bramę za pomocą jej adresu MAC lub nazwy hosta (na przykład „RAK7289”).
  • Użyj narzędzi takich jak nmap lub innych skanerów IP, aby dowiedzieć się, które urządzenia odpowiadają w Twoim segmencie sieci.

Niektóre bramy obejmują zarządzanie punktem dostępu Wi-Fi Otwarty, zaprojektowany specjalnie na potrzeby tej początkowej konfiguracji. Jeśli połączysz się z tą siecią Wi-Fi, brama będzie działać jak router, a domyślny adres IP bramy na Twoim komputerze będzie adresem IP zarządzania urządzeniem.

Ważny szczegół dotyczący bezpieczeństwa: po zakończeniu rozruchu zaleca się wyłącz zarządzanie Wi-Fi chyba że jest to absolutnie konieczne, gdyż otwarta, zarządzana sieć Wi-Fi stwarza wyraźną lukę w zabezpieczeniach w rzeczywistych środowiskach.

W interfejsie konfiguracyjnym (na przykład w menu Sieć → Interfejs WAN bramy RAK) można wybierać pomiędzy statycznym adresem IP a DHCP, definiować DNS, maskę podsieci, bramę, a także zmieniać poświadczenia dostępu domyślnie (nazwa użytkownika i hasło), których nigdy nie należy zmieniać, ponieważ pochodzą one z fabryki.

Instalacja i konfiguracja bramy w sieci The Things Network (TTN)

Gdy Twoja brama ma dostęp do Internetu, kolejnym krokiem w wielu wdrożeniach społecznościowych lub laboratoryjnych jest zintegrować z TTN (The Things Network), bezpłatna i publiczna sieć LoRaWAN, idealna do projektów edukacyjnych, testów i wdrożeń na małą skalę.

Zwykły proces rozpoczyna się od założenia konta na stronie internetowej TTN i uzyskania dostępu do konsola Z ikony profilu. Podczas pierwszego logowania system poprosi Cię o wybranie regionu (np. Europa, Ameryka Północna itd.), a następnie możesz przejść do sekcji „Aplikacje” lub „Bramy”. Aby zarejestrować bramę, musisz przejść do sekcji „Przejdź do bram”.

Na konsoli TTN po naciśnięciu przycisku Zarejestruj bramkęZostaniesz poproszony o podanie kilku informacji: identyfikatora bramy, jej unikalnego EUI oraz planu częstotliwości dla Twojego regionu. EUI bramy jest zazwyczaj dostępny w interfejsie internetowym lub oprogramowaniu układowym urządzenia, zazwyczaj w sekcji ustawień sieci LoRa.

Istotne jest, aby Identyfikator bramy zdefiniowany w TTN musi być zgodny z identyfikatorem skonfigurowanym na urządzeniu.Zwłaszcza jeśli wymaga tego dokumentacja producenta. Dodatkowo należy wybrać odpowiedni plan częstotliwości (na przykład EU868 dla Europy), który definiuje dostępne kanały i parametry radiowe zgodne z przepisami obowiązującymi w danym kraju.

Po zarejestrowaniu bramy w TTN konfiguracja w konsoli jest prawie ukończona. TTN pokaże Ci status bramy (połączona lub nie) po rozpoczęciu wysyłania pakietów do urządzenia. Przekaźnik pakietów TTN używając odpowiedniego adresu serwera.

Konfiguracja przekazywania pakietów i parametry LoRaWAN

Interfejs bramy (menu Sieć LoRa → Ustawienia sieciowe → Przekierowanie pakietów lub podobne) to miejsce, w którym Parametry połączenia serwera LoRaWANTa sekcja stanowi pomost między światem radia LoRa i serwerem sieciowym.

Konfigurację przekierowania pakietów przeprowadza się poprzez określenie adres serwera (na przykład router TTN lub router niestandardowy, taki jak router.us.mokolora.network we wdrożeniach MOKO), a także porty upstream i downstream (serv_port_up i serv_port_down). Każdy skonfigurowany serwer można również włączyć lub wyłączyć za pomocą typowej flagi, takiej jak serv_enabled.

W bramkach opartych na MOKO i Raspberry Pi wiele z tych parametrów jest przechowywanych w plikach JSON, takich jak global_config.json y local_config.json, które odpowiednio definiują ogólną konfigurację regionu i konkretne dane bramy (identyfikator, lokalizacja, serwery itp.).

Plik global_config.json zwykle zawiera blok gateway_conf z ustawieniami dla GPS i synchronizacja, na przykład:

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

Podczas gdy local_config.json przechowuje dane takie jak identyfikator_bramy, współrzędne (ref_latitude, ref_longitude, ref_altitude), adres e-mail kontaktowy, opis i lista serwerów, z którymi łączy się przekierowywacz pakietów, każdy z parametrami server_address, serv_port_up, serv_port_down i serv_enabled.

Zarządzanie plikami konfiguracyjnymi i gateway_ID

W systemach typu Raspberry Pi z MOKO ciekawym aspektem jest to, jak generuje i zarządza gateway_IDZwykle oblicza się go na podstawie adresu MAC interfejsu sieciowego (np. eth0) za pomocą skryptu, który przekształca go w identyfikator EUI64, wstawiając pomiędzy literę „FFFE” i kapitalizując wynik.

Ten identyfikator bramy jest następnie używany w pliku local_config.json do jednoznacznej identyfikacji bramy do serwera LoRaWAN. Co więcej, wiele wdrożeń opiera się na schemacie konfiguracja zdalna na podstawie repozytorium GitHub, w którym publikowane są pliki global_config.json dla każdego regionu i pliki local_config.json dla konkretnych bram.

Mechanizm działa w następujący sposób: po uruchomieniu koncentrator LoRa pobiera plik konfiguracyjny odpowiadający jego identyfikatorowi bramy z serwisu GitHub, sprawdza zmiany od ostatniego uruchomienia i jeśli wykryje nową wersję, synchronizuje ją, tworząc link symboliczny z bin/local_config.json do sklonowanego pliku repozytorium.

Jeśli chcesz skorzystać z tego systemu, możesz Prześlij własny plik konfiguracyjny do zdalnego repozytoriumnadając mu nazwę zawierającą gateway_ID (na przykład MFP254862KEF1034.json), wykonaj rozwidlenie, wyślij żądanie ściągnięcia do głównego repozytorium i po zaakceptowaniu brama automatycznie pobierze tę konfigurację przy kolejnych uruchomieniach.

Umożliwia to aktualizację kluczowych parametrów (serwerów, częstotliwości, opisu, danych kontaktowych) bez konieczności fizycznego dostępu do każdej bramy, pod warunkiem, że posiada ona łączność internetowa i włączone oprogramowanie synchronizujące.

Ustawienia regionalne, kanały i błędy częstotliwości

Jednym z aspektów, który powoduje wiele pytań podczas konfigurowania bram LoRaWAN, jest konfiguracja częstotliwości regionalnychKażdy kraj lub obszar geograficzny ma określone pasma włączone dla LoRa (na przykład 868 MHz w Europie, 915 MHz w niektórych regionach Ameryki itd.), a serwery sieciowe sprawdzają, czy pakiety docierają na dozwolonych częstotliwościach.

Pliki konfiguracji globalnej dla bramy (global_config.json) definiują kanały i parametry radiowe (częstotliwości, przepustowość, współczynnik rozpraszania itp.) dla każdego regionu. Publiczne repozytoria z predefiniowanymi konfiguracjami dla wielu planów regionalnych są dostępne w serwisie GitHub, co znacznie upraszcza wdrażanie.

Jeśli konfiguracja bramy nie jest zgodna z konfiguracją serwera, z którym chcesz się połączyć, mogą pojawić się następujące błędy: „Pakiet ODRZUCONY, częstotliwość niekompatybilna”Na przykład brama może wysyłać pakiety na częstotliwości 868.3 MHz, podczas gdy serwer czeka na pakiety z zakresu 890–975 MHz, co spowoduje generowanie błędów w dzienniku przekazywania pakietów.

Aby uniknąć tych błędów, upewnij się, że pobrałeś global_config.json jest poprawny dla Twojego regionui czy Twój serwer (TTN, MOKO, AWS IoT Core) jest skonfigurowany z tym samym planem częstotliwości. Powinieneś również sprawdzić, czy węzły końcowe (trackery, czujniki itp.) korzystają z tego samego pasma zdefiniowanego na bramie i serwerze.

Na przykład w takich krajach jak Chiny stosuje się specyficzne konfiguracje z innymi pasmami i kanałami niż te stosowane w Europie, dlatego nie wystarczy po prostu skopiować dowolnego przykładu z Internetu; trzeba użyć konkretny plik powiązany z Twoim obszarem geograficznym tak, aby wszystko do siebie pasowało.

Łączenie bram LoRaWAN z AWS IoT Core

W przypadku bardziej zaawansowanych wdrożeń możesz zintegrować swoje bramy bezpośrednio z AWS IoT Core dla LoRaWAN, wykorzystując możliwości chmury Amazon do zarządzania urządzeniami, gromadzenia danych i przetwarzania wiadomości.

Ogólny przepływ obejmuje rejestrację bramy w AWS IoT Core dla LoRaWAN, uzyskanie niezbędnych informacji (certyfikatów, adresów URL punktów końcowych), a następnie skonfigurowanie urządzenia bramy w celu połączenia z Punkt końcowy CUPS lub LNS z AWS, zgodnie z obsługiwanym protokołem.

W zależności od typu bramy, dokumentacja dostawcy wyjaśni, jak to zrobić prześlij certyfikaty zaufania W tym przewodniku wyjaśniono, jak określić ścieżki do tych certyfikatów w oprogramowaniu sprzętowym i jak skierować je do adresów URL CUPS lub LNS udostępnianych przez AWS. Należy ściśle przestrzegać tego przewodnika, ponieważ uwierzytelnianie TLS jest obowiązkowe.

W przypadku bram zgodnych z protokołem CUPS konieczne będzie określenie adresu URL punktu końcowego CUPS, który będzie miał format podobny do: prefix.cups.lorawan.region.amazonaws.com:443. W przypadku bram zgodnych z LNS adres URL będzie wyglądał mniej więcej tak: https://prefix.lns.lorawan.region.amazonaws.com:443, zawsze z użyciem port 443 i bezpieczne połączenie.

Po przesłaniu certyfikatów i skonfigurowaniu punktów końcowych brama rozpocznie komunikację z AWS IoT Core dla LoRaWAN a jego status (połączony, ostatnio odebrany sygnał uplink itp.) można sprawdzić z konsoli internetowej lub za pomocą interfejsu API GetWirelessGatewayStatistics, który zwraca informacje, takie jak ConnectionStatus i LastUplinkReceivedAt w formacie JSON.

Monitorowanie stanu bramy za pomocą konsoli AWS i interfejsu API

Po podłączeniu bramy do AWS IoT Core dla LoRaWAN platforma oferuje kilka sposobów sprawdź czy wszystko działa prawidłowo.Najbardziej bezpośrednim rozwiązaniem jest konsola internetowa AWS IoT, w której znajduje się specjalna sekcja Bramki.

W konsoli po wybraniu bramy na stronie Bramy pojawi się blok Szczegóły dotyczące LoRaWANMożna tam sprawdzić status połączenia, a także datę i godzinę ostatniego odebrania sygnału, co pozwala na szybkie sprawdzenie, czy brama jest aktywna i komunikuje się z chmurą.

Jeśli wolisz zautomatyzować monitorowanie, możesz użyć API GetWirelessGatewayStatisticsOperacja ta nie wymaga treści żądania i zwraca kod JSON, który wskazuje na przykład ConnectionStatus (Połączono/Rozłączono), LastUplinkReceivedAt ze znacznikiem czasu i WirelessGatewayId odpowiadający urządzeniu.

Przykładem odpowiedzi może być: coś takiego: {"ConnectionStatus":"Connected","LastUplinkReceivedAt":"2021-03-24T23:13:08.476015749Z","WirelessGatewayId":"30cbdcf3-86de-4291-bfab-5bfa2b12bad5"}, które można zintegrować z narzędziami monitorującymi lub niestandardowymi pulpitami nawigacyjnymi.

W ten sposób zarówno z konsoli, jak i z poziomu API masz bardzo jasne sposoby wykrywać awarie łącznościprzedłużająca się nieaktywność bramy lub problemy z konfiguracją, które uniemożliwiają łączom uplink prawidłowe dotarcie do AWS IoT Core.

Rejestracja aplikacji i urządzeń końcowych w TTN

Wracając do środowiska TTN, gdy brama jest już uruchomiona i zarejestrowana, pozostaje jeszcze jeden kluczowy krok: zarejestruj aplikację i urządzenia końcowe (węzły, trackery, czujniki). To, że brama jest wyświetlana jako połączona w TTN, nie oznacza, że ​​już odbierasz dane ze swoich węzłów.

W konsoli TTN przejdź do sekcji „Aplikacje” i utwórz nową aplikację, nadając jej nazwę/ID. W tej aplikacji użyj przycisku „zarejestruj urządzenie końcowe” Aby zarejestrować każdy węzeł LoRaWAN, możesz wprowadzić dane ręcznie lub skorzystać z szablonów, w zależności od typu urządzenia.

Kluczowe parametry obejmują DevEUI, JoinEUI (APP-EUI) i AppKeyNiektóre narzędzia, takie jak własna konsola TTN, umożliwiają Automatyczne generowanie DevEUI i AppKey za pomocą przycisków generacji, co ułatwia uruchomienie podczas korzystania z węzłów ogólnych lub niestandardowych opracowań.

W przypadku JoinEUI w niektórych przypadkach można ustawić praktycznie dowolną wartość, pod warunkiem, że będzie ona zgodna z ustawienia urządzenia (Na przykład w narzędziu konfiguracyjnym Loko parametr APP-EUI odpowiada parametrowi JoinEUI w TTN). Pozostałe klucze muszą być identyczne w konsoli i oprogramowaniu sprzętowym węzła.

Po zarejestrowaniu urządzenia końcowego możesz przejść do sekcji formatowania ładunku i wybrać opcje takie jak: CayenneLPP do dekodowania w łączu w górę. Pozwala to na prezentację danych w bardziej przyjaznych dla użytkownika formatach i ułatwia integrację z pulpitami nawigacyjnymi, bazami danych i systemami wizualizacji.

Praktyczny przykład z trackerami i narzędziami konfiguracyjnymi

Dość powszechnym przykładem ze świata rzeczywistego jest użycie Lokalizatory GPS LoRaWAN Lokalizowanie osób, pojazdów lub zasobów poprzez okresowe przesyłanie ich współrzędnych przez sieć. Urządzenia takie jak Dragino TrackerD czy Loko Air doskonale ilustrują ten proces.

Na przykład w środowisku edukacyjnym można zarejestrować kilka trackerów w ramach tej samej aplikacji w TTN, korzystając z faktu, że każdy z nich jest wyposażony w unikalne referencje (DevEUI, AppEUI/JoinEUI, AppKey), które są opisane w instrukcji obsługi lub na etykiecie urządzenia. Wszystkie są powiązane z tą samą aplikacją, ale są indywidualnie identyfikowane.

Aby skonfigurować zaawansowane parametry śledzenia (częstotliwość wysyłania współrzędnych, czas trwania alarmu paniki itp.), urządzenie można podłączyć przez USB i użyć interfejsu szeregowego o prędkości 115200 bodów, wysyłając predefiniowane polecenia ATNiektóre modele nie obsługują wprowadzania poleceń „klawisz po klawiszu”. Zamiast tego całe polecenie należy wpisać od razu, aby zostało poprawnie zinterpretowane.

W przypadku urządzeń takich jak Loko Air narzędzie Narzędzie konfiguracyjne Loko Umożliwia odczytanie bieżącej konfiguracji, włączenie trybu LoRaWAN i wypełnienie trzech podstawowych parametrów (JoinEUI/AppEUI, DevEUI i AppKey), tak aby odpowiadały informacjom aktywacyjnym urządzenia końcowego w The Things Network.

Po zastosowaniu ustawień i ponownym uruchomieniu urządzenia, jeśli brama działa prawidłowo i jest w zasięgu, powinieneś zacząć widzieć ruch na żywo w sekcji Urządzenia końcowe TTN, w tym wiadomości z zdekodowanymi ładunkami i lokalizacją urządzenia śledzącego na mapie, jeśli format na to pozwala.

Ponadto informacje wyświetlane w konsoli TTN można zintegrować z publicznymi pulpitami nawigacyjnymi, takimi jak: Datacakektóre umożliwiają konwersję surowych danych LoRaWAN na przyjazne dla użytkownika wizualizacje, udostępniane pulpity nawigacyjne lub tablice wyników na potrzeby projektów edukacyjnych i pilotaży IoT.

Biorąc pod uwagę całą tę podróż, od sprzętu po chmurę, w tym TTN, AWS i precyzyjne dostrojenie konfiguracji radiowej, jasne jest, że brama LoRaWAN to nie tylko „antena”, ale punkt nerwowy łączący świat fizyczny czujników z platformami danych, na których faktycznie generowana jest wartość projektu.

Ostatni akapit

Po zrozumieniu wewnętrznych mechanizmów — sprzętu RAK831 lub RAK7289, plików global_config i local_config, zdalnej synchronizacji za pośrednictwem GitHub, konfiguracji IP i wyłączania zarządzania Wi-Fi, konfiguracji i parametryzacji TTN, bezpiecznego połączenia z AWS IoT Core oraz rejestracji aplikacji i urządzeń końcowych, takich jak lokalizatory GPS lub jednostki Loko Air — znacznie łatwiej jest zrozumieć, że Konfigurowanie bramy LoRaWAN Jest to po prostu uporządkowana suma kilku logicznych kroków, gdzie kluczem jest przestrzeganie regionalnego planu częstotliwości, dopasowanie identyfikatorów i kluczy między bramą, serwerem i węzłami oraz poleganie na konsolach i interfejsach API różnych usług w celu ciągłej weryfikacji, czy połączenia uplinkowe docierają i czy infrastruktura LoRaWAN zachowuje się zgodnie z oczekiwaniami w rzeczywistym wdrożeniu.