Projecto contaje electrónico
xxx El dispositivo aquí descrito se realiza como prototipo de prueba de concepto en cuanto a:
- Consumo y duración de batería
- Funcionalidades
- Estabilidad
No se evalua:
- La resistencia física en el entorno en que se operará
- La capacidad de lectura rápida de las tarjetas rfid en caida (eso se heredará de los dispositivos actuales)
Objetivo
- Disponer de una versión del contaje RFID más robusta y confiable
- Con facilidad de modificaciones, sin necesidad de un toolchain complejo.
Funcionalidades esperadas
xxx 1. Duración de 10 horas encendido en todos los nodos Énfasis en la activación sólo de los módulos electrónico necesarios durante el mínimo tiempo posible.
2. Lectura de tarjetas RFID en todos los nodos
3. Botón/es robusto/s para contajes manuales en todos los nodos
4. Keypad para introducción de información en nodo central (valorar en todos para facilitar contaje e igualar hardware)
5. LCD para feedback del usuario en todos los nodos
6. Baterías estándar (18650 / móvil estándar / etc.) en todos los nodos
7. 1 Nodo central para cada equipo de trabajo
8. Agilidad en el cambio de configuración
9. Gestión remota (visualizar el estado, cambiar parámetros, ejecutar envio de información, reiniciar, etc.) en todos los nodos, a través del nodo central
10. Localizable con GPS en nodo central
11. Conexión GPRS / GSM en nodo central
12. Conexión ethernet en todos los nodos
13. Capacidad de retención de datos durante toda una campaña
14. Sistema antivandálico de apagado por parte de personas no autorizadas.
15. Envio de información automático a intervalos regulares
16. Envio de información a petición del operador.
Componentes para prototipo
- 5 módulos LCD nokia 5110. https://lastminuteengineers.com/nokia-5110-lcd-arduino-tutorial/
- 5 Memoria intermedia FRAM https://www.cypress.com/products/f-ram-nonvolatile-ferroelectric-ram
- 5 módulo RTC
- 1 módulo SIM
- 1 keypad (valorar si los cinco)
- 5 lectores RFID
- 5 conjuntos funcionales atmel mega328pb
- 5 cajas mecanizadas.
- 5 sensores de luz ambiental.
Estructura alto nivel
Conexión entre nodos
El nodo central se conecta inalámbricamente a cada uno de los nodos asociados
- En prototipado, la tecnología inalámbrica debe ser cambiable fácilmente.
- Dos equipos cercanos no deben cruzarse datos. Un nodo asociado a un nodo central no enviará nada a otro nodo central.
La asociación de equipos se hace en oficina y remótamente
- El nodo central sabe qué equipos debe esperar tener activos
- Los nodos asociados deben saber a qué nodo central deben asociarse
- Remótamente también se han de poder cambiar esas asociaciones
Conexión con GPS
Según la tecnología actual
Autonomía de funcionamiento
Los nodos son capaces de trabajar de manera autónoma
- Si no pueden enviar datos al equipo central, deben retenerlos hasta una campaña entera como mínimo.
Marca de tiempo
La hora del nodo central se capta de gprs y la pone a disposición de los nodos asociados
- La hora de los mismos debe comprobarse visualmente al preparar los dispositivos, a través del lcd incorporado (a demanda del operador)
- Si no es correcta, mandar comando de resincronización con la hora del módulo central.
Información almacenada
Cada registro generado por el dispositivo tiene, como mínimo:
- GUID de dispositivo (no el número asignado, si no de la propia placa)
- Identificación secuencial unívoca para cada registro (necesario para evitar que ajustes de hora interrumpan la secuencia)
- Una marca de tiempo utc (p.ej. unixtime) (no relativo al encendido, si no obtenido del rtc)
- Identificación funcional del nodo central asociado
- código de tipo de registo (1-dato de batería, 2-acción del usuario, 3-detección de tarjeta, 4-inicio en sucio, 5-indicación de código de calca, etc.)
- resto de campos asociados al tipo de registro (1 o más)
- finalmente un "$" + CRC del registro entero (previo al "$")
La información se almacena en la SD, utilizando una FRAM como cola de dato pendiente (por tener la SD un alto consumo)
Un archivo sólo puede tener los registros generados en un dia.
- Habrá un fichero especial que contendrá aquellos registros que no tengan una fecha correcta asociada, siempre manteniendo el secuencial del dispositivo.
Tipos de registros
- identificación de tarjeta pasada
- Nivel de batería
- Estadística de envio de datos a nodo central (para evaluar conexión inalámbrica)
- Indicación de calca
- Indicación de línea
- Indicación de turno
- Estado de los módulos internos
- Actualización de hora (evento con hora actual y hora obtenida)
- Alarma - inicio sin apagado 'limpio' (durante la transmisión de datos gprs, etc.)
- Inicio del sistema
Flujo de datos
- Cada registro se guarda en la FRAM asociada
- Cada X tiempo, el contenido de la FRAM se descarga en la tarjeta SD del equipo
- Entonces la información de la FRAM se invalida.
- Cada x*k tiempo, un proceso en cada nodo asociado debe tratar de enviar la información de la tarjeta SD al nodo central.
- En algún momento del final de la jornada el operador hace un "envio" de datos a la empresa.
- Las acciones de envio y recepción de datos han de ser idempotentes.
Interfaz de usuario
- La visualización se hace mediante un LCD 84x84 nokia (bajo consumo)
- Habrá un key pad 4x4 para el nodo central.
- el backlight se encenderá según la información de la luz ambiental.
Interacciones previstas
- Introducir el número de autobús ( se debe poder indicar en cualquier momento )
- Introducir el número de turno ( en cualquier momento )
- Introducir el número de línea ( en cualquier momento )
- Inicio de encuesta
- Fin de encuesta (lanzar procesos de cierre)
- Avería, ida a cochera
- Inicio de largas
- inicio de limitadas
- Botones decontaje (robusto para uso continuado) Por ejemplo, uno de subidas y otro de bajadas.
- Ha de ser ergonomicamente fácil de usar.
Datos a visualizar
- Mostrar el estado del sistema ( OK/KO en nodos, niveles de batería, gps, etc.)
- Mostrar en grande el número del nodo central y al lado los modulos asociados (un simbolo ok o ko parpadeante al lado de cada uno)
Introducción de datos
- Utilizar navegación por menús o por códigos (p.ej, introducir código de bus: *1#, etc.)
- preferiblemente por menús, aunque se reservan códigos para datos que se pueden solicitar telefónicamente.
Catálogo de funciones del código
FlushCache
Envia el contenido de la caché de registros a la SD e invalida esos datos.
SynRTC
* Actualiza el RTC con el dato de GPRS o GPS
- No ha de ser bloqueate
GetUnixt
* Obtiene la hora Unixt
- para generar registros
- para mostrar hora en display
GenRFIDreg
* Genera los registros RFID con las lectura encoladas (pool con intérvalo pequeño)
- Y lo grava a la caché de registros
GetGUID
Obtiene el GUID del dispositivo
GetNewSeq
Obtiene un número de secuencia de registro.
Local para cada dispositivo