Database MySQL dirancang untuk menyimpan semua data operasional dan historis dari sistem. Berikut adalah penjelasan untuk tabel-tabel utamanya:
Tabel ini adalah jantung dari penyimpanan data monitoring. Setiap baris mewakili satu kali pembacaan dari semua sensor pada satu perangkat.
| Nama Kolom | Tipe Data | Deskripsi |
|---|---|---|
| `device_id` | VARCHAR | ID unik dari perangkat ESP32 yang mengirim data. |
| `timestamp` | TIMESTAMP | Waktu kapan data ini dicatat oleh server. |
| `temperature` | FLOAT | Nilai suhu udara dalam Celcius. |
| `humidity` | FLOAT | Nilai kelembaban udara dalam %. |
| `soil_moisture` | FLOAT | Nilai kelembaban tanah dalam %. |
Mencatat setiap kali pompa diaktifkan, baik secara otomatis oleh sistem maupun manual oleh pengguna.
| Nama Kolom | Tipe Data | Deskripsi |
|---|---|---|
| `device_id` | VARCHAR | ID perangkat yang pompanya aktif. |
| `trigger_reason` | VARCHAR | Alasan mengapa pompa diaktifkan (misal: "High Temperature"). |
| `duration_ms` | INT | Lama waktu pompa aktif dalam milidetik. |
| `completed` | BOOLEAN | Status apakah aksi sudah selesai. |
Menyimpan semua notifikasi peringatan atau darurat yang dihasilkan oleh sistem.
| Nama Kolom | Tipe Data | Deskripsi |
|---|---|---|
| `device_id` | VARCHAR | ID perangkat yang menghasilkan peringatan. |
| `alert_message` | VARCHAR | Pesan peringatan yang dikirim. |
| `alert_type` | ENUM | Tipe peringatan (misal: 'EMERGENCY', 'WARNING'). |
| `sensor_data` | JSON | Data sensor saat peringatan terjadi, disimpan sebagai JSON. |
Diagram berikut mengilustrasikan hubungan antar tabel utama dalam database.
[device_status] 1--* [sensor_data]
| |
`--* [pump_activity]
| |
`--* [alerts]
| |
`--* [device_heartbeat]
Keterangan: Satu baris di `device_status` (mewakili satu perangkat) dapat memiliki banyak (`*`) catatan di tabel `sensor_data`, `pump_activity`, dan `alerts`.