venerdì 21 ottobre 2011 #

NetDuino Plus: Rilevazione presenze con RFID – Il progetto (Parte 1)

La realizzazione di un progetto di rilevazione presenze dei dipendenti (meglio conosciuti come marcatempo) non è che presenti difficoltà particolari poichè la materia è stata abbondantemente sviscerata e acquisita. Quello che noi vogliamo realizzare è un progetto di stretta interazione tra periferiche di rilevazione e software gestionale interamente sviluppato da noi. Ecco il perchè della scelta di NetDuino, una board ottimale per le nostre esigenze. I progetti principali sono due: il progetto NetDuino e l’applicazione client VB.NET di gestione dati e periferiche.

Analizziamo quelle che devono essere, secondo le specifiche, le funzionalità delle periferiche di rilevazione presenze.

  • Devono poter lavorare in modalità stand-alone (non collegate direttamente ad un host).
  • Devono fornire una semplice interfaccia utente di facile lettura e gestione.
  • Devono poter fornire all’utente la possibilità di indicare le causali di ingresso e di uscita al momento della registrazione.
  • Devono utilizzare la tecnologia RFID.
  • Devono comunicare, su richiesta dell’host, i dati memorizzati.

Ovviamente la scelta della composizione hardware della periferica è strettamente definita dalle specifiche, per cui vediamo di analizzare come sono state implementate le singole richieste.

Lavorare in modalità stand-alone significa che la periferica deve memorizzare i dati localmente per cui deve essere munita di un supporto di memorizzazione. Netduino ha la possibilità di installare a bordo una MicroSD, noi abbiamo scelto il taglio minimo oggi in commercio ovvero 2GB, abbondantemente sufficienti per la nostra applicazione. Oltre all’aspetto di memorizzazione, per un sistema di controllo presenze è importante poter memorizzare la data/ora della transazione. Sfortunatamente Netduino non presenta a bordo un RTC (Real Time Clock) per cui l’abbiamo aggiunto esternamente come spiegato in questo post. Lavorare stand-alone significa anche che la periferica deve essere in grado, una volta configurata, di conoscere in autonomia tutti i dati sufficienti a fare il proprio lavoro, anche in questo caso la MicroSD a bordo ci viene in aiuto permettendo di memorizzare un file di configurazione e di caricarli all’avvio della periferica.

Per avere un’interfaccia utente semplice e di facile lettura la nostra scelta si è orientata su un display a caratteri di 2 righe x 16 colonne dettato principalmente dalle ridotte dimensioni della scatola di contenimento della periferica, ma sufficiente per gestire le informazioni necessarie. Oltre al display sono stati aggiunti 2 Led (uno rosso e uno verde) per la segnalazione immediata di eventuali anomalie di memorizzazione delle transazioni, un buzzer che indica l’avvenuta lettura del badge RFID ed un pulsante per lo scrolling delle causali di ingresso e di uscita.

L’uso della tecnologia RFID è dovuto alla semplicità di utilizzo di questo tipo di tecnologia, questo è stato oltremodo possibile alla presenza sul mercato di uno shield in scatola di montaggio molto completo.

La comunicazione all’host dei dati memorizzati avviene tramite la rete Ethernet utilizzando i l’interfaccia di rete embedded di Netduino Plus, oltre che allo sviluppo di un semplice protocollo di interrogazione da parte dell’host Windows. Questo protocollo definisce delle semplici richieste inviate alla periferica, la quale risponde inviando dati. Le richieste sono le seguenti:

  • Are You Alive –-> Verifica se la periferica è in grado di comunicare
  • Clear Display Screen –-> Cancella il contenuto del display
  • Delete Log File –-> Chiede alla periferica di cancellare il file dei LOG all’interno dell’ SD
  • Get Access Log –-> Chiede alla periferica di inviare il file dei LOG
  • Reset Device –-> Chiede alla periferica di auto-resettarsi.
  • Set RTC Clock –-> Chiede alla periferica di impostare l’orologio interno
  • Switch Led On –-> Chiede alla periferica di accendere uno dei 2 LED (rosso o verde)
  • Write Configuration File –-> Invia alla periferica i dati di configurazione
  • Write Display 1 Row –-> Chiede alla periferica di scrivere un testo sulla prima riga del display
  • Write Display 2 Row –-> Chiede alla periferica di scrivere un testo sulla seconda riga del display

Ovviamente, essendo il progetto alla sua prima release, il protocollo per adesso espone le funzionalità base ma che sicuramente saranno in futuro da sviluppare ed implementare ulteriormente.

Nei prossimi post vedremo come queste funzionalità sono state modularizzate in un software.

A presto,

Alberto

posted @ venerdì 21 ottobre 2011 14.02 | Feedback (3)

Copyright © Alberto De Luca

Design by Bartosz Brzezinski

Design by Phil Haack Based On A Design By Bartosz Brzezinski