Construyan un dispositivo que registra, de forma trazable, quién incluye cada cassette, cuál y cuándo — conectado a la plataforma del laboratorio.
Un dispositivo IoT para las estaciones de inclusión. El Tecnólogo Médico (TM) se identifica escaneando su credencial y luego escanea cada cassette antes de incluirlo. Cada evento queda registrado en la plataforma del laboratorio. Y si se cae el WiFi, nada se pierde.
El cerebro es un ESP32 con pantalla OLED. La idea clave: tratar el escaneo como “llega un texto” — da igual si viene del lector real o se escribe a mano para probar. Por eso casi todo el proyecto se puede avanzar sin el lector físico.
El DataMatrix grabado en un cassette codifica texto plano con el formato
{informe}-{muestra}.{cassette}: el número de informe (el caso), un guion, y el
subíndice que dice de qué frasco (muestra) salió y qué cassette de ese frasco es. Si una muestra
grande se divide, el subíndice gana niveles (ej. 2.3.1). Las láminas usan el mismo
código más un número al final — la estación debe distinguirlas y no registrarlas como
inclusión. Estos cuatro códigos son reales en formato (los números son inventados):
1234567-1.1Informe 1234567, muestra 1, cassette 1. El caso típico.1234567-1.2Mismo informe y muestra, segundo cassette.1234567-2.3.1Muestra 2, cassette 3, subdividido: el subíndice puede tener más niveles.1234567-1.1-2¡Ojo! El -2 final es número de lámina: esto es una lámina, no un cassette. Hay que rechazarlo.^\d+-\d+(\.\d+)+$; una lámina es lo mismo más -\d+ al final.TM-…);
mientras tanto, simúlenla.De fácil a difícil. Cada etapa termina con algo que funciona y se puede mostrar. Toca un recurso para abrirlo. Las etapas 0–5 y 7–8 no necesitan el lector: ¡pueden empezar ya!
Instalar Arduino IDE y los drivers, y hacer parpadear un LED. El “hola mundo” del hardware.
Escribir texto y estados en la pantalla SSD1306 integrada (I²C en GPIO21/22).
Conectarse a la red, mostrar el estado en pantalla y obtener la hora real por NTP.
Hacer un POST a un servidor de prueba. Aquí aprenden HTTP y a armar JSON.
La lógica de sesión: login → cassettes. Se prueba escribiendo el código por el monitor serial, sin lector. Aquí nace la máquina de estados.
Enviar el evento real a la plataforma, autenticando con la clave y manejando errores.
Conectar el lector por UART (con divisor de nivel 5V→3.3V) y leer escaneos reales. Aquí decidimos lector TTL (SH-400) o GM65.
Guardar los escaneos en la memoria del ESP32 y reintentar al volver la red. Que nada se pierda.
Un portal para configurar WiFi y la estación sin tener que tocar el código cada vez.
Medir los componentes, modelar la caja, imprimirla y montar todo dentro.
Probarlo en una estación real, ajustar los detalles y entregar. ¡Premio!
Accesos directos a todo lo que van a necesitar, ordenados por tema.