Monitoring Kualitas Udara dengan ESP8266 dan Sensor MQ-135

Pada tutorial ini kita akan membuat sistem Monitoring Kualitas Udara menggunakan sensor MQ-135. Sistem ini mampu mendeteksi gas dan asap di lingkungan sekitar, kemudian menampilkan hasilnya melalui Web Browser dan LCD 16×2.

ESP8266 akan dijalankan dalam mode Access Point (AP) dan menggunakan Async Web Server, sehingga sistem dapat diakses langsung dari HP atau laptop tanpa koneksi internet dan tanpa router.

Alat dan Bahan

Nama KomponenGambar Komponen
NodeMcu esp8266
Sensor kualitas udara MQ 135
LCD 16×2 I2C
Kabel Jumper
Breadboard

Gambar Rangkaian

NodeMcu esp8266MQ135
pin A0Aout
vin / vuVCC
GNDGND
NodeMcu esp8266LCD I2C
Pin D5SCL
Pin D6SDA
GNDGND
vin / vuVCC

Library yang Digunakan

Pastikan library-library ini sudah terinstal

  • ESP8266WiFi.h
  • ESPAsyncWebServer.h
  • ESPAsyncTCP.h
  • LiquidCrystal_I2C.h

Code

#include <ESP8266WiFi.h>
#include <ESPAsyncTCP.h>
#include <ESPAsyncWebServer.h>
#include <LiquidCrystal_I2C.h>

#define MQ_PIN A0

LiquidCrystal_I2C lcd(0x27, 16, 2);

const char* ssid = "AirQuality_AP";
const char* password = "12345678";

AsyncWebServer server(80);

int airValue = 0;
String airStatus = "";

String htmlPage() {
  String html = "";
  html += "<!DOCTYPE html><html><head>";
  html += "<meta name='viewport' content='width=device-width, initial-scale=1'>";
  html += "<title>Air Quality Monitor</title>";
  html += "</head><body>";
  html += "<h1>Monitoring Kualitas Udara</h1>";
  html += "<p>Nilai Sensor: " + String(airValue) + "</p>";
  html += "<p>Status Udara: " + airStatus + "</p>";
  html += "</body></html>";
  return html;
}

void setup() {
  lcd.init();
  lcd.backlight();

  pinMode(MQ_PIN, INPUT);

  WiFi.mode(WIFI_AP);
  WiFi.softAP(ssid, password);

  server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){
    request->send(200, "text/html", htmlPage());
  });

  server.begin();
}

void loop() {
  airValue = analogRead(MQ_PIN);

  if (airValue < 300) {
    airStatus = "Baik";
  } else if (airValue >= 300 && airValue < 600) {
    airStatus = "Sedang";
  } else {
    airStatus = "Buruk";
  }

  lcd.setCursor(0, 0);
  lcd.print("Air Value:    ");
  lcd.setCursor(11, 0);
  lcd.print(airValue);

  lcd.setCursor(0, 1);
  lcd.print("Status:      ");
  lcd.setCursor(8, 1);
  lcd.print(airStatus);

  delay(2000);
}

Cara Penggunaan Alat

  1. Rangkai sensor MQ dan LCD 16×2 sesuai dengan tabel koneksi yang telah dijelaskan.
  2. Hubungkan ESP8266 ke komputer dan unggah program menggunakan Arduino IDE hingga proses selesai tanpa error.
  3. Nyalakan ESP8266 dan pastikan modul mendapatkan sumber daya yang stabil.
  4. Aktifkan WiFi pada HP atau laptop, lalu hubungkan ke jaringan AirQuality_AP.
  5. Buka browser dan akses alamat IP 192.168.4.1.
  6. Amati nilai kualitas udara yang ditampilkan pada halaman web dan LCD.