Analizator sieci widzi tylko to, co usłyszą jego obserwery. Każdy z nich to „ucho” w innym miejscu kraju: im więcej takich uszu, tym szerszy zasięg obserwacji, dokładniej odtworzone trasy pakietów i bardziej wiarygodne statystyki. Korzystają na tym wszyscy, którzy zaglądają do publicznych analizatorów – także ci, którzy nie mają własnego sprzętu.
Obserwer nie zabiera niczego węzłowi, który już działa. Repeater (węzeł przekazujący cudze pakiety) dalej robi swoje, a wysyłanie danych do brokera MQTT – serwera, który zbiera wiadomości od wielu urządzeń i przekazuje je odbiorcom – jest funkcją dodatkową. Firmware, na którym to działa, opisaliśmy w artykule „MeshCore Observer od gessaman: czym jest i co nowego w firmware”. Tutaj skupiamy się na praktyce: jak w około 10 minut podłączyć węzeł do polskiej sieci i analizatora analyzer.marwoj.net.
Czego potrzebujesz
- Płytki LoRa z Wi-Fi obsługiwanej przez MeshCore, np. Heltec V3 lub V4, Station G2, T-Beam, Xiao S3 WIO albo płytki RAK. Pełną listę pokazuje flasher.
- Komputera z przeglądarką Chrome lub Edge. Firmware wgrywa się przez Web Serial, czyli dostęp przeglądarki do portu USB. Nie działa to na telefonie ani w Safari.
- Kabla USB do transmisji danych. Kabel „tylko do ładowania” to najczęstszy powód, dla którego komputer nie widzi urządzenia.
- Sieci Wi-Fi 2,4 GHz w zasięgu węzła. Te płytki nie mają radia 5 GHz.
Krok 1: wgraj firmware obserwera
Firmware wgrywa się ze strony observer.gessaman.com. To flasher działający w przeglądarce. Instaluje wersję MeshCore, która obsługuje do sześciu brokerów MQTT jednocześnie, więc dołączenie do kolejnego analizatora nie odbiera niczego, co już masz.
- Wybierz swoją płytkę z listy po lewej, a potem rolę Repeater. Rolę Room Server wybierz tylko wtedy, gdy chcesz dodatkowo prowadzić pokój czatowy.
- Zostaw wersję na aktualnym wydaniu, czyli tym bez przyrostka
-dev. - Aktualizujesz węzeł, który już działa? Nie zaznaczaj opcji Erase device. Wtedy jego tożsamość i ustawienia zostaną.
Pełne kasowanie nadaje węzłowi nowy klucz publiczny. W analizatorach pojawi się wtedy jako zupełnie nowy obserwer, a cała jego dotychczasowa historia zostanie przy „starym” węźle.
Krok 2: radio, nazwa i Wi-Fi
W nagłówku flashera otwórz Console (port szeregowy, 115200) i wklejaj polecenia pojedynczo, linia po linii:
set radio 869.617981,62.5,8,8
set tx 22
set name PL-KRK NAZWA_WEZLA
set mqtt.iata KRK
set timezone Europe/Warsaw
set wifi.ssid NAZWA_SIECI_WIFI
set wifi.pwd HASLO_WIFI
Zamiast NAZWA_WEZLA wpisz nazwę swojego węzła, a zamiast NAZWA_SIECI_WIFI i HASLO_WIFI – dane domowej sieci. Kod KRK zmień na kod najbliższego dużego lotniska:
| Miasto | Kod | Miasto | Kod |
|---|---|---|---|
| Bydgoszcz | BZG | Radom | RDO |
| Gdańsk | GDN | Rzeszów | RZE |
| Katowice | KTW | Szczecin | SZZ |
| Kraków | KRK | Warszawa | WAW |
| Lublin | LUZ | Warszawa – Modlin | WMI |
| Łódź | LCJ | Wrocław | WRO |
| Olsztyn | SZY | Zielona Góra | IEG |
| Poznań | POZ |
To kody IATA polskich lotnisk, ale z lotnictwem nie mają tu nic wspólnego. Służą wyłącznie jako etykieta regionu w temacie MQTT, czyli w „adresie”, pod którym broker układa wiadomości. Wybierz najbliższe duże lotnisko, a nie najbliższe miasto. Jeśli w okolicy działają już inne węzły, użyj tego samego kodu co one: im mniej rozdrobnienia, tym czytelniejsze grupowanie na mapie. Brakuje Twojego regionu? Kod można dobrać, pisząc na adres podany w kroku 3.
Kilka uwag do tych ustawień:
- Parametry radia to preset EU/UK Narrow, używany w większości Polski: 869,618 MHz, pasmo 62,5 kHz, SF 8, CR 8. Śląsk ma własny preset, więc tam najpierw zapytaj lokalnych użytkowników.
set tx 22ustawia moc nadajnika na 22 dBm (ok. 160 mW), czyli maksimum Helteca V3. Dopasuj ją do lokalnej sieci. W podpaśmie 869,4–869,65 MHz w Polsce i UE wolno nadawać z mocą do 500 mW e.r.p. – liczoną razem z zyskiem anteny – przez najwyżej 10% czasu.- Prefiks
PL-KRKw nazwie to zwyczaj, nie wymóg. Ułatwia rozpoznanie węzła na mapie.
Nie pomijaj polecenia set mqtt.iata. Bez niego temat MQTT jest pusty i analizatory ignorują węzeł. To najczęstszy powód sytuacji, w której „wszystko wygląda dobrze, a mnie nigdzie nie widać”.
Krok 3: połącz węzeł z analizatorem
Ten krok wysyła ruch do analizatora analyzer.marwoj.net. Od wydania v1.17.1.4 broker mqtt.marwoj.net jest wbudowany w firmware obserwera jako preset marwoj. Nie trzeba podawać adresu, portu ani loginu i nie trzeba prosić o konto.
Najpierw sprawdź wersję poleceniem ver. Odpowiedź powinna wyglądać mniej więcej tak: v1.17.1.4-observer-c2c4cb5. Starsza wersja? Wgraj firmware ponownie (krok 1) albo skorzystaj ze starszej metody opisanej niżej.
Potem, nadal w konsoli:
set mqtt1.preset marwoj
set bridge.enabled on
set mqtt.rx on
set mqtt.packets on
set repeat on
reboot
- Niczego tu nie podmieniasz – preset zawiera dane logowania.
- Masz już obserwera podłączonego do tego brokera na indywidualnym koncie? Nic się nie zmienia, wszystko działa dalej.
- Slot ustawiony na
marwojzastępuje wbudowany cel us/eu, więc węzeł publikuje tam, gdzie go skierujesz. - Chcesz, żeby węzeł tylko słuchał i nigdy nie retransmitował? Wpisz
set repeat offzamiaston. Strona MQTT działa w obu przypadkach tak samo.
Co robią bridge.enabled i mqtt.rx
mqtt.packets on to wysyłanie danych: węzeł publikuje to, co usłyszał. mqtt.rx on razem z bridge.enabled on dokłada drogę powrotną – węzeł subskrybuje brokera i nadaje ten ruch z powrotem w lokalne LoRa. Jeśli wolisz tylko wysyłać i nie wprowadzać niczego do lokalnego eteru, wpisz set mqtt.rx off.
TLS i płytki bez PSRAM
Preset marwoj łączy się szyfrowanym MQTT po TLS na porcie 8883. Każde takie połączenie zajmuje ok. 40 KB wewnętrznej pamięci, dlatego płytki bez PSRAM (dodatkowej pamięci RAM, np. Heltec V3) utrzymują najwyżej dwa aktywne sloty TLS lub WSS, a klasyczne ESP32 T-LoRa V2.1–1.6 tylko jeden. Układ z tego poradnika (slot 1 z TLS, slot 2 bez szyfrowania) mieści się w tym limicie nawet na Heltecu V3. Sloty ponad limit get mqtt.status pokaże jako (inactive).
Starsze firmware albo indywidualne konto
Jeśli nie chcesz teraz wgrywać nowego firmware, ten sam broker działa po staremu: zwykłe MQTT na porcie 1883, bez szyfrowania, z indywidualnym loginem. Konto zakłada ręcznie administrator brokera – wystarczy napisać na adres [email protected], podając nazwę węzła, miasto lub kod IATA i model płytki. Login i hasło przychodzą zwykle tego samego dnia.
set mqtt1.preset custom
set mqtt1.server mqtt.marwoj.net
set mqtt1.port 1883
set mqtt1.username LOGIN
set mqtt1.password HASLO
set bridge.enabled on
set mqtt.rx on
set mqtt.packets on
set repeat on
reboot
Węzły, które już działają w tej konfiguracji, nie wymagają żadnych zmian.
Krok 4: drugi broker (opcjonalnie)
Sześć slotów MQTT oznacza, że jeden analizator nie musi być jedynym odbiorcą danych. Slot 2 można skierować na brokera polskiej społeczności, z którego korzysta mapa mcmap.cheaterenator.trade:
set mqtt2.preset custom
set mqtt2.server 185.238.72.131
set mqtt2.port 41986
set mqtt2.username loramc2
set mqtt2.password LorA-82049
reboot
Adres, port i dane logowania tego brokera podaje strona z instrukcją.
- Wszystkie sloty korzystają z tego samego
mqtt.iata, więc oba brokery dostaną dane w temaciemeshcore/KRK/<klucz>/…. Jeśli któryś oczekuje innego tematu, ustawisz go poleceniemset mqtt2.topic <szablon>. - Slot 2 to zwykłe MQTT bez TLS, więc nie zużywa limitu połączeń szyfrowanych na płytkach bez PSRAM.
- Sloty 3–6 ustawia się tak samo:
mqtt3.*,mqtt4.*i dalej.
Krok 5: sprawdź, czy działa
Odczekaj 30–60 sekund po restarcie i wpisz w konsoli:
get wifi.status
get mqtt.status
get mqtt1.diag
get mqtt.iata
wifi.statuspowinno pokazać adres IP i siłę sygnału (RSSI).mqtt.statuspowinno pokazać slot 1 jako połączony, przy presecie:marwoj (ok).- Jeśli slot nie chce się połączyć,
mqttN.diagpoda powód: synchronizację czasu, TLS albo gniazdo sieciowe. mqtt.iatanie może być puste.
Potem znajdź swój węzeł na liście obserwerów. Pierwsze pakiety mogą pojawić się dopiero po kilku minutach. Jeśli po 10 minutach nadal nic nie widać, przyczyną jest prawie zawsze brak mqtt.iata albo sieć Wi-Fi działająca tylko w paśmie 5 GHz. W razie kłopotów pomoże administrator brokera pod adresem z kroku 3.
Co widać w analizatorze
Analizator analyzer.marwoj.net pokazuje pakiety, mapę, podgląd na żywo, kanały i statystyki. Mapa mcmap.cheaterenator.trade korzysta z danych drugiego brokera. Oba serwisy są otwarte dla wszystkich, bez konta i bez własnego sprzętu. Obserwer nie jest więc biletem wstępu, tylko sposobem, żeby obraz sieci był ostrzejszy dla wszystkich.
Na mapie sieci sprawdzisz też, czy w okolicy działa repeater i gdzie naprawdę go słychać, a lista obserwerów pokazuje, które węzły zasilają analizator w danej chwili.
Co dzieje się z wysłanymi danymi? Stają się publiczne na stronach analizatorów: metadane pakietów (siła sygnału SNR, liczba przeskoków, ścieżka, czas) oraz treści, które i tak są jawne w eterze, czyli ogłoszenia węzłów (adverty) i wiadomości na kanałach o powszechnie znanym kluczu. Wszystko, co zaszyfrowano kluczem, którego analizator nie zna, pozostaje nieczytelne.
Masz już obserwera dla innego analizatora? Wystarczy krok 3. Firmware gessamana utrzymuje do sześciu brokerów naraz, więc ustaw marwoj w pierwszym wolnym slocie, a resztę zostaw bez zmian.
Dla operatorów innych analizatorów
Kto prowadzi własną instancję CoreScope albo inny program korzystający z MQTT, może zrobić lustrzaną kopię tego brokera bez pytania o zgodę. Służy do tego wspólne konto tylko do odczytu: może subskrybować, ale nie publikować. Broker mqtt.marwoj.net przyjmuje połączenia na porcie 1883 (bez szyfrowania) i 8883 (TLS), a tematy to meshcore/#. Login i hasło tego konta są na stronie z instrukcją.
- W CoreScope dane trafiają do sekcji
mqttSourcesw plikuconfig.json. DodajconnectTimeoutSec: 45, bo domyślny czas oczekiwania bywa za krótki. - Nadaj klientowi unikalny identyfikator MQTT (client ID). Konto jest wspólne, a dwóch klientów z tym samym ID rozłącza się nawzajem w nieskończonej pętli.
- Nie używaj tu konta publikującego z kroku 3 – ma prawo zapisu, którego odbiorca danych nigdy nie potrzebuje.
Broker przekazuje około 350 tys. pakietów dziennie od blisko 100 obserwerów, już po usunięciu duplikatów między źródłami.
Aktualna wersja instrukcji, z danymi brokerów, jest tutaj:
