WiFi TCP bridge instellen
Deze handleiding is voor een repeater waarop de _bridge_tcp firmware is geflasht. De bridge verbindt twee of meer LoRa-netwerken via een centrale TCP server.
Wat je nodig hebt
- Een ESP32 repeater met WiFi en
_bridge_tcpfirmware. - De USB poort van de repeater, bijvoorbeeld
/dev/ttyACM0. meshcliop je computer.- Een TCP bridge server die bereikbaar is vanaf de repeater.
1. Start de TCP bridge server
Start de server op een machine die bereikbaar is vanaf de bridge-repeaters. Dat kan een VPS, Raspberry Pi of lokale computer zijn.
python3 tools/tcp_bridge_server.py --port 4200Voor testen en monitoren kun je de server starten met statusregels en heartbeat-timeout:
python3 tools/tcp_bridge_server.py --port 4200 --status-interval 10 --client-timeout 90 --log-packetsDe TCP bridge firmware stuurt elke 30 seconden een heartbeat naar de server. De server gebruikt normale pakketten en heartbeats om de idle timer van de client bij te werken. Als een node stroom verliest en er geen heartbeat meer binnenkomt voor --client-timeout, verbreekt de server die oude verbinding.
Gebruik bij lokaal testen het LAN-IP van deze machine als bridge.server. Gebruik bij internetgebruik een publiek IP-adres of domeinnaam.
2. Verbind met de repeater
Een TCP bridge build is een repeater, geen serial companion. Gebruik daarom -r:
meshcli -s /dev/ttyACM0 -rAls je deze fout ziet:
No response from meshcore node, disconnecting
Are you sure your node is a serial companion ?
To connect to a repeater, use -r option.dan miste je -r. Start opnieuw met:
meshcli -s /dev/ttyACM0 -r3. Stel WiFi en TCP bridge in
Voer deze commando's in via meshcli:
set bridge.enabled off
set wifi.ssid MijnWiFiNaam
set wifi.password MijnWiFiWachtwoord
set bridge.server 192.168.1.123
set bridge.port 4200Gebruik in plaats van 192.168.1.123 het IP-adres of de hostname van jouw TCP bridge server.
Voor een server op internet:
set bridge.server mijnserver.example.com4. Herstart na WiFi-wijzigingen
Na set wifi.ssid en set wifi.password moet de repeater opnieuw starten voordat de WiFi-instellingen actief worden.
rebootVerbind daarna opnieuw:
meshcli -s /dev/ttyACM0 -rZet daarna de bridge aan:
set bridge.enabled on5. Controleer de instellingen
get bridge.type
get wifi.ssid
get bridge.server
get bridge.port
get bridge.enabledVerwachte bridge type:
> tcpget wifi.password toont niet het echte wachtwoord, maar ***.
6. Meerdere repeaters koppelen
Flash op beide locaties een repeater met _bridge_tcp firmware en configureer ze allebei naar dezelfde TCP server en poort:
set bridge.server mijnserver.example.com
set bridge.port 4200
set bridge.enabled onPakketten die de ene repeater via LoRa ontvangt, gaan via TCP naar de server en worden door de andere repeater weer in zijn lokale LoRa-netwerk gezet.
Problemen oplossen
Permission denied op /dev/ttyACM0
Voeg je gebruiker toe aan de dialout groep:
sudo usermod -aG dialout $USERLog daarna uit en opnieuw in.
Verkeerde seriele poort
Controleer welke poort verschijnt nadat je de repeater aansluit:
ls /dev/ttyACM*
ls /dev/ttyUSB*Gebruik daarna de juiste poort met meshcli -s <poort> -r.
Bridge komt niet online
Controleer:
- Als de CLI traag of rommelig wordt tijdens configureren, voer
set bridge.enabled offuit, reboot, en stel daarna eerst WiFi en server in voordat je de bridge weer aanzet. - De repeater is herstart na het instellen van WiFi.
get bridge.enabledstaat opon.get bridge.serverenget bridge.portkloppen.- De TCP bridge server draait.
- De server is bereikbaar vanaf hetzelfde WiFi-netwerk of via internet.
- Een firewall laat TCP poort
4200door.
Server blijft een node tonen nadat de stroom eraf is
Gebruik de heartbeat-timeout:
python3 tools/tcp_bridge_server.py --port 4200 --status-interval 10 --client-timeout 90De statusregel toont idle, hb_age en hb. Als idle groter wordt dan --client-timeout, verbreekt de server de oude TCP sessie.
Voor lokaal testen met maximaal een node per IP kun je ook dit gebruiken:
python3 tools/tcp_bridge_server.py --port 4200 --replace-same-ipGebruik --replace-same-ip niet als meerdere bridge nodes vanaf hetzelfde publieke IP of achter dezelfde NAT kunnen verbinden.
TCP bridge is niet versleuteld
De huidige TCP bridge verstuurt verkeer zonder TLS. Gebruik dit op een vertrouwd netwerk of beperk toegang tot de server met firewallregels.