Per iniziare abbiamo deciso di collegare il display LCD 16 x 2 compatibile con i driver dell’Hitachi HD44780. Per poter utilizzare il display abbiamo bisogno di includere ne codice la libreria LiquidCrystal.h che permette di controllare 4 o 8 bit, noi ne utilizziamo 4 tuttavia, utilizziamo 6 uscite digitali di Arduino.
Il display dispone in totale di 16 Pin:
Sul display viene, per default, visualizzato il menù iniziale con tutte le voci alle quali si può accedere: -Valore attuale, -ON/OFF, -Imp. Limite. Nella voce "Valore attuale" è possibile visualizzare il valore di gas rilevato nell'aria. Nella voce "ON/OFF" possono essere selezionate altre due voci: -Attiva e -Disattiva, che rispettivamente attivano e disattivano il led rgb, il led blu e l'allarme. Nella voce "Imp. limite" è possibile modificare il valore della soglia, di default impostata a 500, oltre la quale l'allarme si attiverà.
In seguito al display abbiamo collegato il joystick dato che strettamente legato al funzionamento di esso. La manopola rileva i movimenti direzionali facendo riferimento a due assi direzionali che utilizzano valori analogici determinati da due potenziometri da 10KOhm, inoltre dispone di un pulsante che si attiva premendo il joystick e utilizza valori digitali.
Abbiamo scelto di utilizzare una manopola per controllare il rilevatore di fumo, perchè ha più funzionalità, le quali si possono implementare in un secondo momento, rispetto ai pulsanti e si evitano situazioni di panico in momenti critici a differenza di un controllo remoto tramite telecomando che potrebbe andare disperso molto facilmente oltre al fatto di essere estremamente fragile.
Il primo dei segnali visivi o uditici a cui il cliente farà riferimento in caso di pericolo è il LED R.G.B.: esso è in grado di rappresentare il rosso, verde e blu su una scala di tonalità che va da 0 a 255 variando la tensione sui pin e di combinarli assieme per rappresentare altri colori. Questa tipologia di LED ha 4 piedini di cui possono essere 3 anodi e 1 catodo oppure 3 catodi e 1 anodo, nel nostro caso è la prima; il catodo e l'anodo vengono collegati rispettivamente a massa e a +5V.
Il LED assume: il colore verde quando il valore di gas/fumo presente nell'aria è sotto la soglia impostata, il colore rosso quando il valore di gas/fumo supera la soglia impostata e il colore giallo quando durante la registrazione di valori troppo elevati si vuole stoppare l'allarme fino a quando il valore ritornerà sotto la soglia e il rilevatore ricomincerà a funzionare come prima (questa opzione è utile in caso di una perdita di gas/fumo che non comporta l'intervento di enti specializzati ma è sotto il controllo del cliente, quindi è utile fermare il suono dell'allarme finchè l'aerazione del luogo non sarà portata a buon fine).
Un'altro tipo di LED che abbiamo scelto di utilizzare è un semplicissimo diodo LED di colore blu formato da 2 piedini: uno più corto e uno più lungo; rispettivamente il catodo e l'anodo. Anche esso con il LED precedente può assumere diverse tonalità ma solo di un colore tuttavia, nel nostro caso utilizzeremo dei valori digitali poichè ci servirà semplicemente acceso o spento.
A questo LED abbiamo attribuito la funzione di memoria, cioè che quando scatterà l'allarme, a meno che esse non sia disattivata, esso si accenderà per testimoniare che il rilevatore ha captato qualcosa di insolito nell'aria; esso si spegnerà solamente se durante o dopo l'allarme si premerà un'apposito pulsante, in modo che la persona in questione sia obbligata a visualizzare un'accaduto svoltosi in sua assenza.
Il pulsante è formato da 4 piedini collegati a coppie verticalmente, delle quali una va collegata a massa e l'altra a +5V.
Il pulsante ha il ruolo di interrompere il suono dell'allarme rendendo il led rgb di colore giallo fino a quando i valori torneranno sotto la soglia impostata diventando verde e di spegnere il led blu.
Il buzzer è formato da 2 piedini: il GND e il +5V. Esso è ingrado di emettere suoni quando gli si inviano dei valori positivi, inoltre è possibile variare la frequenza dei suoni.
La sua funzione è quella di emettere un suono costante alla frequenza di 1000 Hz quando il rilevatore capta valori superiori alla soglia per poi fermarsi quando i valori si stabilizzano. Ovviamente esso non suonerà in alcun modo se l'allarme è disattivato nonostante i valori siano molto superiori al dovuto.
Per ultimo ma non meno importante, anzi, l'elemento fondamentale intorno al quale è stato costruito tutto il progetto: si tratta del nostro rilevatore di fumo MQ-2 in grado di riconoscere quantità di gas (GPL , i- butano, propano, etanolo, metano , idrogeno e fumo) su una scala di valori che va da 0 a 1023 (quindi valori analogici). Un altro sensore che viene utilizzato con Arduino è l'MQ-5 ma, è in grado di rilevare GPL , il gas naturale e gas di città. Il nostro progetto si basa sulla rilevazione del GPL, un gas comunemente usato per produrre gli accendini e per questo facile da reperire ed usare nei vari test, e dell'etanolo, tuttavia, da questi ultimi non abbiamo salvato i valori rilevati poichè non raggiungevano un valore sufficientemente alto, dando problemi con la soglia minima, perciò non ci è stato possibile unire la rilevazione delle due sostanze in un unico progetto. A nostro dispiacere non siamo riusciti a rilevare il fumo causato dalla combustione di fiammiferi o semplice carta; in seguito ad una ricerca in internet abbiamo trovato alcuni siti che sostenevano di poter rilevare ogni gas singolarmente variando la resistenza abbinata al sensore, di conseguenza abbiamo applicato diverse resistenze osservando che il valore per cui l'aria era pulita continuava ad aumentare insieme al valore della resistenza ma il sensore reagiva solamente al GPL o all'etanolo; un'altro tentativo lo abbiamo fatto cercando di variare la resistenza del potenziometro che si trova sul retro del rilevatore ma senza successo. L'MQ-2 utilizza 4 piedini: 2 per alimentazione e massa, gli altri per il rilevamento di valori analogici o digitali.