Saltar al contenido
← proyectosdata

room-occupancy-co2

Un sensor de CO₂. Detectar si hay gente sin cámara, sin micrófono, sin nada más.

1sensor de CO₂Viterbialgoritmo HMM1 minresolución temporal

El problema

Las soluciones de detección de ocupación de sala que realmente funcionan (cámaras, sensores PIR, contadores de personas) cuestan cientos de euros por sala y generan datos sensibles. ¿Cuánto se puede hacer con un único sensor de CO₂ de 20€? Esa pregunta tiene un límite físico: el CO₂ mide concentración de gas, no personas. El reto es saber exactamente dónde está ese límite y sacar todo lo posible de él.

Los datos

Dataset de una sala de reuniones real con sensor de CO₂, temperatura y humedad a resolución de 1 minuto. Etiquetas de ocupación (0/1) recogidas de forma independiente de la señal de CO₂. El dataset cubre distintos patrones de uso: reuniones cortas, sesiones largas, ventilación esporádica.

Enfoque

  • Reformulación como problema de estado latente: la ocupación no se observa directamente, el CO₂ es un proxy ruidoso con inercia — eso es un HMM, no una clasificación directa
  • Algoritmo de Viterbi sobre el HMM: encuentra la secuencia de estados (ocupado/libre) más probable dada la secuencia de observaciones de CO₂
  • Modelado explícito de la inercia: el CO₂ tarda entre 5 y 15 minutos en reflejar un cambio de ocupación — el modelo lo sabe y no reacciona a cada pico
  • Histéresis en los umbrales de transición para evitar estados oscilantes por ruido del sensor
  • Comparativa con clasificación directa por umbral: el HMM gana en transiciones, pierde en velocidad de reacción — ambas opciones están documentadas

Herramientas

python
jupyter
viterbi
switchbot

Resultado

Detección de ocupación binaria fiable con un único sensor de bajo coste. El resultado más valioso no es la accuracy: es el análisis explícito del límite físico. Intentar predecir cuántas personas hay con un sensor de CO₂ es un error de planteamiento — el gas no lleva esa información. El proyecto lo demuestra con datos.

Próximos pasos

La extensión directa es añadir un segundo sensor (temperatura o VOC) para mejorar la velocidad de detección en transiciones — el CO₂ solo es lento. También queda explorar si el modelo generaliza a otras salas sin reentrenar, o si necesita calibración por sala por las diferencias de ventilación y volumen.