[Release] Arduino badge reader

Ciao a tutti!

Volevo presentavi il mio progetto finito di realizzare giusto una settimana fa.
Innanzitutto l'idea nasce dal fatto che nel mio ufficio si timbrava sempre al pc quindi non solo si perdeva
un po' di tempo prima di timbrare ma si incentivava anche i dipendenti a tenere acceso il proprio pc in modo tale da avere subito il programma pronto per timbrare...

Come avete capito dal titolo ho costruito un "badge reader" con arduino in grado di leggere la carta di chi timbra, inviare il codice identificativo ad un tcp server in remoto, attendere la risposta ed stamparla a video.
Per far tutto ciò ho utilizzato:

  • Arduino: scheda per pilotare l'intero sistema
  • RFID-RC522: lettore RFID per leggere il codice identificativo della scheda
  • Display LCD: per visualizzare la risposta del tcp server
  • Buzzer: emettitore di suono per notificare di aver letto la carta correttamente e per avvisare anche l'esito della timbratura
  • ESP8266: modulo wifi utilizzato per comunicare con il tcp server ed acquisire la riposta

ecco una foto di come è venuto fuori:

Un obiettivo sul quale ho puntato molto è stato il concetto di MASTER/slave , infatti questo apparecchio non fa praticamente nulla se non acquisire il codice identificativo ed inviarlo al server.
Questo è molto utile perche:

  • evitiamo di far lavorare troppo un micro controllore che, se pur di ottima qualità, non è assolutamente paragonabile come prestazioni ad un computer moderno.
  • progettato per larga scala: ammettendo che siano necessari tanti di questi apparecchi perchè magari un'azienda ha più sedi o comunque più piani nello stesso edificio;collegando tutti i dispositivi allo stesso server non ci sarebbero ripercussioni anzi, il server gestirebbe tranquillamente le entrate e le uscite anche in sedi separate.
  • predisposto ad aggiornamenti: in caso si voglia effettuare delle modifiche magari per gestire meglio l'orario di lavoro il sabato od i turni extra ecc... non sarà necessario andare ad intervenire sui singoli dispositivi e quindi staccarli la loro postazione,smontare la scatola,ricaricare il codice ecc... ma basterà andare ad intervenire solamente sul server centrale

Sottolineo il fatto che è importante non sforzare troppo le prestazioni di arduino perchè, inizialmente persi molto tempo inutilmente quando decisi di utilizzare una comunicazione HTTP/1.1 per inviare i dati tra arduino il server e viceversa perchè il server generava una risposta troppo lunga mettendoci i classici dati del protocollo http (request,cookie, ecc), il quale quando doveva parsare il codice json non riusciva ad andare a termine...

Quindi decisi di definirmi io un protocollo di comunicazione , in questo caso ho utilizzato:

$: inizio comunicazione
&: fine comunicazione
.: separatore di parametri

un esempio di risposta si può visualizzare nello screenshot che ho allegato a questo post.

Spero che vi sia piaciuto!

vi lascio il link a github: GitHub - passa9/Arduino-badge-reader: badge reader with arduino uno

PS: se avete altre idee postatele qui per esempio io avevo pensato di metterci un lettore di impronte digitali ma per sfortuna quello che avevo ordinato non andava ed ho dovuto riconsegnarlo >.<

screenshot.png

Ti ringrazio per la generosa pubblicazione :slight_smile:

Bel progetto.
Ma visto che hai dei pin liberi potresti aggiungere un RTC da sincronizzare con un server NTP via WiFi e inviare inseme al TAG anche l'orario. :slight_smile:

ciao io sto provando a crearlo ma non ci riesco
mi manca la pinnatura del progetto o lo schema di collegamento ho notato che è presente anche nello scretch ma se è possibile mi daresti una mano.
grazie

>sabaman: ... hai presente il REGOLAMENTO, punto 16.9? Vogliamo rispettarlo?

Guglielmo