|
Rozdział 2: Sieć, Dostęp Mobilny i WebUI
Część 1: Przyjazna Encyklopedia (Dla Każdego)
Podgląd telemetrii, wideo oraz zmiana parametrów odbywa się przez stronę WWW uruchamianą na telefonie lub tablecie połączonym z siecią Wi-Fi pojazdu.
📶 1. Konfiguracja Wi-Fi Access Point (AP)
Po włączeniu pojazdu, Raspberry Pi 5 tworzy własną sieć bezprzewodową:
- SSID (Nazwa sieci):
RCSIM_MCS_AP - Hasło:
rcsim1234(WPA2-PSK) - Adres IP Pojazdu:
192.168.4.1(to adres bramy sieciowej).
📱 2. Obsługa WebUI
- Połącz smartfon z siecią
RCSIM_MCS_AP. - Otwórz przeglądarkę internetową i wejdź na adres
http://192.168.4.1:8000(lub port domyślny 80 w zależności od wdrożenia). - 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.
- Tuning: Zmiana parametrów regulatorów PID/ADRC w czasie rzeczywistym.
Część 2: Inżynieryjny Deep Dive (Dla Specjalistów)
Stos sieciowy i warstwa serwera WebUI na Raspberry Pi 5 są wdrażane jako usługi systemd lub kontenery Docker.
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 + WebSockets)
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). - WebSockets (
/ws/telemetry): Strumieniuje dane telemetryczne (częstotliwość 25 Hz) do interfejsu mobilnego w formacie JSON:{"speed": 1.25, "battery_v": 7.42, "state": "ARMED", "yaw": 145.2, "yaw_rate": 0.05} - WebSockets (
/ws/control): Przesyła komendy sterowania w czasie rzeczywistym, jeśli operator korzysta z wirtualnego joysticka na ekranie telefonu.