Realizzare un sistema per rilevamento gas in casa è davvero semplice con Arduino

Con Arduino possiamo rendere più sicura la nostra casa realizzando da soli un piccolo sistema che monitora la presenza di gas nell’aria, generando una risposta qualora i valori rilevati siano superiori a quelli normali.

Cosa Serve?

Per creare questo allarme fatto in casa abbiamo bisogno del nostro Arduino UNO (va bene anche un Arduino Nano), un led, una resistenza da 200 OHM, un buzzer passivo e un sensore MQ-2, utilizzato per rilevare gas combustibili come il GPL, propano e idrogeno.

Collegamenti

Per far funzionare il nostro sistema di rilevamento gas, colleghiamo il led al pin 12 di Arduino, ricordando di inserire una resistenza da 220 OHM, il buzzer lo colleghiamo al pin 9, mentre il sensore MQ-2 va connesso al pin analogico A0, dal quale rileveremo i valori analogici. Il sensore di gas verrà alimentato a 5V, quindi il Vcc va connesso all’apposito pin, ma funziona anche se connesso ai 3,3V. Il led ed il buzzer si attiveranno ricevendo il segnale dai rispetti pin.

Codice

Il codice è abbastanza semplice e prevede all’inizio la dichiarazione di una costante che chiamiamo “limite” per impostare la soglia del sistema, nel VOID SETUP invece diamo la direzione ai pin del led e del buzzer, avviando poi il monitor seriale. Nel VOID LOOP rileviamo il gas dal pin analogico A0 e lo stampiamo sul seriale, creando poi un IF/ELSE che controlla che il valore rilevato non superi la sogli di limite e se ciò avviene fa lampeggiare il led al pin 12 e suonare il buzzer al pin 9. La funzione tone() è necessaria affinché il buzzer passivo funzioni. Se il valore rilevato è al di sotto del limite, non accade nulla.


const int limite = 500;                  // limite del sistema

void setup() {
pinMode (9, OUTPUT);              // direzione del pin buzzer
pinMode (12, OUTPUT);            // direzione del pin led
Serial.begin (9600);                   // avvio del monitor seriale
}

void loop() {
int gas = analogRead(A0);    // rilevo il valore da A0
Serial.println(gas);                // stampo su monitor seriale

if (gas > limite) {                   // se il gas supera il limite...

digitalWrite(12, HIGH);     // accendo il led e faccio suonare il buzzer
tone(9,400,1000);
delay(500);
tone(9,650,1000);
delay(500);
}
else {

digitalWrite(12, LOW);  // altrimenti non fa nulla
}

}