🧾 Objectif général
Ce script Python permet de gérer les connexions Wi-Fi et de créer un point d’accès (Hotspot) en ligne de commande sur un système Linux. Il s’appuie sur les outils nmcli
(de NetworkManager) et iwconfig
pour :
- Scanner les réseaux Wi-Fi disponibles
- Obtenir des informations de connexion détaillées
- Se connecter à un réseau Wi-Fi existant
- Créer et configurer un hotspot local
- Gérer les canaux Wi-Fi (bande 2.4 GHz)
🔧 Prérequis
- Distribution Linux (Debian, Ubuntu, Raspberry Pi OS, etc.)
- Interface Wi-Fi disponible (ex:
wlan0
) - Outils en ligne de commande installés :
nmcli
(NetworkManager)iwconfig
(Wireless Tools)
- Script lancé avec des droits suffisants (souvent
sudo
requis)
📚 Structure du script
🔁 run_cmd(cmd)
Exécute une commande shell, retourne la sortie standard. Affiche les erreurs sauf si ce sont des avertissements (Warning
).
📶 freq_to_channel(freq_ghz)
Convertit une fréquence Wi-Fi (en GHz) en numéro de canal :
- Utilise uniquement la bande 2.4 GHz (2412 à 2484 MHz)
- Retourne
None
pour les autres bandes (ex: 5 GHz)
📊 dbm_to_percent(dbm)
Convertit une puissance du signal (en dBm) en pourcentage :
- Linéaire entre -90 dBm (0%) et -30 dBm (100%)
🛰️ get_wifi_info(interface="wlan0")
Renvoie un dictionnaire contenant l’état de la connexion active:
- SSID (nom du réseau)
- Puissance du signal (en dBm et en %)
- Fréquence (GHz)
- Canal associé
📡 get_wifi_list()
Liste les réseaux Wi-Fi disponibles avec :
- SSID
- Qualité du signal (en %)
- Résultat trié du plus fort au plus faible
🔥 set_hotspot(ssid, password, ip=None, channel=6)
Configure le mode point d’accès Wi-Fi (hotspot) avec :
ssid
: nom du hotspot à créerpassword
: mot de passe WPA2ip
: IP locale pour le partage de connexion (ex:192.168.4.1
)channel
: canal Wi-Fi (par défaut : 6)
🌐 connect_wifi(ssid, password, ip=None)
Connexion à un réseau Wi-Fi existant :
- Crée une nouvelle connexion au réseau nommé
ssid
- Configure l’adresse IP statique si souhaité
📌 Conseils pour le choix du canal en mode Hotspot
Choisir un bon canal Wi-Fi permet de limiter les interférences avec les autres réseaux et d’améliorer la qualité de la connexion.
📈 Méthode recommandée : scanner les réseaux voisins
Utilisez get_wifi_list()
pour lister les réseaux et analyser ceux qui utilisent les canaux 1 à 14.
✅ Remarques et conseils
- Canaux recommandés : 1, 6, 11
- Ce sont les seuls canaux non chevauchants en 2.4 GHz.
- Privilégier celui qui est le moins utilisé autour de vous.
- Évitez un canal déjà saturé :
- Si
get_wifi_list()
retourne de nombreux réseaux sur le canal 6, essayez 1 ou 11.
- Si
- Canal 14 est uniquement autorisé au Japon.
- Bande 5 GHz non supportée dans ce script (ajustable).
- Supprimer les connexions précédentes (
nmcli con delete
) pour éviter les conflits. - Toujours tester les fonctions sur un réseau de test avant déploiement.
- Pour usage autonome (ex: robot, serveur portable), préférer une IP fixe pour le hotspot.
- S’assurer que
NetworkManager
gère l’interfacewlan0
.
🔐 Sécurité
- Le mot de passe Wi-Fi est transmis en clair dans la commande : évitez d’utiliser des mots de passe sensibles dans les scripts produits.
- Le hotspot est configuré en WPA2-PSK par défaut (suffisant pour usage personnel).
🚀 Avantages
- ✅ Simple à intégrer dans un projet Python autonome (robot, IoT, serveur embarqué)
- ✅ Pas besoin d’interface graphique
- ✅ Permet la configuration complète d’un hotspot en quelques lignes
🧪 Exemples d’utilisation
1. Créer un hotspot sur le canal 1
2. Se connecter à un réseau avec IP fixe
3. Se connecter à un Raspberry Pi en mode hotspot avec RealVNC
Lorsque l’on utilise un Raspberry Pi sans écran, il est pratique de pouvoir y accéder à distance via une interface graphique. Si le Raspberry Pi est configuré en mode hotspot Wi-Fi (point d’accès), il peut créer son propre réseau Wi-Fi auquel on peut se connecter avec un ordinateur à l’aide de RealVNC.
Avant de commencer, il faut :
- Avoir un Raspberry Pi configuré en mode hotspot Wi-Fi
- Avoir installé et activé le serveur VNC sur le Raspberry Pi.
- Avoir installé RealVNC Viewer sur l’ordinateur client (Windows, macOS ou Linux).
- Connaître l’adresse IP locale du Raspberry Pi sur le réseau hotspot.
Connexion au réseau Wi-Fi créé par le Raspberry Pi
Sur l’ordinateur client (PC portable, etc.) :
- Rechercher les réseaux Wi-Fi disponibles.
- Se connecter à
réseau hotspot
avec le mot de passe correspondant. - Une fois connecté, l’ordinateur est sur le même réseau local que le Raspberry Pi.
Connexion avec RealVNC Viewer
Ouvrir RealVNC Viewer sur l’ordinateur client et saisir l’adresse ip du Raspberry. Appuyez sur Entrée. Une fenêtre de connexion s’ouvre.
Entrez le nom d’utilisateur et le mot de passe du Raspberry Pi.
Cliquer sur OK.
Le bureau du Raspberry Pi doit s’afficher à l’écran.
En cas d’erreur de certificat ou de message d’avertissement, accepter simplement pour établir la connexion.