Cara Menggunakan Sensor Gas MQ135 Di ESP32

Cara Menggunakan Sensor Gas MQ135 Di ESP32

Sensor gas MQ-135 adalah sensor yang dirancang untuk mendeteksi berbagai jenis gas berbahaya di udara. Sensor ini sering digunakan dalam sistem monitoring kualitas udara karena kemampuannya mendeteksi beberapa gas beracun sekaligus.

Berikut ini adalah cara menggunakan sensor gas mq135 dengan mudah :

Untuk code bisa gunakan di bawah ini :

#include <Arduino.h>


const int port_gas_mq135 = A0;


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


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

}
void loop(){
float gas_mq135 = (analogRead(port_gas_mq135));
Serial.println("GAS MQ135 : " + (String)gas_mq135);


}



Ini adalah penjelas code di atas :

Bagian 1: Library

#include <Arduino.h>
  • Ini adalah library dasar Arduino. Baris ini diperlukan saat menggunakan platform seperti PlatformIO, tapi jika kamu memakai Arduino IDE biasa, bisa diabaikan.

Bagian 2: Deklarasi Pin

const int port_gas_mq135 = A0;
  • Menentukan bahwa sensor MQ-135 dihubungkan ke pin analog A0.

Bagian 3: Fungsi Konversi Sensor ke ppm

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

Penjelasan:

  • Fungsi ini mengonversi nilai ADC (0–1023) dari sensor ke estimasi konsentrasi gas dalam ppm, khususnya untuk amonia (NH₃).
  • RsRo adalah rasio resistansi gas terhadap resistansi referensi (Ro). Perhitungan ini mengacu pada karakteristik sensor MQ-135.
  • Rumus konversi:
    • Nilai Rs/Ro dihitung dari data sensor.
    • Lalu dikonversi menjadi ppm menggunakan persamaan empiris (hasil kalibrasi dari datasheet).
    • 1.0955 * pow(10, 1.3993 * RsRo) adalah model matematis berbasis logaritmik untuk gas NH₃ (perlu kalibrasi agar akurat).

⚠️ Catatan: Tanpa kalibrasi nilai Ro, hasil ini hanya estimasi kasar.


Bagian 4: Setup Awal

void setup() {
    Serial.begin(9600);
    pinMode(port_gas_mq135, INPUT);
}
  • Menginisialisasi komunikasi serial dengan baud rate 9600 (untuk tampilkan data ke Serial Monitor).
  • Menentukan pin A0 sebagai input (meskipun untuk analogRead ini opsional).

Bagian 5: Loop Utama

void loop() {
    float gas_mq135 = (analogRead(port_gas_mq135));
    Serial.println("GAS MQ135 : " + (String)gas_mq135);
}
  • Membaca data analog dari sensor.
  • Menampilkan nilai ADC ke Serial Monitor.
  • Nilai yang dicetak adalah nilai mentah dari sensor, belum dalam satuan ppm.

Catatan Tambahan

Jika ingin mencetak nilai ppm hasil konversi, kamu bisa ubah bagian loop() seperti ini:

void loop() {
    int sensorValue = analogRead(port_gas_mq135);
    float ppm = konversiKePPM_gas_mq135(sensorValue);

    Serial.print("Nilai ADC: ");
    Serial.print(sensorValue);
    Serial.print(" | Estimasi ppm: ");
    Serial.println(ppm);

    delay(1000); // Baca tiap 1 detik
}

untuk diskusi bisa kontak dibawah ini :

Sosial media :