Sto per mostrarti qualcosa che cambierà il modo in cui pensi al router WiFi nel tuo salotto. Non è solo un gateway per internet. È un sistema radar che può vederti respirare.
Non fantascienza. Fisica. E puoi costruirne uno tu stesso questo weekend.
Aspetta, Cosa? Il Mio Router Può Vedermi?
Ecco cosa sta realmente succedendo: Il WiFi moderno (802.11ac/ax) usa qualcosa chiamato beamforming (formazione del fascio). Il tuo router ha più antenne, e invece di trasmettere il segnale in tutte le direzioni in modo uguale, lo focalizza verso i tuoi dispositivi. Pensalo come un riflettore invece di un'illuminazione diffusa.
Per fare questo, il tuo router e i tuoi dispositivi scambiano continuamente feedback sul segnale, specificamente qualcosa chiamato BFI (Beamforming Feedback Information). Questi dati descrivono esattamente come le onde radio rimbalzano nella tua stanza.
Ed ecco il bello: questo feedback non è crittografato. Chiunque può catturarlo. E quando tu, un grande sacco d'acqua che riflette le onde radio, ti muovi nella stanza, i dati BFI cambiano. Attraversa il tuo salotto camminando, e la matematica mostra letteralmente il tuo movimento.
La Scienza in Parole Semplici
Il tuo corpo riflette i segnali WiFi. Quando ti muovi, i riflessi cambiano. Il tuo router traccia questi cambiamenti per ottimizzare la potenza del segnale. Quei dati di tracciamento vengono trasmessi apertamente. Catturali, e hai un sensore di movimento che funziona attraverso i muri.
I ricercatori hanno usato questo per rilevare schemi respiratori, contare persone in una stanza, riconoscere gesti, e persino identificare individui specifici dal modo in cui camminano. Prodotti commerciali esistono già che trasformano il tuo WiFi esistente in un sistema di rilevamento del movimento per tutta la casa.
Le Implicazioni sulla Privacy (Sì, È Preoccupante)
Prima di entrare nella parte divertente del progetto, affrontiamo l'elefante nella stanza: questo è un problema di privacy.
La tua rete WiFi trasmette costantemente informazioni che possono rivelare:
- Se qualcuno è a casa
- Quante persone sono in una stanza
- Schemi di movimento generali in tutta la casa
- Potenzialmente, attività specifiche (cucinare, dormire, allenarsi)
Qualcuno con l'attrezzatura giusta parcheggiato fuori casa tua potrebbe teoricamente catturare questi dati. Non ha bisogno di essere sulla tua rete. Ha solo bisogno di ricevere i frame BFI che il tuo router sta trasmettendo.
"La stessa tecnologia che rende il tuo WiFi più veloce rende anche la tua casa trasparente a chiunque sappia come guardare."
Questo non è ipotetico. I paper di ricerca lo hanno dimostrato. L'unico motivo per cui non è sfruttato più ampiamente è che la maggior parte delle persone non sa che è possibile. Questo... non è una gran bella sicurezza.
Perché Costruirlo Tu Stesso?
Quindi perché ti sto dicendo come farlo? Alcuni motivi:
1. Capire il modello di minaccia. Non puoi proteggerti da qualcosa che non capisci. Vederlo funzionare con i tuoi occhi lo rende reale in un modo che leggerne non riesce.
2. Gli usi legittimi sono davvero fighi. Rilevamento del movimento per smart home senza telecamere. Sensori di presenza per automazione. Rilevamento cadute per parenti anziani. Risparmio energetico sapendo quali stanze sono occupate. Tutto senza installare sensori ovunque.
3. È genuinamente affascinante. Stai trasformando onde radio in una visualizzazione dello spazio fisico. È cyberpunk puro.
Quello che stiamo costruendo è sperimentazione etica, solo sulla tua rete. Stai monitorando il tuo WiFi, in casa tua, per capire la tecnologia che stai già usando. Non è solo legale, è intelligente.
Due Percorsi: Scegli la Tua Avventura
Ti darò due opzioni a seconda del tuo livello di comfort e dell'hardware che hai a disposizione.
Percorso A: L'Esperienza Completa (Linux + Wi-BFI)
- Tempo: 30-60 minuti
- Difficoltà: Media (linea di comando richiesta)
- Hardware: Macchina Linux + adattatore WiFi con monitor mode
- Risultato: Visualizzazione live dei dati BFI, vedi il tuo movimento in grafici in tempo reale
Percorso B: Plug and Play (ESP32 + ESPectre)
- Tempo: 15-30 minuti
- Difficoltà: Facile (web flasher, copia-incolla config)
- Hardware: Scheda ESP32-S3 o ESP32-C6 (~$10)
- Risultato: Sensore di movimento funzionante in Home Assistant
Percorso A: L'Analisi Approfondita Wi-BFI
Questo è l'approccio "vedi i dati reali". Catturerai frame BFI reali dal tuo router e li visualizzerai cambiare mentre ti muovi. È lo stesso metodo che i ricercatori usano nei paper accademici.
Cosa Ti Serve
- Macchina Linux — Ubuntu 22.04/24.04, o un Raspberry Pi
- Adattatore WiFi con monitor mode — La maggior parte dei chip Intel/Broadcom/Realtek integrati funziona. Se no, un dongle USB da $15 come TP-Link AC600 o Alfa AWUS036ACH farà al caso.
- Il tuo router WiFi esistente — Qualsiasi router 802.11ac o 802.11ax (praticamente qualsiasi router degli ultimi 5 anni)
Step 1: Installa gli Strumenti
Apri un terminale ed esegui:
# 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 thisStep 2: Clona 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-bfiStep 3: Trova le Info della Tua Rete
Devi conoscere il canale e la larghezza di banda del tuo router. Esegui:
# See your wireless interface name
iw dev
# Or open Wireshark and scan for networksAnnota il nome della tua interfaccia (di solito wlan0 o wlp2s0), canale (come 36 o 149) e larghezza di banda (80MHz è comune per 5GHz).
Step 4: Inizia la Cattura
Apri due terminali. Nel primo, avvia la cattura:
cd ~/Wi-BFI/Demo
# Replace values with your actual settings
./angle_collection.sh my_capture wlan0 36 80MHz 1Nel secondo terminale, avvia la visualizzazione live:
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 1Step 5: Guarda la Magia
Ora cammina per la stanza. Guarda i grafici. Vedi quegli angoli e ampiezze che oscillano? È il tuo corpo che riflette le onde WiFi. La matematica sta letteralmente tracciando il tuo movimento nello spazio.
Stai fermo, e il grafico si stabilizza. Passa davanti al telefono, e c'è un picco. Agita le braccia, e vedrai i cambiamenti corrispondenti. Sono gli stessi dati che possono essere usati per il rilevamento del movimento, il riconoscimento dei gesti, o... la sorveglianza.
Percorso B: La Modalità Facile ESP32
Non vuoi impelagarti con Linux e la modalità monitor? Prendi una scheda ESP32 e avrai un sensore di movimento funzionante in 15 minuti.
Cosa Ti Serve
- Scheda ESP32-S3 o ESP32-C6 — Circa $8-12 su Amazon. L'ESP32-C6 è più recente e funziona benissimo.
- Cavo USB-C — Per flashare la scheda
- Home Assistant — Opzionale ma consigliato per l'esperienza completa
Il Progetto ESPectre
ESPectre è un progetto open-source specificamente progettato per trasformare il tuo WiFi in un sensore di movimento. È brillante nella sua semplicità.
GitHub: github.com/francescopace/espectre
Passaggi di Configurazione
1. Flasha la scheda — Vai al web flasher di ESPectre (linkato nel loro repo). Collega il tuo ESP32, clicca flash, fatto.
2. Configura il WiFi — La scheda crea un hotspot. Collegati, inserisci le credenziali del tuo WiFi di casa.
3. Aggiungi a Home Assistant — Se stai usando Home Assistant, si scopre automaticamente come entità sensore di movimento. Puoi poi attivare automazioni: luci quando viene rilevato movimento, avvisi quando sei fuori, ecc.
4. È letteralmente tutto. Ora hai un sensore di movimento che funziona attraverso i muri, non richiede linea di vista, e usa la tua infrastruttura WiFi esistente.
Usi nel Mondo Reale
- Presenza in tutta la casa: Sapere quali stanze sono occupate senza telecamere
- Tracciamento del sonno: Rilevare quando qualcuno è a letto (senza wearable)
- Sicurezza: Avviso se viene rilevato movimento quando tutti sono fuori
- Automazione: HVAC, illuminazione basata sull'effettiva occupazione delle stanze
- Cura degli anziani: Rilevamento cadute, monitoraggio dell'attività
Home Assistant: Dove Diventa Davvero Divertente
Qui è dove trasformiamo un progetto scientifico figo in automazione domestica genuinamente utile. Una volta che il tuo sensore di movimento WiFi comunica con Home Assistant, puoi costruire automazioni che altrimenti richiederebbero dozzine di sensori PIR, telecamere, o costosi sistemi commerciali.
La bellezza del rilevamento WiFi è che funziona attraverso i muri. Un ESP32 nel corridoio può rilevare movimento in più stanze. Nessuna linea di vista richiesta. Nessuna zona morta. Nessuna batteria da sostituire.
Automazioni di Esempio (YAML da Copiare-Incollare)
1. Luci quando entri in una stanza:
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. Avvisi di sicurezza in modalità assente:
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 intelligente basato sull'occupazione delle stanze:
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. Rilevamento dell'ora di dormire (senza wearable):
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. Avviso cura anziani / rilevamento cadute:
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: highConsigli Pro per l'Integrazione con Home Assistant
- Sensori multipli: Installa 2-3 ESP32 per la copertura di tutta la casa. Uno per piano funziona bene.
- Regola la sensibilità: Regola la soglia di rilevamento nella configurazione di ESPectre per evitare falsi positivi dagli animali domestici.
- Combina con altri sensori: Usa il movimento WiFi come rilevatore "a grandi linee", poi affina con sensori porta/finestra per i dettagli.
- Sensori template: Crea sensori binari che combinano più stanze in zone (piano superiore, piano inferiore, ecc.)
- Tracciamento storico: Usa il componente Recorder per registrare schemi di movimento nel tempo. Utile per l'analisi di sicurezza.
Il Caso d'Uso Vincente: Presenza in Tutta la Casa
I sensori di movimento tradizionali (PIR) rilevano solo calore e movimento. Non possono dire se qualcuno sta seduto fermo. Il rilevamento WiFi sì. Rileva i piccoli movimenti della respirazione, della digitazione, o del semplice esistere in uno spazio.
Questo significa che puoi costruire automazioni che sanno che sei in una stanza anche quando lavori tranquillamente alla scrivania. Le luci non si spengono perché hai smesso di muoverti. L'HVAC non si abbassa perché stai leggendo un libro.
Questa è rilevazione di presenza, non solo rilevazione di movimento. E l'hai costruita per $10.
Andare Oltre: Aggiungere il Rilevamento del Movimento
Una volta che hai dati BFI live in streaming (dal Percorso A), puoi aggiungere il vero rilevamento del movimento con circa 10 righe di Python. Il concetto è semplice: se la varianza degli angoli supera una soglia, qualcosa si è mosso.
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 wantQuesta è una versione base. I paper di ricerca usano tecniche più sofisticate: classificatori di machine learning, stream multi-antenna, pattern temporali, per distinguere tra tipi di movimento, contare persone, o persino riconoscere attività specifiche.
Cosa Significa Questo per la Privacy
Ora che l'hai visto funzionare, parliamo di cosa significa:
Il tuo WiFi trasmette sempre. Anche quando non lo usi attivamente, il tuo router e i tuoi dispositivi scambiano dati BFI. Chiunque nel raggio radio può catturare questi frame.
La crittografia non aiuta qui. Il BFI fa parte dell'handshake del livello fisico. Avviene prima della crittografia. WPA3, VPN, niente di questo conta per questi dati specifici.
L'unica vera mitigazione è fisica: Gabbie di Faraday (poco pratico), ridurre la potenza di trasmissione (rovina il WiFi), o accettare che lo schema di occupazione della tua casa è effettivamente un'informazione pubblica nel raggio radio.
Non si tratta di fare allarmismo. Si tratta di consenso informato. Stai usando una tecnologia che ha queste proprietà. Ora lo sai.
Conclusione
Hai appena imparato che il tuo router WiFi è fondamentalmente un sistema radar, hai costruito il tuo rilevatore di movimento usando onde radio, e speriamo hai acquisito una migliore comprensione di come i segnali invisibili intorno a noi trasportano informazioni sul nostro mondo fisico.
La tecnologia è neutrale. Può essere usata per automazione domestica comoda o sorveglianza preoccupante. Quello che conta è capirla, così puoi prendere decisioni informate sui compromessi che stai facendo.
E poi, hai anche un progetto weekend figo da mostrare. "Sì, ho trasformato il mio WiFi in un sensore di movimento. Niente di che."
È piuttosto divertente.
Risorse
- Wi-BFI: github.com/kfoysalhaque/Wi-BFI
- ESPectre: github.com/francescopace/espectre
- Paper di ricerca sul rilevamento WiFi: Cerca "WiFi CSI human activity recognition" su Google Scholar per approfondire