Dokumentasi
API Gateway.
Semua endpoint mengembalikan JSON. Autentikasi perangkat menggunakan API key yang dikirim di dalam body request.
/api/sensor-data
1. Kirim Data Sensor
Dipanggil oleh gateway setiap kali ada pembacaan baru. Server akan mengklasifikasikan status secara otomatis berdasarkan nilai MQ-135.
Body (JSON)
Cukup api_key. Tidak ada device_id dan tidak ada menu — keduanya diambil dari data perangkat yang tersimpan di website.
api_key boleh dikirim lewat body JSON, form-urlencoded, query string (?api_key=…), atau header X-API-Key / Authorization: Bearer …. Semuanya diterima.
Parameter
| Field | Tipe | Wajib | Keterangan |
|---|---|---|---|
| api_key | string | Ya | API key perangkat — satu-satunya kredensial |
| temperature | number | Ya | Suhu dalam °C (−50…100) |
| humidity | number | Ya | Kelembaban dalam % (0…100) |
| mq135 | number | Ya | Kadar gas dalam ppm (0…10000) |
Respons sukses
menu dan device_name SELALU berasal dari pengaturan perangkat di website. Bila firmware lama masih mengirim menu / device_id / device_name, nilainya diabaikan dan nama field-nya dilaporkan di ignored — sehingga data yang tersimpan dan yang dikembalikan selalu konsisten.
/api/sensor-logs
2. Ambil Riwayat
Mengembalikan daftar pembacaan terbaru. Mendukung filter menu, status, dan pembatasan jumlah baris.
Query parameter
| Parameter | Default | Keterangan |
|---|---|---|
| limit | 50 | Jumlah baris (maks 500) |
| menu | — | Filter nama menu |
| status | — | Aman / Terkontaminasi / Bahaya |
Contoh
/api/sensor-data
3. Pembacaan Terakhir
Mengembalikan satu pembacaan terbaru beserta ringkasan statistik. Berguna untuk widget atau integrasi eksternal.
4. Firmware ESP8266
Contoh sketch minimal. Ganti kredensial WiFi dan API key sebelum mengunggah.
5. Kalibrasi Sensor
MQ-135 memerlukan pemanasan awal (burn-in) sebelum pembacaan stabil.
Jam pemanasan awal
Biarkan sensor menyala terus selama 24 jam pertama di udara bersih.
Ukur resistansi baseline
Catat nilai Rs di udara bersih, hitung R0 = Rs / 3,6.
Kalibrasi berkala
Ulangi setiap 30 hari atau setelah sensor dipindahkan.
6. Kode Error
| Status | Kode | Arti |
|---|---|---|
| 400 | missing_api_key | Field api_key tidak dikirim (respons memuat field dan missing) |
| 400 | invalid_payload | Field wajib tidak lengkap atau tipe salah — missing menyebut field yang benar-benar kurang |
| 401 | invalid_api_key | API key tidak dikenali |
| 422 | out_of_range | Nilai sensor di luar rentang wajar |
| 403 | device_inactive | Perangkat dinonaktifkan |
| 429 | rate_limited | Terlalu banyak request per menit |
| 500 | server_error | Kesalahan internal server |