Desarrollo de Sistema IoT para Monitoreo de Puertas de un hostal con Historial, Mapa de Calor y Línea de Tiempo

Job ID: 39700456

Budget: $1,500 – $3,000 USD

Descripción general.
Se requiere un desarrollador o equipo especializado en IoT, desarrollo web y visualización de datos para implementar un sistema que permita:
- Monitorear en tiempo real el estado de apertura/cierre de las puertas de 35 habitaciones de un hostal (un solo piso).
- Registrar y consultar un historial de 32 días máximo con borrado automático.
- Visualizar datos históricos mediante:
1. Mapa de calor sobre el plano del hostal.
2. Línea de tiempo horizontal de la habitación o habitaciones con los tramos de apertura/cierre resaltados gráficamente en color verde para (libre) y ocupado (rojo).

El sistema debe estar diseñado para ejecutarse de forma local en una Raspberry Pi 5 y ser accesible vía navegador desde la red interna del hotel.

Características y Requerimientos

1. Hardware y Comunicación
- Sensores magnéticos conectados a módulos ESP32- C3 para detectar el estado de cada puerta.
- Comunicación a red Wifi Local desde la ESP hasta la Raspberry Pi 5.
- Servidor local en la Raspberry Pi para centralizar y procesar datos.
- Base de datos local (SQLite) con almacenamiento mínimo de 32 días.

2. Funcionalidades Principales
Vista en tiempo real:
- Por evento o cambio de estado de sensor, monitoreo de estado (Heartbeat para verificación de desconexión o falla).
- Actualización automática sin recargar la página.

Historial y filtrado avanzado:
- Consulta por fecha y rango horario.
- Filtro por una habitación o grupo de habitaciones.
- Exportación de datos (CSV/Excel).

Mapa de calor interactiva:
- Imagen del plano del hotel como fondo.
- Color e intensidad representando la cantidad de eventos en el rango de tiempo seleccionado.
- Librerías sugeridas: heatmap.js, D3.js u otras equivalentes.
- Actualización dinámica según el filtrado aplicado.

Línea de tiempo horizontal interactivo:
- Visualización gráfica de los ciclos de apertura/cierre en el periodo seleccionado.
- Cada habitación muestra en el eje (X) con tramos coloreados según estado (Desocupado, Ocupado).
- Navegación y Zoom por el eje temporal.
- Librerías sugeridas: vis.js, Chart.js (timeline) o similares.

3. Requerimientos Técnicos
- Desarrollo en Python o Node.js para Backend, se aceptan sugerencias del desarrollador.
- HTML5, CSS3 y JavaScript para Frontend (framework opcional), se aceptan sugerencias del
desarrollador.
- Comunicación con los ESP usando MQTT, HTTP o WebSockets.
- En caso de perdida de comunicación con el servidor debe tenerse Buffer para reenviar la información a
lo que se restablezca el servicio, QoS= 1
-Auto reinicio de dispositivos en caso de bloqueo.
- Seguridad para acceso al servicio Web (Usuario y contraseña).
-Usar Autenticación mediante contraseña para la comunicación entre (ESP) y Raspberry
- Optimización para bajo consumo de recursos en Raspberry Pi.
- Respaldo y restauración de base de datos.
- Código limpio y documentado.

4. Entregables
1. Código fuente completo para ESP y Raspberry pi 5 con instrucciones de instalación.
2. Diagramas de arquitectura, APIs y flujo de datos.
3. Sistema 100% funcional en Raspberry Pi 5.
4. Dashboard Web
5. Evidencias de pruebas simuladas o pruebas reales si cuenta con los equipos.

Requerimientos del equipo o desarrollador
1. Experiencia en proyectos similares (con enlaces o capturas).
2. Tecnologías y recursos que propone utilizar y justificación.
3. Cronograma de trabajo por fases (con tiempos estimados).
4. Presupuesto detallado y forma de pago.

Nota: El plano del hotel será proporcionado por el cliente en formato PNG o si se requiere en otro formato indicarlo. En caso de que se establezca ubicación sobre plano por coordenadas, las habitaciones deberán configurarse para un posicionamiento preciso en el mapa de calor.