|

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

  1. Połącz smartfon z siecią RCSIM_MCS_AP.
  2. 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).
  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.
    • 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.