AIR QUALITY MONITORING SYSTEM
Realtime Air Quality Monitoring Based on ESP32 IoT
LIVE
00:00:00
DATABASE OFFLINE โ€” Tidak dapat terhubung ke server. Periksa koneksi atau endpoint get_data.php.
CO Level
--
ppm
0โ€“50 ppmโ€” Stable
CO2 Level
--
ppm
400โ€“2000โ€” Stable
PM2.5 Dust
--
ยตg/mยณ
0โ€“150โ€” Stable
Temperature
--
ยฐC
0โ€“50 ยฐCโ€” Stable
Humidity
--
%
0โ€“100 %โ€” Stable
Air Quality
--
LED Indicator
SAFE
Normal air quality
OFF
WARNING
Elevated pollutants
OFF
DANGER
Hazardous โ€” alarm!
OFF
Last Update
--
Record ID
--
Device
โณ Connecting
Database
โณ Checking
Refresh
๐Ÿ”„ 5s Auto
Realtime 5-Sensor Overview
CO ยท CO2 ยท PM2.5 ยท Temperature ยท Humidity โ€” Riwayat 20 data terakhir
CO
CO2/100
PM2.5
Temp
Hum
LIVE
CO Carbon Monoxide
--
ppm ยท MQ7 Sensor
Min: -- Max: -- Avg: --
CO2 Carbon Dioxide
--
ppm ยท MQ135 Sensor
Min: -- Max: -- Avg: --
PM2.5 Fine Particles
--
ยตg/mยณ ยท Dust Sensor
Min: -- Max: -- Avg: --
Temperature
--
ยฐC ยท DHT11 Sensor
Min: -- Max: -- Avg: --
Humidity
--
% ยท DHT11 Sensor
Min: -- Max: -- Avg: --
Sensor Trend Chart
Pilih sensor dan rentang waktu
Minimum
โ€”
Maximum
โ€”
Average
โ€”
Trend
โ€”
No Waktu CO (ppm) CO2 (ppm) PM2.5 (ยตg/mยณ) Suhu (ยฐC) Kelembapan (%) Status
Memuat data dari database...
โ€”
๐Ÿ“„
Export PDF

Formatted report dengan tabel data sensor.

๐Ÿ“Š
Export Excel

Spreadsheet dengan seluruh kolom data.

๐Ÿ—‚๏ธ
Export CSV

Raw CSV untuk keperluan data processing.

๐Ÿ“ก PHP API Endpoint
<?php
// get_data.php  โ€” letakkan di public_html Hostinger
header("Content-Type: application/json");
header("Access-Control-Allow-Origin: *");
$conn = new mysqli("localhost","your_user","your_pass","your_db");
$limit = isset($_GET['limit']) ? intval($_GET['limit']) : 1;
$range = isset($_GET['range']) ? $_GET['range'] : '';

if($range === '1h')  $where = "WHERE waktu >= NOW() - INTERVAL 1 HOUR";
elseif($range === '24h') $where = "WHERE waktu >= NOW() - INTERVAL 24 HOUR";
elseif($range === '7d')  $where = "WHERE waktu >= NOW() - INTERVAL 7 DAY";
elseif($range === '30d') $where = "WHERE waktu >= NOW() - INTERVAL 30 DAY";
else $where = "";

$sql = "SELECT * FROM data_sensor $where ORDER BY waktu DESC LIMIT $limit";
$res = $conn->query($sql);
$rows = [];
while($r = $res->fetch_assoc()) $rows[] = $r;

// Jika limit=1 kembalikan single object, selain itu array
if($limit === 1 && count($rows) === 1) echo json_encode($rows[0]);
else echo json_encode(["status"=>"ok","data"=>$rows]);
$conn->close();
?>
๐Ÿš€ System Identity
๐ŸŒฌ๏ธ
Air Quality Monitoring System
IoT-Based Realtime Environmental Monitor
ESP32MySQLPHP REST API Bootstrap 5ApexChartsFetch API
๐Ÿ“‹ MySQL Schema
CREATE TABLE data_sensor (
  id          INT AUTO_INCREMENT PRIMARY KEY,
  co          FLOAT NOT NULL,
  co2         FLOAT NOT NULL,
  pm          FLOAT NOT NULL,
  suhu        FLOAT NOT NULL,
  kelembapan  FLOAT NOT NULL,
  waktu       DATETIME NOT NULL,
  status      ENUM('SAFE','WARNING','DANGER')
);
๐Ÿ”ง Hardware Components
ESP32 DevKit V1Main Microcontroller
MQ7 SensorCO Detection (ppm)
MQ135 SensorCO2 / Air Quality
Dust Sensor GP2Y1010PM2.5 (ยตg/mยณ)
DHT11 SensorTemperature & Humidity
LCD 20ร—4 I2CLocal Display
BuzzerAudio Alert (DANGER)
LED Indicator (RGB)Green/Yellow/Red
โš™๏ธ Thresholds
๐ŸŸข SAFE
CO<9
COโ‚‚<800
PM2.5<35
๐ŸŸก WARNING
CO 9โ€“35
COโ‚‚ 800โ€“1500
PM2.5 35โ€“75
๐Ÿ”ด DANGER
CO>35
COโ‚‚>1500
PM2.5>75