IoT Water Quality Monitoring & Automated Refill System
Kontrol pengisian galon otomatis, berbasis waktu dan dipantau lewat kualitas air.
PurityFlow mengatur proses pengisian air galon di depot secara otomatis: durasi pengisian konsisten, kualitas air dipantau lewat Gravity Analog TDS Sensor secara real-time, dan data TDS beserta jumlah galon yang sudah terisi dikirim ke backend lewat REST API untuk dipantau lewat web dashboard.
Tujuan Sistem
Kenapa PurityFlow dibuat
Operator depot air butuh alat yang konsisten dan tidak ribet dioperasikan, bukan sekadar timer manual.
- Mengotomatisasi proses pengisian air galon
- Menjaga durasi pengisian tetap konsisten
- Mencegah overfill dan air tumpah
- Menampilkan kualitas air secara real-time
- Mencatat jumlah galon yang sudah diisi
- Kontrol yang sederhana untuk operator depot
Arsitektur Sistem
Susunan hardware
Sistem bekerja berdasarkan waktu, bukan volume, dengan LCD 20x4 sebagai pusat tampilan dan rotary encoder sebagai kontrol utama.
Microcontroller
ESP32 sebagai pusat kontrol seluruh sistem.
Sensor
Gravity Analog TDS Sensor membaca kualitas air dalam satuan ppm. Hasil pembacaan dikalibrasi agar nilai TDS akurat sebelum diproses dan dikirim ke server.
Output
Relay untuk buka tutup aliran, buzzer, LED indikator, dan LCD 20x4.
Input
Rotary encoder untuk navigasi, tombol start, dan tombol reset.
Network
WiFi untuk OTA update firmware dan pengiriman data ke server.
Mode Operasi
Tiga mode kerja terpisah
Dipisah supaya sistem tetap stabil, terutama saat proses pengisian sedang berjalan.
Monitoring
Menampilkan status sistem, nilai TDS, kualitas air, dan total galon terisi dibanding target.
Mengisi
Menjalankan countdown timer dan relay. WiFi dimatikan sementara supaya tidak ada delay selama proses berjalan.
Setting
Atur durasi pengisian dan target galon. Putar encoder untuk ubah nilai, tahan 3 detik untuk simpan.
Simulasi
Coba dashboard-nya
Ini simulasi ringan di browser yang meniru tampilan LCD dan alur kerja controller aslinya. Data tersimpan di perangkat kamu sendiri, seperti EEPROM pada alat fisiknya.
Riwayat Pengisian
Lama relay menyala untuk satu galon
Batas maksimum sebelum sistem mengunci start
Koneksi WiFi
Terhubung, siap OTA
Status Relay
Nonaktif
Status Sensor TDS
Normal
Logika Kualitas Air
Ambang nilai TDS
| Rentang TDS | Kualitas |
|---|---|
| 0 sampai 150 ppm | Terbaik |
| 151 sampai 250 ppm | Baik |
| 251 sampai 300 ppm | Cukup |
| 301 sampai 500 ppm | Buruk |
| Di atas 500 ppm | Warning |
Keamanan
Proteksi operasional
- Pengisian berbasis timer presisi untuk cegah overfill
- WiFi nonaktif otomatis selama proses pengisian
- Start terkunci jika target galon sudah tercapai
- Reset counter hanya lewat tombol tahan beberapa detik
Backend & Dashboard
Dari perangkat ke web dashboard
ESP32 mengirim data TDS dan jumlah galon ke backend Laravel lewat REST API, disimpan ke database, lalu ditampilkan lewat web dashboard sehingga bisa dipantau tanpa harus berada di lokasi depot.
REST API
Endpoint Laravel menerima data TDS dan total galon terkini dari ESP32.
Database
Data TDS dan riwayat pengisian galon disimpan agar bisa ditelusuri.
Web Dashboard
Backend Laravel menyajikan data tersebut lewat web dashboard untuk dipantau jarak jauh.
Penyimpanan Lokal
EEPROM di sisi perangkat
Total galon, setting durasi, dan target maksimum disimpan di EEPROM sehingga tetap ada meski listrik mati. Saat online, ESP32 mengirim TDS dan total galon ke server dengan format berikut.