Skocz do zawartości

Jak uruchomić sieć Meshtastic na płytkach XIAO? Test komunikacji na 2 km


Pomocna odpowiedź

Napisano

Współczesny świat przyzwyczaił nas do prostoty komunikacji. Dzięki telefonii komórkowej wystarczy wybrać odpowiedni numer, a po kilku sygnałach będziemy mogli porozmawiać z osobą na drugim końcu świata. Podobne zalety wynikają również ze wszechobecnego internetu, dzięki niemu wymieniamy wiadomości, czy też poszukujemy informacji o dowolnym miejscu bądź zjawisku. Technologie komunikacyjne wydają się dziś czymś wręcz oczywisty, w praktyce jednak bazują one na niesamowicie skomplikowanej infrastrukturze, potrzebne są stacje bazowe, routery, serwery, źródła zasilanie czy też działające usługi operatorów, którzy zarządzają ruchem wewnątrz systemu. 

Co by się jednak stało, gdyby wszystko nagle przestało działać? Informacyjna pustka, nie można zadzwonić, bo telefon nie ma zasięgu, domowe WIFI przestaje działać, przez co nie można sprawdzić, czy awaria to tylko nasz lokalny problem, czy też większa niedogodność wynikająca z problemów operatora sieci. Dodajmy do tego jeszcze przerwę w dostawie prądu i sytuacja robi się dość nieciekawa, możemy jedynie czekać, tak długo, jak wytrzymają baterię naszych urządzeń mobilnych. Ale co potem? Co zrobić, jeśli zasilanie nie wróci, a zasięg sieci się nie pojawi? Wydaje się to oczywiście dość abstrakcyjne, ale współczesne czasy pokazały nam, że światowa sytuacja potrafi zmieniać się naprawdę szybko, dlatego warto dowiedzieć się jak reagować w kryzysowych sytuacjach i gdzie szukać pomocy, zwłaszcza w naszych lokalnych społecznościach. 

Ciekawym aspektem kryzysowych sytuacji, w których przestają działać systemy komunikacji, są rozwiązania, które nie wymagają klasycznej sieci operatorskiej i potrafią działać lokalnie, niejako pomiędzy samymi urządzeniami. Jednym z nich są niewielkie moduły radiowe wykorzystujące technologię LoRa oraz sieci typu mesh. Dzięki nim wiele urządzeń może tworzyć własną, rozproszoną sieć komunikacyjną, w której wiadomości przekazywane są bezpośrednio między urządzeniami lub za ich pośrednictwem. Nie jest to jednak zamiennik internetu ani telefonu komórkowego, który znamy. W tego typu łączności komunikacja jest znacznie prostsza, wolniejsza i energooszczędna nastawiana przede wszystkim na wymianę krótkich wiadomości tekstowych. 

IMG_5407.thumb.JPG.45b7298de9b2dcccdc68e03dedbe989e.JPG

Moduły, z których korzystać będę w moich eksperymentach

W tym artykule opowiem wam nieco o niewielkich płytkach od Seeed Studio (Xiao ESP32-S3 + Wio-SX1262 oraz Xiao nRF52840 + Wio-SX1262), które współpracują z modułami radiowymi Wio-SX1262. Takie zestawy pozwalają eksperymentować z komunikacją LoRa, typu Meshtastic oraz MeshCore, czyli projektami umożliwiającymi budowanie niezależnych sieci mesh.

Wpis powstał we współpracy ze sklepem Botland, który jest oficjalnym dystrybutorem rozwiązań od Seeed Studio.

MeshCore i Meshtastic, jaka jest różnica?

Przeglądając informację o sieciach typu mesh i komunikacji wykorzystującej radiowe LoRa dość szybko można natknąć się na dwa pojęcia - MeshCore i Meshtastic. Początkowo oba rozwiązania mogą wydawać się dokładnie tym samym i nic w tym dziwnego, bo są one dość podobne. Obie technologie zaprojektowano z myślą o przesyłaniu krótkich wiadomości tekstowych, danych lokalizacyjnych czy też informacji telemetrycznych. W obu przypadkach urządzenia radiowe mogą przekazywać wiadomości dalej, zwiększając zasięg całej sieci i do działania nie potrzebują sieci komórkowej czy też WIFI. Cel i pomysł obu rozwiązań jest mniej więcej ten sam, różnice pojawiają się jednak w samej organizacji sieci i sposobie przekazywania danych. 

comparison-2048x1143.thumb.png.3c9484f921902dc7502861142b73fa3a.png

Porównanie sieci Meshtastic i MeshCore. (źródło)

Można powiedzieć, że Meshtastic to rozwiązanie o nieco bardziej „spontanicznym” charakterze, prostsze do uruchamiania i sprawdzające się tam, gdzie kilka lub kilkadziesiąt osób chce stworzyć własną lokalną sieć komunikacyjną. Z kolei MeshCore to rozwiązanie znacznie bardziej uporządkowane, przeznaczone do większych i co ważne stałych systemów komunikacyjnych, przykładem może tu być konkretna sieć obejmująca całe miasto. 

komunikacja.thumb.png.97b9e4b3e9223a940acb8cb9d5382b59.png

Porównanie komunikacji Meshtastic i MeshCore. (źródło)

W Meshtastic każde działające urządzenie może pełnić rolę przekaźnika. Oznacza to, że jego zadaniem nie jest tylko nadawać i odbierać wiadomości, ale także przesyłać dane innych użytkowników. Podejście to opisywane jest jako manager flood, czyli kontrolowane rozgłaszanie pakietów. Gdy jeden węzeł nadaje wiadomość, ta rozsyłana jest do wszystkich urządzeń znajdujących się w zasięgu, które dalej przesyłają ją do kolejnych modułów znajdujących się w ich zasięgu. Jest to rozwiązanie, które moglibyśmy nazwać nieco „siłowym”, ale sprawia, że nadawca i odbiorca wiadomości nie muszą być w zasięgu tej samej sieci radiowej. Zaletą takiego podejścia jest oczywiście odporność i prostota. Jeżeli jeden węzeł zniknie z sieci, wyłączy się lub oddali, inne urządzenia nadal będą przekazywać wiadomości. Nie trzeba wcześniej budować stałej infrastruktury ani planować konkretnych tras komunikacji. Sieć może powstać spontanicznie i poruszać się razem z użytkownikami.

Prostota ma jednak swoją cenę. Ponieważ wiele urządzeń retransmituje pakiety, to wraz ze wzrostem liczby użytkowników obciążenie sieci będzie coraz większe. Jeżeli ktoś ustawi zbyt częste wysyłanie pozycji GPS lub wysyłać będzie dane tekstowe bez żadnego opóźnienia, pozostałe urządzenia będą zmuszone do przekazywania tych danych dalej i dalej. W małej, zamkniętej sieci byłoby to akceptowalne, ale w dużych systemach skończy się przeciążeniem kanału radiowego. Pewnym kompromisem jest tutaj ograniczenie liczby przeskoków wiadomości między urządzeniami, domyślnie będzie to od trzech do siedmiu przekazań. Ma to sens, ponieważ zapobiega niekontrolowanemu przeciążeniu sieci, ale z drugiej strony może też sprawić, że dane nie dotrą do adresata. 

W MeshCore działa to nieco inaczej. Zamiast zakładać, że każde urządzenie będzie przekazywać pakiety innych użytkowników, sieć ta wprowadza bardziej uporządkowaną strukturę, gdzie sprzęt pełni z góry określoną rolę. Tutaj zwykły węzeł użytkownika, przykładowo małe urządzenie noszone przy sobie, połączone z telefonem, nie musi obsługiwać ruchu całej sieci. Jego zadaniem jest tylko i wyłącznie nadawanie i odbieranie własnych danych. Za przekazywanie pakietów odpowiadają specjalnie wyznaczone i działające na stałe repeatery, umieszczone, tak aby swym zasięgiem pokryć, jak największy obszar.

Dodatkowo MeshCore wykorzystuje trasowanie źródłowe, czyli source routing. Zamiast rozgłaszać pakiet do wszystkich możliwych węzłów, sieć najpierw wysyła pakiet adresowy, dzięki którym wybierana jest najbardziej optymalna ścieżkę, którą dopiero w kolejnym kroku zostaną przesłane dane użytkownika. W teorii pozwala to zmniejszyć liczbę niepotrzebnych transmisji i ograniczyć zajętość kanału radiowego, choć trzeba pamiętać, że rozgłaszanie pakietów adresowych przypomina nieco podejście stosowane w Meshtastic. Tutaj również zastosowano ograniczoną liczbę przeskoków danych między węzłami, która maksymalnie może osiągną liczbę 64. MeshCore to sieć projektowany raczej z myślą o większych, bardziej rozległych systemach, ma to swoje zalety, ale zbliża się też niebezpiecznie do znanych już rozwiązań, gdzie wyłączenie kilku konkretnych stacji bazowych może sporo namieszać. 

Przedstawienie bohaterów 

Niezależnie, który typ komunikacji wybierzemy, potrzebny jest odpowiedni sprzęt. W moich eksperymentach wykorzystałem dwie płytki XIAO od Seeed Studio, ale nie są to identyczne moduły. Widoczny na pierwszym planie moduł z pojedynczą anteną to nRF52840, natomiast nieco dalej umieszczone zostało XIAO ESP32-S3. Obie płytki dotarły do mnie wraz z radiowym rozszerzeniem Wio-SX1262 obsługującym komunikację LoRa i LoRaWAN oraz preinstalowanym oprogramowaniem Meshtastic. W związku z tym to właśnie ten rodzaj komunikacji postaram się uruchomić, jest to prostsze rozwiązanie, ale w moich warunkach wskazane, o czym wspomnę jeszcze później. Płytki użyte podczas testów:

IMG_5408.thumb.JPG.414c15699f2754b4784d1b386ec579e7.JPG

Moduły Seeed Studio XIAO.

Obie płytki są w pełni funkcjonalnymi mikrokontrolerami, dlatego zainstalowane już oprogramowanie i dodatkowy moduł nie wpływają znacząco na ich wykorzystanie. Spokojnie można je programować z poziomu przykładowo Arduino IDE. Co więcej, jeśli ktoś chciałby wrócić do funkcjonalności związanej z Meshtastic, wystarczy ręcznie zaprogramować mikrokontroler, oprogramowaniem, które bardzo łatwo znaleźć w internecie (https://flasher.meshtastic.org). O czym warto jednak wspomnieć, to montaż modułów radiowych na płytkach nie jest taki sam. Jak widać na fotografii, nRF52840 połączony jest z modułem za pomocą goldpinów, natomiast przy ESP32 całość bazuje na dedykowanym miniaturowym złączu pod laminatem Wio-SX1262. Sprawia to, że rozwiązania te nie są kompatybilne i nie ma opcji przekładania modułów LoRa. 

Test biurkowy 

IMG_5402.thumb.JPG.4d2f85ebfcadcc3d802a6452d73dd5d8.JPG

Pierwsze uruchomienie.

Tak jak wspomniałem, moduły posiadają fabrycznie zainstalowane oprogramowanie do komunikacji w sieci Meshtastic, dlatego do ich uruchomienia nie potrzeba w zasadzie nic, choć nie obędzie się oczywiście bez odpowiedniego zasilania, jakim może być port USB komputera. W moich testach postanowiłem zasymulować prostą sytuację, czyli połączyć jeden telefon z modułem nRF52840, natomiast drugi z ESP32 i spróbować przesyłać wiadomości tekstowe poprzez system Meshtastic. Do tego celu potrzebna jest też odpowiednia aplikacja mobilna, tutaj opcji jest wiele, bo zarówno w AppStore, jak i sklepie Google znajdziemy różne opcje do komunikacji typu mesh. Ja wybrałem pierwszy pokazujący się na liście wyszukiwania wariant, czyli aplikację po prostu nazwaną jako Meshtastic.

IMG_5400.thumb.PNG.e068854493f4e0cf94824f093ac6ff69.PNG

Bazowy widok po uruchomieniu aplikacji Meshtastic.

Po podłączeniu modułu do zasilania i uruchomieniu aplikacji na telefonie, naszym oczom powinien ukazać się podobny widok. Smartfon dzięki interfejsowi Bluetooth wykrył zasilany moduł LoRa, z którym teraz można się połączyć. Po kliknięciu „Dostępne radia” zostaniemy poproszeni o wpisanie hasła, domyślnie dla modułów XIAO jest to ciąg cyfr „123456”, po połączeniu należy wybrać jeszcze region, w jakim uruchamiamy nasz moduł, na dostępnej liście znajduje się kilkanaście państw, natomiast Europa podzielona jest na dwie strefy o częstotliwości 433MHz i 868MHz, wybieramy tą drugą opcję. 

IMG_5401.thumb.PNG.e815b3616fe0da92bdca76287996f50f.PNG

Połączony moduł widoczny w aplikacji. 

Po wstępnej konfiguracji płytka XIAO zresetuje się automatycznie i po chwili w aplikacji widoczna będzie jako połączona. Od tego momentu telefon połączony jest z konkretnym modułem i gdy będziemy chcieli nadawać wiadomości, to właśnie do niego będą one przekazywane i rozsyłane do kolejnych węzłów. Dla drugiego modułu i drugiego telefonu wykonałem dokładnie te same kroki. 

IMG_5403.thumb.PNG.daf3c0c989dd510db2e8a0239a06849d.PNG

Komunikacja między dwoma telefonami z użyciem Meshtastic. 

W ten oto sposób zbudować można niewielką, bo opartą tylko na dwóch węzłach sieć typu Meshtastic. Od teraz w sekcji wiadomości można bez problemu wysyłać dowolne ciągi tekstowe. Te oczywiście można konfigurować i przesyłać do konkretnych urządzeń, bądź też po prostu wysyłać w sieć. 

Testy terenowe 

Jako że test biurkowy przebiegł jak najbardziej pomyślnie, i dzięki sieci Meshtastic możliwe było przesyłanie wiadomości między dwoma telefonami, postanowiłem wykonać też krótki test zasięgu. Jak wiadomo, radiowe LoRa opisywane jest jako komunikacja na dalekie odległości, a przynajmniej znacznie dalsze niż znane powszechnie WIFI czy też Bluetooth.

IMG_5406.thumb.JPG.df4049744a0ae383b79cf08cab15f4bd.JPG

Jeden z modułów Xiao umieszczony w samochodzie. 

W teorii moduły Wio-SX1262 powinny komunikować się do 5 km na otwartym terenie. W moim teście terenowym postanowiłem jeden z modułów zostawić w domu, natomiast drugi zabrać do auta wraz z zasilającym go powerbankiem. Z wnętrza samochodu wysyłałem kolejne wiadomości, oddalając się mniej więcej w linii prostej od mojego miejsca zamieszkania. Te docierały do zostawionego w domu modułu mniej więcej do odległości 2 km, co wydaje mi się i tak w miarę dobrym wynikiem, który można by znacznie poprawić, umieszczając moduł gdzieś wyżej i na wolnej przestrzeni. 

Kilka słów na koniec

Jak widać, uruchomienie własnej sieci Meshtastic nie należy do najtrudniejszych zadań, a dzięki niej zyskujemy własne medium komunikacyjne, względnie niezależne od czynników zewnętrznych. Może być to całkiem ciekawa opcja wymiany informacji przykładowo w mobilnych grupach górskich, czy też wewnątrz uczelni, gdzie zbudowanie tego typu sieci nie będzie niczym trudnym. 

Zrzutekranu2026-06-07o18_19_56PM.thumb.png.ed6782fd29b17a502d82382d77cf2e2f.png

Dostępne węzły Meshtastic w okolicy Torunia.

Niestety komunikacja na większe odległości, jeśli sami nie zbudujemy własnej sieci, może być dość trudna. Wynika to z faktu, że ilość działających węzłów Meshtastic nie jest zbyt duża. Na zrzucie ekranu możecie zobaczyć moją okolicę, na północ od Torunia, gdzie nie ma żadnych węzłów tego systemu. Jedyne działające są właśnie w Toruniu i innych większych miastach, tam uruchomienie Meshtastic we większej skali będzie zdecydowanie prostsze. Nieco lepiej wygląda tutaj pokrycie dla sieci MeshCore, ale tak jak wspominałem ta bazuje właśnie na statycznych przekaźnikach, co mimo wszystko kłóci się nieco z ideą w pełni niezależnej sieci komunikacyjnej. 

Jednak co by nie mówić, jest to niezwykle ciekawa technologia, która ciągle się rozwija, dzięki zaangażowaniu jej własnych użytkowników. Sam w najbliższym czasie planuje uruchomienie zewnętrznej „stacji” zarówno dla MeshCore, jak i Meshtastic, które będą pełnić po prostu rolę potencjalnego przekaźnika dla wiadomości innych entuzjastów. Do tego też was zachęcam, jeśli macie opcję zbudowania niewielkiego modułu umieszczonego na elewacji budynku, czy też balkonie i zasilanego energią słoneczną w ten sposób przyczynicie się do rozbudowy całkowicie niezależnego systemu komunikacji. 

Cytat
  • Lubię! 2

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...