Skip to Content

Come usare il sensore di gas metano MQ-4 con Arduino

Come usare il sensore di gas metano MQ-4 con Arduino

In questo tutorial impareremo come utilizzare il sensore di gas metano MQ-4 con Arduino per costruire un sistema di allarme per il rilevamento del gas. Questo sistema utilizzerà un LED e un buzzer per avvisarci quando viene rilevato gas metano nell’ambiente.

I sensori di gas sono essenziali in varie applicazioni, tra cui ambienti industriali, sicurezza domestica e monitoraggio ambientale. Il sensore di gas MQ-4 è progettato specificamente per rilevare il gas metano, rendendolo ideale per applicazioni in cui è necessario monitorare eventuali perdite di metano.

Per creare il nostro sistema di allarme per il rilevamento del gas, collegheremo il sensore MQ-4 a una scheda Arduino e lo programmeremo per attivare il LED e il buzzer quando viene rilevato gas metano. Iniziamo raccogliendo i componenti necessari per questo progetto.

Componenti necessari

Makerguides is a participant in affiliate advertising programs designed to provide a means for sites to earn advertising fees by linking to Amazon, AliExpress, Elecrow, and other sites. As an Affiliate we may earn from qualifying purchases.

Di seguito trovi i componenti necessari per questo progetto. Se hai già un set di resistori e qualche LED, non avrai bisogno del kit suggerito. Per questo progetto specifico serve solo un singolo LED rosso e un resistore da 220 Ohm.

Arduino Uno

Dupont wire set

Set di fili Dupont

Half_breadboard56a

Breadboard

USB Data Sync cable Arduino

Cavo USB per Arduino UNO

Kit resistori & LED

Buzzer passivo

Sensore di gas MQ-4

Introduzione al sensore di gas MQ-4

Il sensore di gas MQ-4 è un sensore molto diffuso per il rilevamento del gas metano. Viene comunemente usato nei sistemi di rilevamento perdite di gas e può anche rilevare alcol, fumi di cucina e fumo di sigaretta. È molto facile da usare e si integra perfettamente con le schede Arduino per vari progetti.

Caratteristiche del sensore di gas MQ-4

Il sensore di gas MQ-4 presenta le seguenti caratteristiche:

  • Tensione di funzionamento: Il sensore opera in un intervallo di tensione da 5V a 24V DC.
  • Tensione del riscaldatore: Richiede una tensione del riscaldatore di 5V ±0,2V.
  • Resistenza del riscaldatore: Il sensore ha una resistenza del riscaldatore di 31Ω ±3Ω.
  • Consumo energetico: Basso consumo energetico (100mA)
  • Sensibilità: Il sensore MQ-4 ha un’alta sensibilità al gas metano (CH4), rendendolo adatto per rilevare perdite di gas naturale.
  • Intervallo di rilevamento: Il sensore ha un intervallo di rilevamento da 300 a 10.000 ppm (parti per milione) per il gas metano.
  • Tempo di riscaldamento: Richiede un tempo di riscaldamento di circa 48 ore prima di fornire letture accurate.
  • Tempo di risposta: Il tempo di risposta del sensore è inferiore a 10 secondi.
  • Tempo di recupero: Il tempo di recupero del sensore è inferiore a 30 secondi.
  • Temperatura di funzionamento: Il sensore può operare in un intervallo di temperatura da -10°C a 50°C.
  • Dimensioni: Il modulo sensore MQ-4 ha dimensioni di circa 32mm x 20mm x 22mm.
  • Interfaccia: Può essere facilmente collegato a microcontrollori o schede di sviluppo usando pin analogici o digitali.

Si noti che queste specifiche possono variare leggermente a seconda del produttore o del modello specifico del sensore MQ-4.

Funzionamento interno del sensore di gas MQ-4

In questa sezione diamo uno sguardo rapido al funzionamento interno del sensore MQ-4. Al centro del sensore c’è lo strato sensibile al gas composto da un ossido metallico (SnO2). Quando il gas metano entra in contatto con questo strato, reagisce con l’ossigeno presente sulla superficie dello SnO2. Questo provoca una variazione della resistenza del materiale. Misuriamo questa variazione per rilevare la presenza e la concentrazione del gas.

Le immagini sottostanti sono tratte dal MQ-4 Datasheet sensore e mostrano i suoi componenti e il circuito interno.

Avvolto attorno allo strato sensibile (1) c’è una bobina riscaldante (4). Questo è un componente importante perché lo strato di SnO2 deve essere riscaldato affinché avvenga la reazione chimica con il metano. Per questo motivo si percepisce che il sensore si riscalda.

A protezione di questi componenti c’è il tubo ceramico (5). Protegge fisicamente lo strato sensibile e la bobina riscaldante. Aiuta anche a mantenere una temperatura stabile all’interno del sensore fornendo un certo isolamento termico.

Infine, ci sono gli elettrodi (2, 3), realizzati in oro (Au) e platino (Pt). Questi sono collegati allo strato sensibile. Gli elettrodi misurano le variazioni di resistenza dello strato sensibile.

Caratteristiche di sensibilità del sensore di gas MQ-4

Il sensore MQ-4 è progettato principalmente per rilevare il metano (CH4). Tuttavia, ha diversi livelli di sensibilità anche a una gamma di altri gas, tra cui GPL (gas di petrolio liquefatto), idrogeno (H2), monossido di carbonio (CO), alcol e fumo. La sensibilità del sensore si riferisce al rapporto tra la resistenza del sensore in vari gas e la resistenza del sensore in aria pulita. Il grafico seguente mostra le caratteristiche di sensibilità per questi gas.

Per il metano, si può vedere che il MQ-4 ha un’eccellente sensibilità. Questo significa che possiamo rilevare e misurare con precisione le variazioni di concentrazione di metano nell’atmosfera. Anche piccole variazioni nella quantità di metano causano cambiamenti evidenti nella resistenza del sensore.

Per GPL e idrogeno, il sensore MQ-4 mostra una sensibilità abbastanza alta, anche se non così elevata come per il metano. Questo significa che, pur potendo rilevare questi gas, le letture potrebbero non essere altrettanto accurate o reattive come per il metano.

Infine, il sensore MQ-4 ha una sensibilità inferiore al monossido di carbonio, all’alcol e al fumo. Ciò significa che, sebbene il sensore reagisca a questi gas, le variazioni di resistenza saranno più piccole.

Dipendenza da umidità e temperatura del sensore di gas MQ-4

Si noti che l’accuratezza del sensore MQ-4 è influenzata non solo dalla presenza dei gas target, ma anche da fattori ambientali come umidità e temperatura. Il grafico seguente mostra la variazione della resistenza in funzione della temperatura e dell’umidità ambientale:

L’umidità può influenzare le prestazioni del sensore, principalmente perché il vapore acqueo può occupare i siti attivi sullo strato sensibile di biossido di stagno (SnO2) dove avvengono le reazioni di rilevamento del gas. A livelli elevati di umidità, la sensibilità del sensore al metano diminuisce, il che può portare a letture meno accurate.

La temperatura è un altro fattore importante nell’uso del sensore MQ-4. Il sensore MQ-4 include un riscaldatore integrato per mantenere la temperatura necessaria allo strato sensibile di SnO2. Tuttavia, la temperatura ambientale può comunque influenzare le letture del sensore.

Per letture accurate e stabili, si potrebbe considerare una combinazione del sensore MQ-4 con un sensore di temperatura e umidità. Inoltre, ricordate che il MQ-4 necessita di un riscaldamento (ricordate l’elemento riscaldante) di almeno 20 secondi prima che le sue letture diventino stabili e affidabili.

Altri sensori della serie MQ

Il sensore di gas MQ-4 è solo uno dei molti sensori disponibili nella serie MQ. Ogni sensore della serie è progettato per rilevare un gas specifico. Di seguito trovate un confronto tra il sensore MQ-4 e altri sensori MQ comunemente usati:

  1. Sensore di gas MQ-2: Progettato per rilevare più gas, tra cui metano, propano, butano e alcol. Ha un intervallo di rilevamento più ampio rispetto al MQ-4, rendendolo adatto per applicazioni in cui è necessario rilevare più gas.
  2. Sensore di gas MQ-5: Progettato specificamente per rilevare gas naturale e GPL (gas di petrolio liquefatto). Ha una sensibilità maggiore a questi gas rispetto al MQ-4, rendendolo ideale per sistemi di rilevamento perdite di gas.
  3. Sensore di gas MQ-6: Progettato per rilevare GPL, butano e propano. Ha una sensibilità simile al metano come il MQ-4, ma è più focalizzato sul rilevamento di questi gas specifici.
  4. Sensore di gas MQ-9: Progettato per rilevare monossido di carbonio, gas infiammabili e fumo. Ha un intervallo di rilevamento più ampio rispetto al MQ-4 ed è comunemente usato nei sistemi di rilevamento incendi.

Nota che abbiamo un tutorial per un Air Pollution Monitoring and Alert System Using MQ-135 e un altro tutorial su MQ3 Sensor & Arduino: Building An Alcohol Detector.

Pinout del sensore di gas MQ-4

Un modulo sensore MQ-4 tipicamente disponibile è mostrato nell’immagine sottostante. Di solito ha 4 pin: A0, D0, VCC e GND.

Pinout of MQ-4 Gas Sensor
Pinout del MQ-4

Ecco il riepilogo dei pin del modulo sensore di gas metano.

Nomi dei pin Descrizione dei pin Note
VCC Alimentazione positiva 5 V è la tensione di alimentazione consigliata
A0 Uscita analogica Collegare questo pin a un ingresso analogico dell’Arduino
D0 Uscita digitale Collegare a qualsiasi pin GPIO dell’Arduino
GND Massa  

Sul retro del modulo si trova un trimmer per regolare la sensibilità del rilevamento. C’è anche un LED di alimentazione (rosso) che si accende quando il modulo è alimentato e un LED di rilevamento (verde) che si accende quando viene rilevato gas.

Backside of MQ-4 gas sensor module
Retro del modulo sensore di gas MQ-4

Test del sensore di gas MQ-4

Puoi facilmente testare il funzionamento del modulo senza Arduino. Collega VCC e GND a un’alimentazione da 5V e il LED rosso di alimentazione sul retro del modulo dovrebbe accendersi. Ora aspetta qualche secondo (per letture stabili >20 secondi). Noterai che il modulo sensore si riscalda leggermente. Questo è normale. All’interno c’è un elemento riscaldante necessario per il funzionamento del sensore.

Testing the MQ-4 gas sensor
Test del sensore di gas MQ-4

Se ora avvicini un accendino e premi il pulsante per far uscire il gas ( non accenderlo! ), il LED verde di rilevamento sul retro dovrebbe accendersi. In caso contrario, regola il trimmer sul retro del modulo.

Nella sezione successiva vedremo come collegare il sensore MQ-4 con Arduino e scrivere il codice necessario per iniziare a rilevare il gas metano.

Collegamento dei componenti

In questa sezione colleghiamo tutti i componenti. Iniziamo collegando l’alimentazione alla breadboard e da lì al sensore MQ-4 (fili blu e rosso). Assicurati che il 5V sia collegato al VCC del MQ-4. Poi colleghiamo l’uscita analogica dati (A0) del MQ-4 con un filo giallo al Pin A0 (ingresso analogico) dell’Arduino.

Connecting the buzzer, led and MQ-4 to the Arduino
Collegamento del buzzer, LED e MQ-4 all’Arduino

Quando colleghi il buzzer assicurati di collegare il polo positivo (contrassegnato con un debole simbolo (+)) al Pin 3 dell’Arduino (filo viola). L’altro pin va collegato a massa.

Infine il LED. Colleghiamo prima il resistore al pin più lungo del LED (anodo) e poi il resistore al Pin 2 dell’Arduino (filo verde). L’altro pin del LED va collegato a massa.

E questo è tutto. Il cablaggio è completo. Se hai bisogno di più dettagli, dai un’occhiata alla tabella completa dei collegamenti qui sotto.

Da Pin Colore filo A Pin
Arduino 5V Rosso Breadboard Binario positivo
Arduino GND Blu Breadboard Binario negativo
MQ-4 GND Blu Breadboard Binario negativo
MQ-4 VCC Rosso Breadboard Binario positivo
MQ-4 Out/Segnale Giallo Arduino A0
Buzzer Positivo (+) Viola Arduino ~4
Buzzer Negativo (-) Blu Breadboard Binario negativo
Resistore Qualsiasi LED Anodo (pin lungo)
Resistore Qualsiasi altro Verde Arduino ~3
LED Catodo (pin corto) Blu Breadboard Binario negativo

Nella sezione successiva scriveremo il codice per il nostro sistema di rilevamento gas.

Scrivere il codice Arduino

In questa sezione scriveremo il codice per il nostro sistema di allarme per il rilevamento del gas. Vogliamo accendere il LED e attivare il buzzer se i livelli di gas nell’ambiente superano una certa soglia. Di seguito il codice completo e nella sezione successiva ne spiegheremo le parti.

const int ledPin = 2;
const int buzzerPin = 3;
const int sensorPin = A0;
const int threshold = 500;

void alarm_on() {
  digitalWrite(ledPin, HIGH);
  tone(buzzerPin, 5000);
  delay(1000);
  alarm_off();
}

void alarm_off() {
  digitalWrite(ledPin, LOW);
  noTone(buzzerPin);
  delay(500);
}

void setup() {
  Serial.begin(9600);
  pinMode(sensorPin, INPUT);
  pinMode(ledPin, OUTPUT);
  pinMode(buzzerPin, OUTPUT);
}

void loop() {
  int sensorValue = analogRead(sensorPin);
  Serial.print("MQ-4:");
  Serial.println(sensorValue);
  (sensorValue > threshold) ? alarm_on() : alarm_off();
}

Costanti

Iniziamo dichiarando le costanti necessarie.

const int ledPin = 2;
const int buzzerPin = 3;
const int sensorPin = A0;
const int threshold = 500;

Per prima cosa definiamo ledPin, che rappresenta il numero del pin a cui è collegato il LED. buzzerPin è il pin a cui è collegato il buzzer. Poi serve una costante per il sensorPin, dove è collegato il sensore MQ-4. Infine definiamo una threshold che specifica il livello di gas oltre il quale il sistema di allarme si attiva.

Funzioni di allarme

Successivamente definiamo due funzioni: alarm_on() e alarm_off(). Queste funzioni controllano il comportamento del sistema di allarme. La funzione alarm_on() è responsabile di accendere l’allarme.

void alarm_on() {
  digitalWrite(ledPin, HIGH);
  tone(buzzerPin, 5000);
  delay(1000);
  alarm_off();
}

Al suo interno impostiamo prima il pin del LED su HIGH, accendendo il LED. Poi attiviamo il buzzer generando un tono a 5000 Hz. Aspettiamo 1000 ms = 1 s e infine chiamiamo alarm_off() per spegnere l’allarme. Questo produrrà un suono intermittente finché rileviamo livelli elevati di gas.

void alarm_off() {
  digitalWrite(ledPin, LOW);
  noTone(buzzerPin);
  delay(500);
}

Nella funzione alarm_off() impostiamo prima il pin del LED su LOW, spegnendo il LED. Poi fermiamo il buzzer chiamando la funzione noTone(). Infine aspettiamo 500 ms = 0,5 secondi.

Funzione setup

Nella funzione setup() inizializziamo la comunicazione e le modalità IO dei pin. Niente di complicato. Assicurati solo che il pin del sensore sia in modalità INPUT.

void setup() {
  Serial.begin(9600);
  pinMode(sensorPin, INPUT);
  pinMode(ledPin, OUTPUT);
  pinMode(buzzerPin, OUTPUT);
}

Funzione loop

Nella funzione loop() leggiamo continuamente il valore analogico dal sensore MQ-4 e attiviamo l’allarme se il valore supera la soglia.

void loop() {
  int sensorValue = analogRead(sensorPin);
  Serial.print("MQ-4:");
  Serial.println(sensorValue);
  (sensorValue > threshold) ? alarm_on() : alarm_off();
}

La parte interessante è la riga (sensorValue > 500) ? alarm_on() : alarm_off(), dove usiamo un ternary conditional operator per verificare se il valore del sensore è maggiore della threshold. Se sì, viene chiamata la funzione alarm_on() per attivare l’allarme. Altrimenti, viene chiamata la funzione alarm_off() per spegnere l’allarme.

Questo ciclo continua indefinitamente, monitorando costantemente il valore del sensore e attivando l’allarme quando necessario.

Esecuzione del codice

Se apri il Serial Monitor e esegui questo codice, vedrai apparire una riga con l’etichetta “MQ-4”. Quando esponi il sensore MQ-4 al gas metano (ad esempio il gas di un accendino), noterai un improvviso aumento del valore del sensore seguito da una diminuzione più lenta. Vedi l’immagine sotto, dove ho fatto proprio questo.

Serial Plotter output with gas detection peak
Output del Serial Plotter con picco di rilevamento gas

Congratulazioni, ora hai un sistema di allarme per il rilevamento del gas funzionante! Divertiti a sperimentare ; )

Conclusione

In questo tutorial abbiamo imparato come utilizzare il sensore di gas metano MQ-4 con Arduino. Abbiamo iniziato presentando i componenti necessari per questo progetto, che includono una scheda Arduino, il sensore di gas MQ-4, un buzzer, un LED, fili jumper e una breadboard.

Successivamente abbiamo discusso in dettaglio il sensore MQ-4, spiegandone il principio di funzionamento e la capacità di rilevare il gas metano. Abbiamo anche evidenziato alcune delle caratteristiche principali di questo sensore.

Dopodiché siamo passati all’aspetto pratico del progetto e abbiamo spiegato come collegare i componenti tra loro. Abbiamo fornito uno schema di cablaggio chiaro e istruzioni passo-passo per garantire un collegamento corretto tra il sensore MQ-4 e la scheda Arduino.

Una volta completato l’hardware, abbiamo scritto il codice Arduino. Abbiamo spiegato come usare l’ingresso analogico dell’Arduino per leggere i valori del sensore e attivare un allarme quando la concentrazione di gas supera una soglia prefissata.

In conclusione, il sensore di gas metano MQ-4 è uno strumento utile per rilevare perdite di gas metano o monitorare i livelli di metano in varie applicazioni. Seguendo questo tutorial, ora dovresti avere una buona comprensione di come usare questo sensore con Arduino e come interpretare le letture.

Ricorda sempre di prestare attenzione quando lavori con sensori di gas e di garantire una corretta ventilazione nell’ambiente di prova. La sicurezza deve essere una priorità assoluta quando si trattano gas potenzialmente pericolosi.

Speriamo che questo tutorial ti sia stato utile per iniziare con il sensore di gas metano MQ-4. Se hai ulteriori domande o necessiti di assistenza, consulta la sezione Domande Frequenti o contattaci tramite i link forniti.

Buona sperimentazione e stai al sicuro!

Domande Frequenti

Ecco alcune domande comuni sull’uso del sensore di gas metano MQ-4 con Arduino:

D1: Come funziona il sensore di gas MQ-4?

Il sensore di gas MQ-4 funziona sul principio della conducibilità del gas. Contiene un elemento sensibile fatto di biossido di stagno (SnO2) che reagisce con il gas metano. Quando il metano è presente, la conducibilità dell’elemento sensibile aumenta, cosa che può essere misurata dall’Arduino.

D2: Il sensore MQ-4 può rilevare altri gas oltre al metano?

Sebbene il sensore MQ-4 sia progettato principalmente per rilevare il metano, può anche rilevare altri gas infiammabili come propano e butano. Tuttavia, potrebbe non essere altrettanto preciso o sensibile per gas diversi dal metano.

D3: Quanto è preciso il sensore MQ-4?

La precisione del sensore MQ-4 può variare in base a diversi fattori come la calibrazione, le condizioni ambientali e la concentrazione del gas rilevato. Si consiglia di calibrare periodicamente il sensore per una migliore precisione.

D4: Come posso calibrare il sensore MQ-4?

Per calibrare il sensore MQ-4, puoi esporlo a una concentrazione nota di gas metano e regolare il potenziometro di sensibilità finché il sensore non fornisce la risposta desiderata. È importante seguire le linee guida del produttore per la calibrazione.

D5: Posso usare il sensore MQ-4 per applicazioni di sicurezza?

Sebbene il sensore MQ-4 possa rilevare gas infiammabili, non è certificato per applicazioni di sicurezza. È principalmente destinato a scopi educativi, di ricerca e prototipazione. Per applicazioni critiche per la sicurezza, si consiglia di usare sensori certificati che rispettino gli standard richiesti.

D6: Posso usare il sensore MQ-4 con ESP32?

Sì, il sensore MQ-4 può essere usato anche con ESP32. Il cablaggio e il codice saranno simili a quelli usati con Arduino. Tuttavia, assicurati di verificare i livelli di tensione e la compatibilità dei pin tra il sensore e la scheda ESP32.

D7: Posso alimentare il sistema di rilevamento gas con batterie?

È possibile, ma richiede batterie piuttosto grandi e non lo consiglierei. Il sensore MQ-4 consuma circa 100mA e deve riscaldarsi per almeno 30 secondi per fornire letture affidabili. Questo significa che anche se mettiamo l’Arduino in deep-sleep per risparmiare energia e lo svegliamo solo ogni 5 minuti, non possiamo evitare che il MQ-4 consumi la maggior parte dell’energia.

Ricorda di consultare il MQ-4 Gas Sensor Datasheet per informazioni e specifiche più dettagliate.

Link

Di seguito alcuni altri link utili riguardanti il sensore MQ-4 e come usarlo con Arduino.