a-Paul Rilevatore di Gas nocivi a basso costo fatto con Arduino

a-Paul Rilevatore di Gas nocivi a basso costo fatto con Arduino

Il progetto è nato con l’idea di realizzare un rilevatore di GAS nocivi a basso costo da tenere in casa, i gas rilevati sono i più comuni che si posso sviluppare in casa, Alcohol, Metano, GPL etc..  . Nello specifico il sensore che ho utilizzato è un MQ-2 in grado di rilevare i gas della tabella sottostante:

CO 200 ~ 10000 ppm
Alcohol 100 ~ 2000 ppm
CH4 5000 ~ 20000 ppm
Propane 200 ~ 5000 ppm
LPG 200 ~ 5000 ppm
Butane 3000 ~ 5000 ppm
Smoke 200 ~ 10000 ppm
H2 300 ~ 5000 ppm

Arduino è la scelta più logica visto il bassissimo costo. Lo step successivo era trovare un contenitore che fosse bello da tenere in casa. Per il momento ho trovato due soluzioni a basso costo. Una bella ma difficile da trovare e una un po’ meno bella ma economica e facile da trovare.

La soluzione 1 è una cassa per PC a forma di testa di Robot trovata in uno store Cinese. Ecco alcune foto della varie fasi di adattamento della cassa per PC.

Ecco come si presenta appena spacchettata:

Aperta per togliere il cavo audio, le casse e i led monocolore dagli occhi, adesso ne rimane solo l’involucro:

Inseriti i LED RGB negli occhi al posto di quelli monocolore e incollato il sensore di gas MQ-2 su uno dei supporti:

Rimosso uno dei quattro supporti per poter inserire agevolmente Arduno, fatti i vari collegamenti. Io ho fatto due buchi per  il cavo di alimentazione e il cavo usb, quello per lo spinotto USB si può tranquillamente non fare, basta inserire Arduino già programmato. Quello di alimentazione si può evitare anche perché nel fondo è presente il buco del cavo audio da dove si potrebbe far passare il cavo di alimentazione.

Ed ecco il progetto finito..

Due occhi verdi che lampeggiano fin tanto che nessun gas è rilevato, due occhi rossi e un fastidioso cicalino che suona se un gas è rilevato.

La seconda soluzione è l’uso di un semplice profumassero di ambiente di facile reperibilità di cui evito di scrivere la marca per problemi di Copyright, dalle foto però lo riconoscerete.

Tarato e collaudato ecco il filmato finale:

Lista materiale che serve con relativi prezzi:

01 Aruduino (dai 7 ai 25 euro dipende se originale o no il mio non è originale)
01 Buzzer (2 euro)
01 Sensore MQ-2 (circa 7 euro)
02 LED RGB o tre led di colore diverso  (1 Euro)
03 Resistenze da 220 (1 euro)
01 Alimentatore (5 euro)
Cavetti DUPONT (1 euro)
Contenitore (dipende da cosa usate)

Spesa totale circa da 25 Euro in sù

Ecco lo schema elettrico:

Codice:

// a-Paul ver. 1.0 by Paolo Tuttoilmondo

//IMPOSTAZIONE PIN
int buzzerPin = 7; // Pin Digitale 7 per il Buzzer
const int mq2Pin= 1; // Pin Analogico 1 per MQ-2
#define LEDR 8 // LED Rosso collegato al pin digitale 9
#define LEDG 9 // LED Verde collegato al pin digitale 10
#define LEDY 10 // LED Giallo collegato al pin digitale 11

//INIZIALIZZAZIONE SENSORI
int smoke_level; // Inizializzazione MQ-2 Sensore fumi
void setup(){
pinMode(LEDR, OUTPUT); // imposta il pin digitale come output
pinMode(LEDG, OUTPUT); // imposta il pin digitale come output
pinMode(LEDY, OUTPUT); // imposta il pin digitale come output
pinMode(buzzerPin,OUTPUT); // Impostazione Buzzer
pinMode(mq2Pin, INPUT); //the smoke sensor will be an input to the arduino
Serial.begin(9600); // For debugging
//digitalWrite(LEDY, HIGH);
//delay(20000);
}

void loop()
{
smoke_level= analogRead(mq2Pin); // Impostazione variabile MQ2
Serial.println(smoke_level); // Stampa sulla seriale il valore del gas per Dubug
if(smoke_level < 70){ // Cosa succede per valori di gas bassi inferiori a 100
digitalWrite(buzzerPin, LOW); // Spegne il cicalino
digitalWrite(LEDY, LOW);
digitalWrite(LEDR, LOW); // Spegne il LED Rosso
digitalWrite(LEDG, LOW); // Spegne il LED Verde
delay(1000); // Attesa 1 Sec
digitalWrite(LEDG, HIGH); // Accende il LED Verde
delay(1000); // Attesa
}
if(smoke_level > 70 && smoke_level < 100){ // Cosa succede per valori di gas bassi inferiori a 100
digitalWrite(buzzerPin, LOW); // Spegne il cicalino
digitalWrite(LEDG, LOW);
digitalWrite(LEDR, LOW); // Spegne il LED Rosso
digitalWrite(LEDY, LOW); // Spegne il LED Verde
delay(1000); // Attesa 1 Sec
digitalWrite(LEDY, HIGH); // Accende il LED Verde
delay(1000); // Attesa
}
if(smoke_level > 100){
digitalWrite(buzzerPin, HIGH);
digitalWrite(LEDG, LOW); // accende il LED
digitalWrite(LEDY, LOW);
digitalWrite(LEDR, HIGH); // accende il LED
}
}