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 Komponen | Gambar Komponen |
|---|---|
| NodeMcu esp8266 | ![]() |
| Sensor kualitas udara MQ 135 | ![]() |
| LCD 16×2 I2C | ![]() |
| Kabel Jumper | ![]() |
| Breadboard | ![]() |
Gambar Rangkaian

| NodeMcu esp8266 | MQ135 |
|---|---|
| pin A0 | Aout |
| vin / vu | VCC |
| GND | GND |
| NodeMcu esp8266 | LCD I2C |
|---|---|
| Pin D5 | SCL |
| Pin D6 | SDA |
| GND | GND |
| vin / vu | VCC |
Library yang Digunakan
Pastikan library-library ini sudah terinstal
ESP8266WiFi.hESPAsyncWebServer.hESPAsyncTCP.hLiquidCrystal_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
- Rangkai sensor MQ dan LCD 16×2 sesuai dengan tabel koneksi yang telah dijelaskan.
- Hubungkan ESP8266 ke komputer dan unggah program menggunakan Arduino IDE hingga proses selesai tanpa error.
- Nyalakan ESP8266 dan pastikan modul mendapatkan sumber daya yang stabil.
- Aktifkan WiFi pada HP atau laptop, lalu hubungkan ke jaringan AirQuality_AP.
- Buka browser dan akses alamat IP
192.168.4.1. - Amati nilai kualitas udara yang ditampilkan pada halaman web dan LCD.





