Skip to content

Add configurable WiFi RSSI motion detector for ESP32-C3 - #1

Closed
soyunomas wants to merge 9 commits into
mainfrom
feature/wifi-motion-rssi-c3
Closed

soyunomas wants to merge 9 commits into
mainfrom
feature/wifi-motion-rssi-c3

Conversation

@soyunomas

@soyunomas soyunomas commented Jul 19, 2026 •

Copy link
Copy Markdown
Owner

Objetivo

Añade un POC configurable de detección de movimiento mediante variaciones RSSI para ESP32-C3 SuperMini, desarrollado con ESP-IDF.

Incluye

  • Plan principal por fases con criterios de salida.
  • Plan alternativo de procesamiento matemático de señal RSSI.
  • Firmware STA con muestreo RSSI a intervalo configurable.
  • Detector desacoplado con calibración estadística, umbral adaptativo e histéresis.
  • Configuración mediante Kconfig y backend NVS versionado.
  • Salida CSV o JSON Lines y LED opcional.
  • Pruebas host deterministas y ejecución con sanitizadores.
  • CI para pruebas host y compilación con espressif/idf:v6.0.2.

Hoja de ruta basada en investigación

El plan incorpora RASID, WiRSSI, FIMD, PhaseMode, trabajos de sensing CSI con ESP32 y las implementaciones esp-csi/esp-radar de Espressif.

Decisión arquitectónica:

  • RSSI se mantiene como línea base de bajo coste y alcance limitado.
  • Se compararán MAD, desviación estándar, varianza, rango y MAD robusta sobre las mismas capturas.
  • El baseline solo se adaptará durante períodos de reposo.
  • La evaluación medirá recall, precisión, F1, falsos positivos/hora, latencia y estabilidad.
  • CSI deja de ser una opción distante y pasa a ser el siguiente hito tras caracterizar RSSI: primero un ESP32-C3 con router y después dos nodos si hace falta.

Plan alternativo de señal

PLAN_ALTERNATIVO_PROCESADO_SENAL.md propone una comparación A/B estricta contra el detector base mediante:

  • derivadas temporales y curvatura multiescala;
  • filtros Savitzky-Golay y wavelets derivadas de gaussiana;
  • operador de energía Teager-Kaiser;
  • CUSUM, EWMA y cambio de varianza;
  • entropía de permutación y patrones ordinales;
  • SSA/SVD sobre matrices de Hankel;
  • Matrix Profile y análisis de anomalías offline;
  • fusión mínima de características y portado controlado a ESP32-C3.

El detector avanzado solo se adoptará si mejora F1 al menos 0.05, reduce falsos positivos al menos 30 % a igual recall, o demuestra otra ganancia reproducible en sesiones no vistas sin exceder los recursos del ESP32-C3.

Validación ejecutada

  • GCC 14 + CMake/CTest: 6 escenarios, todos correctos.
  • AddressSanitizer + UndefinedBehaviorSanitizer: sin incidencias, local y CI.
  • Simulación determinista: 1.000 muestras de reposo sin activación y detección de perturbación dentro de 12 muestras.
  • GitHub Actions: pruebas host, sanitizadores y compilación ESP32-C3 completadas correctamente antes de los últimos cambios documentales.

Pendiente de hardware

La validación RF, el flasheo, la generación del dataset y el ajuste de sensibilidad requieren una placa ESP32-C3 SuperMini conectada y sesiones etiquetadas en la ubicación real.

@soyunomas
soyunomas marked this pull request as ready for review July 19, 2026 02:45
@soyunomas soyunomas closed this Jul 30, 2026
@soyunomas
soyunomas deleted the feature/wifi-motion-rssi-c3 branch July 30, 2026 00:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant