DOCS/Poradnik MCS
|

Rozdział 2: Sieć, Dostęp Mobilny i WebUI

Część 1: Przyjazna Encyklopedia (Dla Każdego)

Konfiguracja wejść i podgląd telemetrii odbywają się przez stronę WWW na telefonie lub tablecie połączonym z siecią Wi-Fi stacji MCS. Transmisję wideo FPV konfiguruje się osobno.

📶 1. Konfiguracja Wi-Fi Access Point (AP)

Po uruchomieniu Raspberry Pi może tworzyć własną sieć bezprzewodową. Nazwa sieci, hasło i adres IP zależą od użytego obrazu lub plików konfiguracyjnych; przykładowe konfiguracje używają 10.42.0.1 albo 192.168.4.1.

📱 2. Obsługa WebUI

  1. Połącz smartfon z siecią skonfigurowaną w obrazie MCS.
  2. Otwórz w przeglądarce adres bramy z portem 8080, na przykład http://10.42.0.1:8080.
  3. Na ekranie pojawi się responsywny interfejs:
    • Dashboard: Telemetria, poziom naładowania baterii, status uzbrojenia (ARM/DISARM).
    • Input assignments: Przypisywanie funkcji do przycisków i kalibracja osi.
    • Ustawienia: Zapis i odczyt obsługiwanych parametrów konfiguracji.

[!TIP] Pierwsze uruchomienie: Po przygotowaniu obrazu lub instalacji MCS podłącz kontroler USB i skonfigurowany bridge/RF. Najpierw sprawdź mapowanie osi, neutralne kanały oraz reakcję na odłączenie kontrolera z uniesionymi kołami lub odłączonym napędem. Dopiero potem uzbrój pojazd.


Część 2: Inżynieryjny Deep Dive (Dla Specjalistów)

Stos sieciowy i warstwa WebUI na Raspberry Pi 5 są uruchamiane jako usługi systemd.

1. Konfiguracja Warstwy Sieciowej (hostapd & dnsmasq)

Konfiguracja punktu dostępowego AP na RPi bazuje na pakietach hostapd oraz dnsmasq. Plik /etc/dnsmasq.conf:

interface=wlan0
dhcp-range=192.168.4.10,192.168.4.50,255.255.255.0,24h

Plik /etc/hostapd/hostapd.conf:

interface=wlan0
driver=nl80211
ssid=RCSIM_MCS_AP
hw_mode=g
channel=7
wpa=2
wpa_passphrase=rcsim1234
wpa_key_mgmt=WPA-PSK

2. Serwer aplikacji (FastAPI + REST)

Główny serwer WebUI jest napisany w Pythonie przy użyciu biblioteki FastAPI (uruchamiany przez serwer uvicorn).

  • REST API: Służy do odczytu i zapisu konfiguracji systemowej (/api/config, /api/wizard/detect).
  • Telemetryka: WebUI odczytuje dostępne dane przez endpointy REST. Zakres danych zależy od użytego transportu (np. CRSF lub MAVLink) i podłączonych czujników.

3. Procedura Przygotowania, Sanitizacji i Publikacji Obrazu MCS OS

Dystrybucja obrazu systemowego RCSIM_MCS_OS.img wymaga rygorystycznego procesu oczyszczania ze śladów deweloperskich i optymalizacji rozmiaru:

  1. Sanitizacja Danych Wrażliwych (clean_mcs_image.sh):
    • Przed zrzuceniem obrazu z karty SD bezwzględnie usuwane są prywatne sieci Wi-Fi i klucze uwierzytelniające z /etc/NetworkManager/system-connections/, /boot/network-config oraz /boot/wpa_supplicant.conf.
    • Hasło użytkownika pi jest zerowane w /etc/shadow, a w pliku /etc/ssh/sshd_config włączana jest opcja PermitEmptyPasswords yes, umożliwiając natychmiastowe logowanie nowym użytkownikom bez pytania o hasło.
    • Czyszczona jest historia powłoki (~/.bash_history), logi systemowe (/var/log/*) oraz plik pamięci wymiany /var/swap (zysk ok. 1.2 GB przestrzeni).
  2. Optymalizacja Rozmiaru Narzędziem PiShrink (Kluczowa Flaga -s):
    • Zrzut partycji jest redukowany do minimalnego fizycznego rozmiaru:
      pishrink.sh -s -v -n RCSIM_MCS_OS.img
      
    • Krytyczne znaczenie flagi -s (Skip Autoexpand): Standardowy skrypt PiShrink bez flagi -s wstrzykuje do /etc/rc.local procedurę rozszerzania partycji, co nadpisuje plik i niszczy inicjalizację wirtualnego interfejsu AP uap0 (odpowiedzialnego za niezawodne działanie hotspotu równolegle z łącznością Wi-Fi). Użycie -s jest bezwzględnym wymogiem stabilności MCS!
  3. Dystrybucja Obrazu przez Cloudflare R2:
    • Ze względu na limit 300 MB dla pojedynczych plików w narzędziu Cloudflare Wrangler, dystrybucja pełnego skompresowanego obrazu OS (>1.5 GB) odbywa się poprzez wieloczęściowy skrypt S3 API: python scripts/upload_mcs_image.py z bezpośrednim publicznym odnośnikiem CDN.