intel-ax-wifi-scan-connect-6.ino
Script Python que controla Nmcli e iw para escanear y conectarse a redes Wi-Fi a través de la interfaz de red integrada.
Hardware: Módulo Wi-Fi (tipo Intel AX210/AX211) insertado en la ranura M.2 E-Key de la BIWCL-PAT, antenas conectadas. Prerrequisitos: Ubuntu 24.04 con NetworkManager e iw-tools instalados (sudo apt install network-manager iw). Este script no requiere compilación. Primero enumera los SSIDs visibles mediante nmcli, luego se conecta a una red proporcionada como argumentos. Adecuado para la automatización de la inicialización de red en modo edge.
intel-ax-wifi-scan-connect-6.ino
#!/usr/bin/env python3
import subprocess
import sys
import time
def run_cmd(cmd):
try:
result = subprocess.run(cmd, check=True, capture_output=True, text=True)
return result.stdout
except subprocess.CalledProcessError as e:
print(f"Erreur commande {cmd}: {e.stderr}")
sys.exit(1)
def scan_networks():
print("Scan des réseaux Wi-Fi (biwcl e-key module)...\n")
# iw dev <iface> scan
# Remplacer 'wlan0' par le nom de l'interface réel (ip link show)
output = run_cmd(["iw", "dev", "wlan0", "scan"])
networks = []
current_ssid = None
for line in output.split('\n'):
if 'SSID:' in line:
current_ssid = line.split('SSID:')[1].strip()
elif 'signal:' in line and current_ssid:
# Format: signal: -50.00 dBm
# Simple parsing to avoid external libs
pass
# Alternative plus robuste pour lister les SSID visibles
print("Réseaux détectés (nom seulement) :")
run_cmd(["nmcli", "device", "wifi", "list"])
def connect_to_wifi(ssid, password):
print(f"Connexion à {ssid}...")
# Utilisation de NetworkManager CLI
cmd = ["nmcli", "device", "wifi", "connect", ssid, "password", password]
run_cmd(cmd)
time.sleep(2)
print("Statut de la connexion :")
run_cmd(["nmcli", "connection", "show", "active"])
if __name__ == "__main__":
if len(sys.argv) < 2:
scan_networks()
print("\nPour se connecter : python wifi_tool.py <SSID> <MotDePasse>")
else:
connect_to_wifi(sys.argv[1], sys.argv[2])