ESP32 CSI WiFi sensing osserva come una stanza modifica i pacchetti WiFi tra trasmettitore e ricevitore. Questa Channel State Information, o CSI, permette di usare il WiFi come segnale di percezione dello spazio, non solo come connessione di rete.
Movimento, respirazione ravvicinata, mobili, pareti e riflessi cambiano ampiezza e caratteristiche legate alla fase. Le schede ESP32 sono utili perché costano poco, sono diffuse e hanno risorse aperte come Espressif ESP-CSI ed ESP32 CSI Tool.
Cosa misura ESP32 CSI
CSI descrive il canale radio tra sorgente e ricevitore a livello di sottoportanti. In un esperimento ESP32, il ricevitore registra valori complessi che mostrano come il segnale OFDM è cambiato prima di arrivare. Una persona che attraversa il collegamento o respira vicino al percorso può alterare il multipath.
È diverso dal RSSI. RSSI è un numero di potenza ricevuta; CSI conserva struttura in frequenza, ampiezza, comportamento legato alla fase, contesto del pacchetto e timing. Per questo compare in posizionamento indoor, riconoscimento attività, presenza e ricerca senza videocamera.
- Usa CSI quando servono dettagli del canale, non solo intensità.
- Stanza, antenne, frequenza dei pacchetti e baseline cambiano il risultato.
- Salute, cadute e sicurezza restano sperimentali senza validazione indipendente.
Scegliere il percorso hardware
Il percorso più semplice usa un ESP32 e il router. È rapido, ma dipende da posizione del router e traffico. Due schede danno più controllo su trasmettitore e ricevitore. Nodi multipli o sincronizzati sono più vicini alla ricerca, ma richiedono più calibrazione.
Per RuView conta la ripetibilità. Per imparare basta ESP32-S3 e router. Per creare un dataset, confronta più posizioni. Per posa, respirazione o più persone, servono pacchetti controllati, etichette affidabili e valutazione prudente.
| Setup | Uso ideale | Compromesso |
|---|---|---|
| Un ESP32 + router | Prototipo rapido di presenza | Dipende da router e traffico |
| Due schede ESP32 | Esperimento controllato | Firmware su entrambi |
| Nodi sincronizzati | Localizzazione e dataset migliori | Maggiore complessità |
ESP32-S3 supporta WiFi CSI?
ESP32-S3 può fornire Channel State Information con ESP-IDF, modalità WiFi e callback CSI compatibili. Verifica chip, framework, esempio e ricezione.
Parti da un esempio ufficiale, registra firmware e canale e verifica pacchetti stabili.
- Verificare il supporto esplicito ESP32-S3.
- Mantenere fissi canale, banda, antenna e frequenza.
- Trattare callback mancanti come problemi di cattura.
Workflow di test per RuView
Inizia registrando la stanza vuota. Posiziona il ricevitore, acquisisci una baseline e ripeti scene semplici: ingresso, uscita, attraversamento del link, seduta, porta aperta o respirazione vicino al percorso. Annota distanza, antenna, arredi, numero di persone e canale WiFi.
Poi rimuovi righe non valide, allinea i tempi, separa ampiezza e fase e confronta con la baseline. Un livello RuView dovrebbe mostrare CSI grezzo, feature filtrate, confidenza e limiti, così il segnale sperimentale non viene letto come decisione medica o di sicurezza.
- Cattura una baseline vuota per ogni sessione.
- Mantieni stabili canale e frequenza dei pacchetti.
- Etichetta azione, distanza, persone e posizione.
- Mostra i limiti accanto al risultato.
Come validare le catture ESP32-CSI-Tool prima del modello
Le ricerche su ESP32 CSI mescolano acquisizione, sensing e rilevamento. Questa guida resta concentrata sulla qualità della cattura: timestamp stabili, sottoportanti previste, canale WiFi documentato e differenze visibili tra stanza vuota, movimento e controlli negativi.
- Usa una cattura della stanza vuota come baseline.
- Esegui un controllo negativo senza persone.
- Mantieni scheda, antenna, canale e pacchetti costanti.
- Passa a RuView solo quando la traccia CSI è ripetibile.
Punti forti, limiti e RuView
ESP32 CSI funziona meglio su compiti stretti: stanza vuota o occupata, movimento o quiete, gesto ripetuto, persona su percorso noto. Diventa fragile quando l’ambiente cambia, più persone si muovono, i pacchetti sono irregolari o si promette troppo con poco hardware.
RuView deve quindi rimanere un gateway sperimentale. CSI è privato ed economico, ma il multipath richiede calibrazione e verità di riferimento. La home serve brand, demo e GitHub; questa guida risponde alla domanda pratica sul setup ESP32 CSI.
Relazione con WiFi DensePose
WiFi DensePose GitHub, ESP32 CSI e RuView demo si sovrappongono nelle ricerche, ma non sono uguali. WiFi DensePose riguarda la curiosità sulla posa senza camera. ESP32 CSI è la base di acquisizione. RuView collega demo, limiti e codice aperto.
Separare questi intenti evita conflitti con la home e offre una pagina utile a chi cerca hardware, segnale e validazione.
Checklist ESP32 CSI per test RuView ripetibili
Gli esperimenti ESP32 CSI falliscono spesso quando il contesto di cattura non è ripetibile. Prima di confrontare modelli, fissa scheda, firmware, canale Wi-Fi, posizione antenne, packet rate, stanza e protocollo di label.
Una prima sessione dovrebbe includere stanza vuota, ingresso di una persona, persona seduta, cammino lungo il link, porta che si muove senza persone e traffico normale del router.
| Configurazione | Ideale per | Compromesso |
|---|---|---|
| Un ESP32 e un router | Proof of concept rapido e test di presenza nella stanza | Posizione del router e ritmo dei pacchetti influenzano la qualità |
| Due schede ESP32 | Esperimenti controllati tra trasmettitore e ricevitore | Serve configurare il firmware su entrambi i dispositivi |
| Più nodi o clock comune | Catture di ricerca sincronizzate | Richiede più calibrazione e sincronizzazione |
| Etichette | Scenario, timestamp, prove ripetute | La validazione richiede più di uno screenshot. |
Estrarre CSI con ESP32: un test ripetibile
Per usare ESP32 CSI, verifica prima che il percorso di acquisizione sia stabile, poi pensa al modello. Fissa scheda, versione ESP-IDF, canale WiFi, larghezza di banda, posizione dell’antenna e velocità dei pacchetti. Salva i campioni grezzi con timestamp e confronta una stanza vuota, un movimento semplice e un controllo negativo.
Un singolo grafico non basta. Un test ripetibile di estrazione CSI deve mostrare callback costanti, campi delle sottoportanti valorizzati e una variazione che rimane visibile in una seconda sessione. Solo dopo aggiungi il rilevamento umano o l’interpretazione RuView.
- Registra scheda ESP32-S3 e versione ESP-IDF in ogni sessione.
- Confronta un movimento ripetibile con porta o traffico del router come controllo negativo.
- Conserva il CSI grezzo prima dei filtri per poter ricostruire ogni risultato.
Fonti e repository utili
Domande frequenti su ESP32 CSI WiFi sensing
ESP32 CSI è uguale a RSSI?
No. RSSI è forza del segnale; CSI conserva dettagli più fini del canale.
Un ESP32 può rilevare presenza?
Sì in un esperimento semplice con stanza fissa e router, ma non basta per posa, medicina o sicurezza.
Quale scheda scegliere?
ESP32-S3, C3, C5 e C6 sono opzioni comuni. Verifica la documentazione Espressif aggiornata.
Perché aiuta gli utenti RuView?
Spiega la catena sotto la demo: pacchetti, variazioni del canale, filtro e interpretazione.
Cosa devo registrare prima di usare ESP32 CSI con RuView?
Registra scheda, firmware, canale Wi-Fi, antenne, packet rate, stanza, label di scenario e baseline a stanza vuota prima di confrontare output.
Devo iniziare con ESP32-CSI-Tool o Espressif ESP-CSI?
Scegli il percorso che corrisponde alla tua scheda e al tuo modo di usare la documentazione. ESP32-CSI-Tool è utile per cattura seriale ed esperimenti rapidi, mentre Espressif ESP-CSI è più vicino alla soluzione ufficiale. In entrambi i casi valida timestamp, canale e baseline prima del modello.
ESP32-S3 supporta CSI per il WiFi sensing?
Sì, con impostazioni compatibili. Verifica framework, modalità WiFi, callback, canale e repository.
Come uso ESP32 CSI per un primo test di sensing WiFi?
Fissa scheda, firmware, canale, larghezza di banda, antenna e velocità dei pacchetti. Registra una baseline della stanza vuota, un movimento ripetibile e un controllo negativo prima di addestrare un modello o interpretare il risultato in RuView.