Internet of Things, o brevemente IoT, è un concetto molto utilizzato recentemente, ma il suo significato letterale è piuttosto ampio: si tratta di collegare oggetti, generalmente di uso comune, ad Internet per ampliarne lo spettro di utilizzo. Ma… in pratica?
Ho avuto occasione di partecipare ad un interessante corso pratico, organizzato da Lab Network, riguardo Arduino e IoT che mi ha permesso di provare con mano queste tecnologie applicandole ad una problematica comune, ovvero il controllo degli accessi.
Immaginiamo di dover garantire l’accesso ad una particolare area, stanza, sala per un tempo limitato ad un gruppo di persone: suona familiare? Bene.
Con questa tecnologia possiamo fornire un badge agli utilizzatori e controllare da un semplice pannello del browser se e quando ciascuno di essi può entrare. Il sistema, collegandosi ad Internet, verifica se il proprietario è autorizzato e, solo in caso positivo, invia il comando di apertura alla serratura.
Il sistema è composto da due elementi fondamentali: il dispositivo “IoT” (Arduino + Ethernet, lettore NFC e elettro-serratura) e il servizio remoto per la gestione degli accessi (API).
API gestione accessi
Per prima cosa predisponiamo il sistema di gestione degli accessi.
Non scendiamo nel dettaglio del software per il controllo degli accessi in quanto fuori dallo scopo primario di questo articolo; basti pensare che può essere sostanzialmente qualsiasi sistema, esistente o da creato ex-novo, che sia in grado di comunicare tramite Internet.
Ai fini del prototipo possiamo simulare questo comportamento con poche righe di codice che, leggendo un parametro GET della richiesta, lo confrontano con un codice definito come valido. Se i due codici corrisponodono la richiesta sarà approvata, in caso contrario, respinta.
Non ci resta che caricare il servizio su un server raggiungibile tramite Internet e siamo pronti a procedere.
Dispositivo IoT
Possiamo quindi passare alla creazione del nostro dispositivo, per farlo abbiamo bisogno di alcuni componenti:
- Arduino UNO + shield Ethernet;
- Adafruit PN532 NFC/RFID reader;
- Relè SRD-05VDC-SL-C;
- Tag NFC;
- Cavi, resistenze e led.
Effettuiamo il cablaggio semplicemente rispettando i datasheet; perchè il codice proposto funzioni dobbiamo però stare ad alcune scelte riguardo i pin di output di Arduino:
pin A1 => relé
pin A2 => led rosso
pin A3 => led verde
pin A4 => led giallo
A questo punto possiamo scrivere il programma di gestione del dispositivo, per farlo utilizziamo l’IDE proposto da Arduino stessa, scriviamo il codice e connettiamo il dispositivo tramite USB per caricarlo dopo averlo compilato.
Per evitare di dilungarci vi invito a scaricare il codice completo dal sito web del corso, riporterò qui solo i passaggi logici più importanti.
In una prima fase dobbiamo:
- importare le librerie,
- configurare lo shield ethernet,
- configurare lo shield nfc.
Quindi avviamo il setup e inizializziamo tutti i servizi.
A questo punto possiamo iniziare il ciclo vero e proprio, che sarà composto da tre sezioni fondamentali:
- lettura dei dati dallo shield ethernet,
- controllo del valore di risposta ed eventuale apertura della serratura,
- invio del codice NFC qualora ve ne fosse uno.
Conclusioni
La semplice soluzione proposta dal corso è un’ottima base per permettere di capire come le tecnologie IoT possano avere un’applicazione pratica e funzionale anche se, chiaramente, non è sufficiente per una situazione reale (presenta diverse problematiche di sicurezza in primo luogo).
Ritengo il progetto interessante per chi vuole fondere le competenze a livello software con l’elettronica e realizzare un prodotto reale. Inoltre, dopo i dovuti miglioramenti a livello software, sarebbe facile spaziare dalla gestione di una serratura ad altri campi come, ad esempio, l’agricoltura (illuminazione, irrigazione), l’intrattenimento (musica, video), o la domotica.
Qui un breve video del prototipo funzionante:
Se ti serve consulenza per il tuo progetto IoT contattami.