Cara Menggunakan Sensor Gas MQ-2 Dengan ESP32

Cara Menggunakan Sensor Gas MQ-2 Dengan ESP32

Sensor gas MQ‑2 adalah sensor semikonduktor oksida logam (SnO₂) yang dirancang untuk mendeteksi berbagai jenis gas mudah terbakar maupun asap, seperti LPG, propana, metana, hidrogen, alkohol, karbon monoksida, serta asap rokok.

Berikut adalah cara memprogram sensor gas mq-2 dengan esp32 :

#include <Arduino.h>


const int port_gas_mq2 = A0;


float konversiKePPM_gas_mq2(int sensorValue) {
float RsRo = (1023.0 / sensorValue) - 1.0;
float ppm = 1.0955 * pow(10, 1.3993 * RsRo);
return ppm;
}


void setup()
{
Serial.begin(9600);
pinMode(port_gas_mq2, INPUT);

}
void loop(){
float gas_mq2 = konversiKePPM_gas_mq2(analogRead(port_gas_mq2));
Serial.println("GAS MQ2 : " + (String)gas_mq2);


}


Dibawah ini adalah penjelasan kode di atas :

Bagian 1: Import dan Inisialisasi

#include <Arduino.h>
  • Ini adalah pustaka utama Arduino (biasanya otomatis di-include di IDE Arduino).
  • Digunakan untuk fungsi dasar seperti pinMode, analogRead, Serial, dll.
const int port_gas_mq2 = A0;
  • Mendefinisikan pin analog A0 sebagai input dari sensor MQ-2.
  • const artinya nilainya tetap (tidak bisa diubah).

Bagian 2: Fungsi Konversi Analog ke PPM

float konversiKePPM_gas_mq2(int sensorValue) {
    float RsRo = (1023.0 / sensorValue) - 1.0;
    float ppm = 1.0955 * pow(10, 1.3993 * RsRo);
    return ppm;
}

Penjelasan:

  • sensorValue: Nilai ADC dari analogRead(), rentangnya 0–1023.
  • RsRo: Rasio resistansi sensor gas saat ini (Rs) terhadap resistansi referensi (Ro). Formula ini biasanya dipakai dalam sensor gas untuk menghitung rasio perubahan konduktivitas. RsRo=(1023sensorValue)−1RsRo = \left( \frac{1023}{sensorValue} \right) – 1
  • ppm: Menggunakan model persamaan eksponensial untuk mengkonversi nilai Rs/Ro ke nilai PPM (Parts Per Million). ppm=1.0955×10(1.3993×RsRo)ppm = 1.0955 \times 10^{(1.3993 \times RsRo)}

Catatan: Persamaan ini biasanya berdasarkan data kurva karakteristik sensor MQ-2 dari datasheet. Tetapi bisa bervariasi tergantung gas dan kalibrasi.


Bagian 3: setup() – Inisialisasi Awal

void setup()
{
    Serial.begin(9600);
    pinMode(port_gas_mq2, INPUT);
}
  • Serial.begin(9600): Mengaktifkan komunikasi serial pada baudrate 9600.
  • pinMode(..., INPUT): Menentukan bahwa pin A0 akan digunakan untuk input (baca dari sensor).

Bagian 4: loop() – Fungsi Utama Berulang

void loop(){
    float gas_mq2 = konversiKePPM_gas_mq2(analogRead(port_gas_mq2));
    Serial.println("GAS MQ2 : " + (String)gas_mq2);
}

Penjelasan:

  1. analogRead(port_gas_mq2):
    • Membaca sinyal analog dari sensor MQ-2 (nilai 0–1023).
  2. konversiKePPM_gas_mq2(...):
    • Mengubah nilai analog menjadi estimasi konsentrasi gas dalam PPM.
  3. Serial.println(...):
    • Menampilkan hasil ke monitor serial seperti: GAS MQ2 : 351.4

Ringkasan Sederhana:

Kode ini:

  • Membaca data dari sensor gas MQ-2.
  • Mengubah data analog menjadi estimasi konsentrasi gas dalam satuan PPM.
  • Menampilkan hasilnya melalui serial monitor.

Catatan Penting:

  • Tidak semua sensor MQ-2 akan memberikan hasil akurat dengan rumus ini. Kalibrasi (Ro) biasanya perlu ditentukan berdasarkan lingkungan bersih (tanpa gas).
  • Nilai 1.0955 dan 1.3993 bisa berbeda tergantung dari jenis gas yang diukur (LPG, CH₄, H₂, CO, dsb).

untuk diskusi bisa kontak dibawah ini :

Sosial media :

Apa itu ESP32?