Je vais te montrer quelque chose qui va changer ta façon de penser au routeur WiFi posé dans ton salon. Ce n'est pas juste une porte d'entrée vers internet. C'est un système radar qui peut te voir respirer.
Pas de la science-fiction. De la physique. Et tu peux en construire un toi-même ce week-end.
Attends, Quoi ? Mon Routeur Peut Me Voir ?
Voici ce qui se passe réellement : Le WiFi moderne (802.11ac/ax) utilise quelque chose appelé le beamforming (formation de faisceau). Ton routeur a plusieurs antennes, et au lieu de diffuser le signal dans toutes les directions de manière égale, il concentre le signal vers tes appareils. Pense à un projecteur plutôt qu'à un éclairage diffus.
Pour faire cela, ton routeur et tes appareils échangent constamment des retours sur le signal, plus précisément, quelque chose appelé BFI (Beamforming Feedback Information). Ces données décrivent exactement comment les ondes radio rebondissent dans ta pièce.
Et voici le plus intéressant : ce retour n'est pas chiffré. N'importe qui peut le capturer. Et quand toi, un grand sac d'eau qui reflète les ondes radio, tu te déplaces dans la pièce, les données BFI changent. Traverse ton salon en marchant, et les maths montrent littéralement ton mouvement.
La Science en Termes Simples
Ton corps reflète les signaux WiFi. Quand tu bouges, les réflexions changent. Ton routeur suit ces changements pour optimiser la puissance du signal. Ces données de suivi sont diffusées ouvertement. Capture-les, et tu as un capteur de mouvement qui fonctionne à travers les murs.
Les chercheurs ont utilisé ceci pour détecter les schémas respiratoires, compter les personnes dans une pièce, reconnaître les gestes, et même identifier des individus spécifiques par leur façon de marcher. Des produits commerciaux existent déjà qui transforment ton WiFi existant en un système de détection de mouvement pour toute la maison.
Les Implications pour la Vie Privée (Oui, C'est Préoccupant)
Avant d'entrer dans la partie fun du projet, abordons l'éléphant dans la pièce : c'est un problème de vie privée.
Ton réseau WiFi diffuse constamment des informations qui peuvent révéler :
- Si quelqu'un est à la maison
- Combien de personnes sont dans une pièce
- Les schémas de mouvement généraux dans ta maison
- Potentiellement, des activités spécifiques (cuisiner, dormir, faire du sport)
Quelqu'un avec le bon équipement garé devant ta maison pourrait théoriquement capturer ces données. Il n'a pas besoin d'être sur ton réseau. Il a juste besoin de recevoir les trames BFI que ton routeur diffuse.
"La même technologie qui rend ton WiFi plus rapide rend aussi ta maison transparente pour quiconque sait comment regarder."
Ce n'est pas hypothétique. Des articles de recherche l'ont démontré. La seule raison pour laquelle ce n'est pas plus largement exploité, c'est que la plupart des gens ne savent pas que c'est possible. Ça... c'est pas terrible comme sécurité.
Pourquoi Construire Ça Soi-même ?
Alors pourquoi je te montre comment faire ? Quelques raisons :
1. Comprendre le modèle de menace. Tu ne peux pas te protéger contre quelque chose que tu ne comprends pas. Voir ça fonctionner de tes propres yeux le rend réel d'une manière que la lecture ne permet pas.
2. Les usages légitimes sont vraiment cool. Détection de mouvement pour maison intelligente sans caméras. Capteurs de présence pour l'automatisation. Détection de chutes pour les proches âgés. Économies d'énergie en sachant quelles pièces sont occupées. Tout ça sans installer des capteurs partout.
3. C'est véritablement fascinant. Tu transformes des ondes radio en une visualisation de l'espace physique. C'est du cyberpunk pur et dur.
Ce que nous construisons est de l'expérimentation éthique, uniquement sur ton propre réseau. Tu surveilles ton propre WiFi, dans ta propre maison, pour comprendre la technologie que tu utilises déjà. Ce n'est pas juste légal, c'est intelligent.
Deux Chemins : Choisis Ton Aventure
Je vais te donner deux options selon ton niveau de confort et le matériel que tu as sous la main.
Chemin A : L'Expérience Complète (Linux + Wi-BFI)
- Temps : 30-60 minutes
- Difficulté : Moyenne (ligne de commande requise)
- Matériel : Machine Linux + adaptateur WiFi avec mode moniteur
- Résultat : Visualisation en direct des données BFI, voir ton mouvement en graphiques temps réel
Chemin B : Plug and Play (ESP32 + ESPectre)
- Temps : 15-30 minutes
- Difficulté : Facile (flasher web, copier-coller la config)
- Matériel : Carte ESP32-S3 ou ESP32-C6 (~10$)
- Résultat : Capteur de mouvement fonctionnel dans Home Assistant
Chemin A : L'Analyse Approfondie Wi-BFI
C'est l'approche "voir les données réelles". Tu vas capturer de vraies trames BFI de ton routeur et les visualiser en train de changer pendant que tu te déplaces. C'est la même méthode que les chercheurs utilisent dans les articles académiques.
Ce Dont Tu As Besoin
- Machine Linux — Ubuntu 22.04/24.04, ou un Raspberry Pi
- Adaptateur WiFi avec mode moniteur — La plupart des puces Intel/Broadcom/Realtek intégrées fonctionnent. Sinon, un dongle USB à 15$ comme le TP-Link AC600 ou l'Alfa AWUS036ACH fera l'affaire.
- Ton routeur WiFi existant — N'importe quel routeur 802.11ac ou 802.11ax (soit à peu près n'importe quel routeur des 5 dernières années)
Étape 1 : Installer les Outils
Ouvre un terminal et exécute :
# Install system dependencies
sudo apt update
sudo apt install tshark wireshark aircrack-ng git -y
# Install Miniconda (skip if you already have conda)
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh -b
~/miniconda3/bin/conda init
# Close and reopen terminal after thisÉtape 2 : Cloner Wi-BFI
# Get the tool
git clone https://github.com/kfoysalhaque/Wi-BFI.git
cd Wi-BFI
# Create the environment
conda env create -f wi-bfi.yml
conda activate wi-bfiÉtape 3 : Trouver les Infos de Ton Réseau
Tu dois connaître le canal et la bande passante de ton routeur. Exécute :
# See your wireless interface name
iw dev
# Or open Wireshark and scan for networksNote le nom de ton interface (généralement wlan0 ou wlp2s0), le canal (comme 36 ou 149), et la bande passante (80MHz est courant pour le 5GHz).
Étape 4 : Commencer la Capture
Ouvre deux terminaux. Dans le premier, lance la capture :
cd ~/Wi-BFI/Demo
# Replace values with your actual settings
./angle_collection.sh my_capture wlan0 36 80MHz 1Dans le second terminal, lance la visualisation en direct :
cd ~/Wi-BFI
# Replace YOUR_PHONE_MAC with your phone's MAC address
# (find it in your router's admin page or phone settings)
python main_live_plot.py AX SU 4x2 80 YOUR_PHONE_MAC my_capture 1Étape 5 : Admire la Magie
Maintenant marche dans la pièce. Regarde les graphiques. Tu vois ces angles et amplitudes qui oscillent ? C'est ton corps qui reflète les ondes WiFi. Les maths suivent littéralement ton déplacement dans l'espace.
Reste immobile, et le graphique se stabilise. Passe devant ton téléphone, et ça fait un pic. Agite les bras, et tu verras les changements correspondants. Ce sont les mêmes données qui peuvent être utilisées pour la détection de mouvement, la reconnaissance de gestes, ou... la surveillance.
Chemin B : Le Mode Facile ESP32
Tu ne veux pas t'embêter avec Linux et le mode moniteur ? Prends une carte ESP32 et aie un capteur de mouvement fonctionnel en 15 minutes.
Ce Dont Tu As Besoin
- Carte ESP32-S3 ou ESP32-C6 — Environ 8-12$ sur Amazon. L'ESP32-C6 est plus récent et fonctionne très bien.
- Câble USB-C — Pour flasher la carte
- Home Assistant — Optionnel mais recommandé pour l'expérience complète
Le Projet ESPectre
ESPectre est un projet open-source spécifiquement conçu pour transformer ton WiFi en capteur de mouvement. Il est brillant par sa simplicité.
GitHub: github.com/francescopace/espectre
Étapes de Configuration
1. Flasher la carte — Va sur le flasher web d'ESPectre (lien dans leur repo). Branche ton ESP32, clique sur flash, terminé.
2. Configurer le WiFi — La carte crée un hotspot. Connecte-toi, entre les identifiants de ton WiFi domestique.
3. Ajouter à Home Assistant — Si tu fais tourner Home Assistant, il se découvre automatiquement comme entité capteur de mouvement. Tu peux ensuite déclencher des automatisations : lumières quand un mouvement est détecté, alertes quand tu es absent, etc.
4. C'est littéralement tout. Tu as maintenant un capteur de mouvement qui fonctionne à travers les murs, ne nécessite pas de ligne de vue, et utilise ton infrastructure WiFi existante.
Utilisations Concrètes
- Présence dans toute la maison : Savoir quelles pièces sont occupées sans caméras
- Suivi du sommeil : Détecter quand quelqu'un est au lit (sans wearables)
- Sécurité : Alerte si un mouvement est détecté quand tout le monde est parti
- Automatisation : HVAC, éclairage basé sur l'occupation réelle des pièces
- Soin des aînés : Détection de chutes, surveillance de l'activité
Home Assistant : Là Où Ça Devient Vraiment Fun
C'est ici qu'on transforme un projet scientifique sympa en automatisation domestique vraiment utile. Une fois que ton capteur de mouvement WiFi communique avec Home Assistant, tu peux créer des automatisations qui nécessiteraient autrement des dizaines de capteurs PIR, des caméras, ou des systèmes commerciaux coûteux.
La beauté du sensage WiFi, c'est qu'il fonctionne à travers les murs. Un ESP32 dans ton couloir peut détecter le mouvement dans plusieurs pièces. Pas besoin de ligne de vue. Pas de zones mortes. Pas de piles à remplacer.
Automatisations Exemples (YAML à Copier-Coller)
1. Lumières quand tu entres dans une pièce :
automation:
- alias: "Living Room Motion Lights"
trigger:
- platform: state
entity_id: binary_sensor.wifi_motion_living_room
to: "on"
condition:
- condition: sun
after: sunset
action:
- service: light.turn_on
target:
entity_id: light.living_room
data:
brightness_pct: 80
transition: 22. Alertes de sécurité en mode absence :
automation:
- alias: "Motion Alert When Away"
trigger:
- platform: state
entity_id: binary_sensor.wifi_motion_main_floor
to: "on"
condition:
- condition: state
entity_id: input_boolean.away_mode
state: "on"
action:
- service: notify.mobile_app
data:
title: "Motion Detected!"
message: "Movement in the house while you're away."
data:
priority: high
ttl: 03. HVAC intelligent basé sur l'occupation des pièces :
automation:
- alias: "Office HVAC When Occupied"
trigger:
- platform: state
entity_id: binary_sensor.wifi_motion_office
to: "on"
for:
minutes: 2
action:
- service: climate.set_temperature
target:
entity_id: climate.office
data:
temperature: 72
hvac_mode: heat_cool
- alias: "Office HVAC Standby When Empty"
trigger:
- platform: state
entity_id: binary_sensor.wifi_motion_office
to: "off"
for:
minutes: 15
action:
- service: climate.set_temperature
target:
entity_id: climate.office
data:
temperature: 65
hvac_mode: auto4. Détection de l'heure du coucher (sans wearables) :
automation:
- alias: "Detect Bedtime"
trigger:
- platform: state
entity_id: binary_sensor.wifi_motion_bedroom
to: "on"
condition:
- condition: time
after: "22:00:00"
before: "02:00:00"
- condition: state
entity_id: binary_sensor.wifi_motion_living_room
state: "off"
for:
minutes: 10
action:
- service: scene.turn_on
target:
entity_id: scene.goodnight
- service: lock.lock
target:
entity_id: lock.front_door
- service: alarm_control_panel.arm_night
target:
entity_id: alarm_control_panel.home5. Alerte soin des aînés / détection de chute :
automation:
- alias: "No Motion Alert - Elder Care"
trigger:
- platform: state
entity_id: binary_sensor.wifi_motion_parents_house
to: "off"
for:
hours: 4
condition:
- condition: time
after: "08:00:00"
before: "22:00:00"
action:
- service: notify.mobile_app
data:
title: "Check on Mom"
message: "No motion detected for 4 hours during daytime."
data:
priority: highConseils Pro pour l'Intégration Home Assistant
- Capteurs multiples : Déploie 2-3 ESP32 pour couvrir toute la maison. Un par étage fonctionne bien.
- Ajuster la sensibilité : Règle le seuil de détection dans la config d'ESPectre pour éviter les faux positifs des animaux.
- Combiner avec d'autres capteurs : Utilise le mouvement WiFi comme détecteur "à gros traits", puis affine avec des capteurs de porte/fenêtre pour les détails.
- Capteurs modèles : Crée des capteurs binaires qui combinent plusieurs pièces en zones (étage, rez-de-chaussée, etc.)
- Suivi de l'historique : Utilise le composant Recorder pour enregistrer les schémas de mouvement dans le temps. Utile pour l'analyse de sécurité.
Le Cas d'Usage Ultime : Présence dans Toute la Maison
Les capteurs de mouvement traditionnels (PIR) ne détectent que la chaleur et le mouvement. Ils ne peuvent pas dire si quelqu'un est assis sans bouger. Le sensage WiFi, si. Il détecte les minuscules mouvements de la respiration, de la frappe au clavier, ou simplement d'exister dans un espace.
Cela signifie que tu peux créer des automatisations qui savent que tu es dans une pièce même quand tu travailles calmement à ton bureau. Les lumières ne s'éteignent pas parce que tu as arrêté de bouger. Le HVAC ne baisse pas parce que tu lis un livre.
C'est de la détection de présence, pas seulement de la détection de mouvement. Et tu l'as construit pour 10$.
Aller Plus Loin : Ajouter la Détection de Mouvement
Une fois que tu as des données BFI en streaming en direct (du Chemin A), tu peux ajouter une vraie détection de mouvement avec environ 10 lignes de Python. Le concept est simple : si la variance des angles dépasse un seuil, quelque chose a bougé.
import numpy as np
# Assuming you have a stream of angle data
def detect_motion(angle_buffer, threshold=0.5):
"""Returns True if motion detected in recent samples"""
if len(angle_buffer) < 10:
return False
variance = np.var(angle_buffer[-10:])
return variance > threshold
# In your main loop:
if detect_motion(recent_angles):
print("Motion detected!")
# Trigger alert, log event, whatever you wantC'est une version basique. Les articles de recherche utilisent des techniques plus sophistiquées : classificateurs de machine learning, flux d'antennes multiples, schémas temporels, pour distinguer les types de mouvement, compter les personnes, ou même reconnaître des activités spécifiques.
Ce Que Ça Signifie pour la Vie Privée
Maintenant que tu l'as vu fonctionner, parlons de ce que ça signifie :
Ton WiFi diffuse en permanence. Même quand tu ne l'utilises pas activement, ton routeur et tes appareils échangent des données BFI. N'importe qui à portée radio peut capturer ces trames.
Le chiffrement n'aide pas ici. Le BFI fait partie du handshake de la couche physique. Ça se passe avant le chiffrement. WPA3, VPN, rien de tout ça n'a d'importance pour ces données spécifiques.
La seule vraie atténuation est physique : Cages de Faraday (pas pratique), réduire la puissance de transmission (casse ton WiFi), ou accepter que le schéma d'occupation de ta maison est effectivement une information publique à portée radio.
Il ne s'agit pas de faire peur. Il s'agit de consentement éclairé. Tu utilises une technologie qui a ces propriétés. Maintenant tu le sais.
Conclusion
Tu viens d'apprendre que ton routeur WiFi est fondamentalement un système radar, tu as construit ton propre détecteur de mouvement en utilisant des ondes radio, et tu as probablement acquis une meilleure compréhension de la façon dont les signaux invisibles autour de nous transportent des informations sur notre monde physique.
La technologie est neutre. Elle peut servir à l'automatisation domestique pratique ou à une surveillance préoccupante. Ce qui compte, c'est de la comprendre, pour que tu puisses prendre des décisions éclairées sur les compromis que tu fais.
Et en prime, tu as aussi un super projet de week-end à montrer. "Ouais, j'ai transformé mon WiFi en capteur de mouvement. Pas grand-chose."
C'est plutôt fun.
Ressources
- Wi-BFI: github.com/kfoysalhaque/Wi-BFI
- ESPectre: github.com/francescopace/espectre
- Article de recherche sur le sensage WiFi : Cherche "WiFi CSI human activity recognition" sur Google Scholar pour approfondir