Este repositorio contiene un script de servidor en Python 3 para procesar los mensajes de los relojes GPS infantiles (modelo Q50 y compatibles) y un sistema para gestionarlos.
Repositorio del artículo: Crear tu propio servidor para gestionar los relojes infantiles Q50.
- Python 3.
- Base de datos SQLite (incluida en la biblioteca estándar de Python).
El reloj envía cada 5 minutos un comando de "latido" para informar que está activo.
Formato: [CS*YYYYYYYYYY*LEN*LK,A,B,C]
- CS: Fabricante (ej. 3G).
- YYYYYYYYYY: ID del dispositivo.
- LK: Comando de heartbeat.
- C: Nivel de batería (%).
El servidor responde confirmando la recepción: [CS*YYYYYYYYYY*LEN*LK].
Para ahorrar batería, el reloj no envía la posición continuamente. El servidor debe solicitarla con el comando: [CS*YYYYYYYYYY*LEN*CR].
El reloj responderá confirmando que activará el GPS.
Una vez activado, el reloj envía la posición cada pocos segundos.
Formato: [CS*YYYYYYYYYY*LEN*UD,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P]
Parámetros clave:
- C: Validez GPS (A=Válida, V=Inválida).
- D/E: Latitud y Hemisferio (N/S).
- F/G: Longitud y Hemisferio (E/W).
El script reloj_gps.py implementa un servidor socket y utiliza una base de datos SQLite para almacenar los mensajes.
El servidor permite conectar usuarios/aplicaciones para gestión mediante los siguientes comandos:
- ACTIVA: Activa la geolocalización de un reloj específico.
- LISTA: Muestra los relojes registrados en la BBDD.
- INFO: Muestra información detallada de un reloj (batería, última ubicación, etc).
Idealmente, el servidor debe estar expuesto a Internet (o usar ngrok para pruebas locales). Al iniciarse, crea un socket de escucha para recibir conexiones tanto de los relojes como de las aplicaciones de gestión.
Este proyecto está bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.
