Establece conexión TCP/IP sobre SLIP con Raspberry Pi Pico + SX1278 usando TUN sobre capa 3, permitiendo servicios como PING, SSH, WWW, etc.
- Raspberry Pi Pico (2)
- Módulos LoRa SX1278 (433MHz) (2)
- PC o Laptop (2)
- Ser administrador del sistema.
- Sistema Operativo (Windows, Linux o MacOS)
- Driver TAP instalado previamente.
- Arduino IDE (para compilar el código a usar en las Rasbperry Pi Pico)
- LORA SS - PICO 5
- LORA RST - PICO 6
- LORA DIO0 - PICO 7
- LORA SCK - PICO 2
- LORA MISO - PICO 4
- LORA MOSI - PICO 3
- LED PIN PICO 25 (indicador)
Dependencias en Python: pip install pywin32 wmi pyserial
Windows variante manual:
- Instala: https://swupdate.openvpn.org/community/releases/tap-windows-9.24.2-I601-Win10.exe
- En PowerShell obten el GUID del adaptador usando este comando si falla el script:
Get-NetAdapter | Where-Object {$_.InterfaceDescription -Like "TAP"} | Format-List -Property Name, InterfaceDescription, InterfaceGuid - En caso de que no configure correctamente la interfaz: "Conexión de área local", renombrar a LoRaTun0.
- De igual forma si falla la configuración automática de la interfaz de red, usar:
netsh interface ip set address name="LoRaTun0" static 10.10.0.1 255.255.255.0
Windows Variante automática:
- Ejecutar desde PowerShell como administrador:
- PC principal:
sudo python3 lora_tun_multios.py --port COM# [--baud 115200] --ip 10.10.0.1 --peer 10.10.0.2 [--mtu 576] - PC auxiliar:
sudo python3 lora_tun_multios.py --port COM# [--baud 115200] --ip 10.10.0.2 --peer 10.10.0.1 [--mtu 576]
Linux: (PRUEBAS PENDIENTE)
- Ejecutar como administrador en cualquiera de estos modos:
- PC principal:
sudo python3 lora_tun_multios.py --port /dev/ttyACM# [--baud 115200] --ip 10.10.0.1 --peer 10.10.0.2 [--mtu 576] - PC auxiliar:
sudo python3 lora_tun_multios.py --port /dev/ttyACM# [--baud 115200] --ip 10.10.0.2 --peer 10.10.0.1 [--mtu 576]
MacOS:
- Ejecutar el script lora_tun_multios.py como administrador. (MacOS UTUN no es accesible de otra forma)
- PC principal:
sudo python3 lora_tun_multios.py --port /dev/tty.usbmodem# [--baud 115200] --ip 10.10.0.1 --peer 10.10.0.2 [--mtu 576] - PC auxiliar:
sudo python3 lora_tun_multios.py --port /dev/tty.usbmodem# [--baud 115200] --ip 10.10.0.2 --peer 10.10.0.1 [--mtu 576]
Leyenda: [--baud ...| --mtu ...] - opcionales
- Añadir soporte para Android e IOs.
- Intentar eliminar el requisito de permisos como administrador para una conexión Plug-and-Play.
- Optimizar implementación de SLIP/TUN para aumentar el ancho de banda.
- Probar con otros módulos para escalabilidad del código.
- Diseñar y Fabricar PCB para protección de los componentes y presentación al público.
Éste código utiliza licencia MIT