Come realizzare un rivelatore di metano e di fumo

Una delle cose molto importanti nella vita umana è la sicurezza domestica. Questa si riferisce alla consapevolezza dei rischi e dei potenziali pericoli dentro e intorno a una casa che possono causare danno al corpo o persino morte. Esistono diversi tipi di rischi e potenziali pericoli che minacciano la sicurezza di molte case e vite. Uno dei rischi e potenziali pericoli è la perdita di gas (metano, gpl, etc.), che può causare un danno grave in una casa. Un altro è quello dello sviluppo di un incendio, segnalato precocemente dalla presenza di fumo. Ora vedremo quindi come realizzare un rivelatore/allarme ad hoc.

Per prevenire rischi minacciosi e potenziali pericoli, la consapevolezza e la vigilanza sono assolutamente necessarie. L’essere umano richiede informazioni di avvertimento tempestive riguardo al verificarsi di fughe di gas o incendi per la prevenzione della sicurezza domestica. Tali informazioni di avvertimento consentono a persone, utenti o residenti di ridurre i rischi e potenziali pericoli della perdita di gas o agli incendi, soprattutto quando sono in casa ma stanno dormendo oppure quando sono fuori casa.

Questa la principale motivazione alla base di questo articolo e dello sviluppo del sistema informativo di allarme per aiutare le persone o i residenti a monitorare la propria sicurezza domestica. Nel seguito, infatti, vedremo come realizzare con Arduino un sistema per rivelare perdite di gas o incendi in ambienti a bassa manutenzione. Il sistema proposto, naturalmente, per essere preferibile a quelli in commercio deve essere a basso costo, garantire una risposta rapida, facile da usare e da implementare.

Un tipico allarme di fughe di metano con avviso acustico presente in commercio. Ne puoi trovare diversi modelli online, ad esempio qui.

Le procedure del sistema di rilevamento delle perdite di gas / di fumo sono le seguenti: per monitorare i parametri della perdita / presenza di fumo usiamo un sensore di gas / fumo. I parametri prodotti dal sensore sono inviati al centro di controllo (microcontrollore) Arduino tramite un cavo. Successivamente, il microcontrollore elabora i parametri / dati e, se i valori rilevati superano una determinata soglia procede a dare l’allarme tramite un avvisatore acustico (buzzer) o via SMS (nella versione più evoluta).

Un sensore di gas e di fumo per il nostro rivelatore

Il “cuore” di un rilevatore che emette un segnale acustico quando rileva gas infiammabili (in particolare, metano, cioè gas naturale) o fumo è costituito dal sensore MQ-2. Abbiamo già parlato dei sensori di gas della serie MQ e del loro impiego nel nostro articolo Come misurare la concentrazione di gas vari, che puoi trovare qui. La resistenza del sensore è diversa a seconda del tipo di gas, per cui il sensore può essere un po’ più sensibile a certi gas che ad altri (vedi la figura qui sotto).

Il sensore di gas e di fumo MQ-2.

Il sensore di fumo MQ-2 è sensibile al fumo e ai seguenti gas infiammabili:

  • GPL
  • Butano
  • Propano
  • Metano
  • Alcool
  • Idrogeno

Il sensore MQ-2 non viene mai usato da solo ma sempre alloggiato su un modulo per l’interfacciamento con Arduino, che contiene anche un amplificatore del segnale. Esistono due tipi di moduli molto usati: (1) il modulo grove illustrato nel ns. articolo già citato, che fornisce all’uscita analogica una tensione proporzionale alla concentrazione del gas; (2) un modulo che fornisce anche un’uscita digitale, ALTA se la concentrazione supera una certa soglia o BASSA se non la supera.

I due tipi di moduli a confronto: a sinistra il modulo “grove” (un sistema di collegamento rapido con un unico spinotto), a destra quello normale. Puoi trovarne vari a buon prezzo qui. Sotto, i piedini tipici di un modulo sensore di gas. 

L’uscita di un modulo può quindi essere un segnale analogico (A0,) che può essere letto con un ingresso analogico dell’Arduino, o un’uscita digitale (D0), che può essere letta con un ingresso digitale dell’Arduino. Naturalmente, è possibile realizzare un allarme di gas/fumo con entrambi i tipi di uscite. Nel primo caso, la soglia può essere fissata via software nel codice (sketch) di Arduino, nel secondo caso verrà fissata via hardware agendo su un apposito potenziometro (trimmer).

Questo modulo ha infatti un potenziometro incorporato che consente di regolare la soglia di uscita digitale del sensore (D0). Questa soglia imposta il valore al di sopra del quale il pin digitale emetterà un segnale HIGH (cioè ALTO). Anche il modulo “grove” (cioè con connettore standardizzato per una rapida connessione che ne facilita l’interfacciamento a microprocessori come Arduino) è dotato di un potenziometro, che permette di regolare facilmente la sensibilità del sensore.

Il potenziometro citato nel testo per la regolazione della soglia di uscita digitale.

La tensione emessa dall’uscita analogica del modulo-sensore cambia in base al livello di fumo / gas presente nell’atmosfera. Il sensore emette una tensione proporzionale alla concentrazione di fumo / gas. In altre parole, la relazione tra tensione e concentrazione di gas è la seguente: maggiore è la concentrazione di gas, maggiore è la tensione di uscita; più bassa è la concentrazione di gas, più bassa è la tensione di uscita. Ora vedremo come realizzare un allarme usando proprio l’uscita analogica.

La relazione tra tensione fornita dall’uscita analogica del modulo del sensore e concentrazione di gas.

Un rivelatore di gas e di fumo con allarme acustico

Il tipo più comune e più semplice di allarme di gas o di fumo è quello con allarme acustico. In questo esempio, il sistema leggerà la tensione di uscita analogica del sensore e quando il gas o fumo raggiunge un certo livello, emetterà un segnale acustico ed inoltre un indicatore luminoso (in pratica, un LED rosso) si accenderà. Per realizzare questo progetto, avrai bisogno dei seguenti materiali:

  • 1 x sensore di gas MQ-2
  • 1 x Scheda Arduino UNO
  • 1 x Breadboard
  • 1 x LED rosso
  • 1 x LED verde
  • 1 x cicalino (buzzer)
  • 3 resistenze da 220Ω
  • Cavi jumper

Schema dei collegamenti da fare tra i vari componenti.

Segui lo schema qui sopra per effettuare i collegamenti fra le parti e per completare così il progetto. Facendo poi un copia e incolla da qui, carica il seguente codice (sketch) sulla tua scheda Arduino. Naturalmente, sentiti libero di regolare la variabile sensorThres che trovi all’interno del codice appena citato con un valore di soglia diverso (puoi determinare la soglia ideale sperimentalmente). Nella figura qui sotto, invece, puoi vedere quanto vedrai sul serial monitor di Arduino.

Nota che, in questa implementazione di base l’allarme rimarrà attivo fino a quando il valore della concentrazione di gas o fumo supera il valore di soglia che avrete impostato nello sketch. Tuttavia, gli allarmi in Italia non possono rimanere attivi per più di 3 minuti di seguito per non disturbare i vicini. Quindi, considerate l’idea di aggiungere qualche riga di istruzione per dire ad Arduino di non superare, come durata dell’allarme sonoro, i 180.000 millisecondi, equivalenti a 3 minuti.

Le prime righe dello sketch per Arduino per questo progetto..

Sappi che i sensori della serie MQ necessitano di almeno 24 ore (meglio 48 ore) per riscaldarsi e andare a regime, altrimenti daranno letture completamente errate. Perciò, se determinate sperimentalmente la soglia di allarme, fatelo con il sensore già alimentato senza interruzioni da almeno 24 ore. Pertanto, nelle prime ore, le letture assai più alte potrebbero far scattare l’allarme. Potete quindi considerare l’idea di aggiungere delle righe di codice per ritardare l’“attivazione” dello sketch di 24 ore.

Questo progetto può essere utilizzato per rilevare perdite di gas naturale (composto quasi totalmente da metano) e rilevare anche incendi in cucina o in qualsiasi altro luogo della casa. Ricorda che, se necessario, puoi aumentare la soglia di sensibilità del sensore agendo sul potenziometro che è sul modulo. Tieni inoltre presente che le soglie di allarme da determinare sperimentalmente (e separatamente) sono sia quella per il gas che quella per il fumo, e saranno in generale diverse. Scegli quindi la minore delle due.

La soglia dell’allarme per il fumo sarà in generale diversa da quella per il metano.

In questo modo, quando c’è presenza di un gas infiammabile o di fumo la luce rossa si illumina e il cicalino inizia a emettere un segnale acustico continuo (si può anche modificare il codice di Arduino in modo da renderlo intermittente, per essere meglio percepibile). Quando non c’è presenza di un gas infiammabile, il led e il buzzer sono spenti. Un progetto più sofisticato potrebbe prevedere l’aggiunta di un sensore di fiamma, anche se lo sviluppo di fiamme è all’inizio più localizzato rispetto al fumo.

Alcune possibili migliorìe al progetto illustrato

Se vuoi aggiungere un sensore di fiamma al tuo progetto (e anche un led verde per indicare che non c’è pericolo) scarica il nuovo sketch da qui. Un rilevatore di fiamma è un sensore progettato per rilevare e rispondere alla presenza di una fiamma o di un incendio, consentendo il rilevamento della fiamma. Un rilevatore di fiamma può spesso rispondere più rapidamente e con maggiore precisione rispetto a un rivelatore di fumo o di calore grazie ai meccanismi che utilizza per rilevare la fiamma.

I rilevatori di fiamma a infrarossi funzionano utilizzando una banda a infrarossi. Una piccola termocamera contenuta in questi rivelatori è in grado di rilevare istantaneamente la presenza di gas caldi rilasciati ovunque vicino al rilevatore a infrarossi. Esistono anche versioni low cost di questi sensori che usano un diodo a infrarossi (IR), e che possiamo aggiungere al nostro progetto. Nota che le onde a infrarossi possono penetrare polvere, fumo, particelle di carburante e film d’olio.

Un esempio di sensore IR rivelatore di fiamma. Ne trovi diversi qui.

Se vuoi aggiungere il sensore di fiamma e usare il nuovo sketch fornito, in questo progetto l’MQ-2 e il sensore di fiamma raccolgono contemporaneamente i dati dall’ambiente e poi li trasferiscono sulla scheda Arduino sotto forma di ingressi analogici. La scheda Arduino verifica poi se i valori inviati dai sensori sono inferiori o superiori a quelli del valore mantenuto costante nella memoria. Se il valore è superiore o inferiore al valore di soglia, l’Arduino agisce conseguentemente.

Quando c’è presenza di un gas infiammabile o fumo la luce rossa si illumina e il cicalino emette un segnale acustico. Quando non c’è presenza di un gas infiammabile, il led verde si illumina. Per implementare questo progetto migliorato, i pin devono essere collegati come segue:

  • Sensore MQ2 A0-A0
  • GND -GND
  • Vcc-5 V
  • Sensore di fiamma analogico -A1
  • Vcc-5 V
  • GND-GND
  • Led verde – pin digitale 11
  • Led rosso – pin digitale 12
  • Buzzer – pin digitale 10
  • GND di buzzer e led – GND di Arduino

Un’altra possibile variante del nostro progetto di base consiste nell’aggiunta di un modulo gateway SMS per recapitare all’utente, attraverso di esso, un messaggio SMS di avviso utenti ogni volta che i parametri / dati di input mostrano che esiste una perdita di gas o del fumo nell’aria. Pertanto, in questa implementazione del progetto, sono necessari 4 componenti: il/i sensore/i rilevatore di gas/fumo, Arduino, un buzzer e il modulo gateway SMS. La relativa architettura è mostrata in figura.

Schema dell’hardware dell’allarme di gas/fumo acustico e via SMS.

Il modulo gateway SMS che potete usare è il SIM900, una soluzione GSM / GPRS Quadband completa che può essere utilizzata in qualsiasi applicazione. SIM900 esegue GSM / GPRS 850/900/1800 / 1900MHz per voce, SMS, dati e fax in un piccolo fattore di forma e con basso consumo di energia. E per la Shield Arduino è una scheda che può essere inserita sopra il PCB di Arduino ampliandone le sue capacità. Vi suggerisco di aggiungere la notifica all’utente ogni volta che il saldo residuo è insufficiente.

Si consiglia di utilizzare un piano prepagato o un piano con SMS illimitati a scopo di test. Altrimenti, se qualcosa va storto, potresti dover pagare una grossa fattura per centinaia di messaggi SMS inviati per errore. Noi abbiamo utilizzato un piano prepagato con SMS illimitati. Lo Shield utilizza la dimensione della carta SIM originale, non micro o nano. Se si dispone di una SIM micro o nano, è possibile prendere in considerazione l’acquisto di un adattatore per dimensioni della scheda SIM.

Il modulo gateway Sms SIM900. Lo puoi trovare ad es. qui.