Buka Senin - Jumat jam 08.30 s/d jam 16.30 , Sabtu Jam 8.30 s/d jam 13.00 , Minggu tutup
  • Selamat Datang di Indomaker ❯ Silahkan pesan produk sesuai kebutuhan anda, kami siap melayani.
  • Selamat Datang di Indomaker ❯ Silahkan pesan produk sesuai kebutuhan anda, kami siap melayani.
Beranda » Blog » Pantau Tandon Air Gak Pake Ribet dengan ESP32 dan Sensor Water Level

Pantau Tandon Air Gak Pake Ribet dengan ESP32 dan Sensor Water Level

Diposting pada 24 September 2026 oleh indo maker / Dilihat: 37 kali / Kategori: ,

Sobat Maker, pernah nggak sih lagi asik-asiknya mandi tiba-tiba air di tandon habis? Atau sebaliknya, tandon malah meluap sampai air terbuang percuma gara-gara kita lupa mematikan keran? Masalah klasik di rumah tangga ini memang bikin repot, belum lagi pemborosan listrik dan air yang bikin kantong jebol.

Nah, daripada harus bolak-balik naik ke atap buat cek tandon secara manual, lebih baik kita buat sistem monitoring air real-time berbasis ESP32. Mirip-mirip kalau kamu bikin sendiri alat pendeteksi hujan pakai Arduino Uno biar nggak kaget pas jemuran basah, alat ini juga bikin hidup Teman-teman makin praktis karena kondisi air bisa dipantau langsung lewat layar LCD maupun secara jarak jauh lewat IoT.

Alat dan Bahan

Untuk memulai proyek ini, Teman-teman perlu menyiapkan beberapa komponen berikut. Semuanya cukup mudah ditemukan di toko komponen elektronik atau marketplace:

Komponen Jumlah Keterangan
ESP32 DevKit V1 1 Mikrokontroler utama dengan Wi-Fi terintegrasi
Sensor Water Level 1 Sensor analog untuk mendeteksi ketinggian air
LCD 20×4 I2C 1 Layar untuk menampilkan data secara lokal
LED (Merah, Kuning, Hijau) @1 Indikator visual status ketinggian air
Buzzer 1 Alarm peringatan suara (Active Buzzer)
Kabel Jumper Secukupnya Kabel penghubung antar komponen

Skematik Rangkaian

Menyusun rangkaian ini cukup mudah kalau kita teliti melihat pinout-nya. Berikut adalah panduan koneksi antar komponen ke ESP32:

  • Sensor Water Level: Hubungkan pin Signal (S) sensor ke GPIO 34. Pin ini kita pilih karena merupakan kanal ADC yang stabil.
  • LCD 20×4 (I2C): Berbeda dengan Arduino yang punya pin I2C tetap, di ESP32 kita bisa definisikan sendiri. Hubungkan pin SDA ke GPIO 33 dan pin SCL ke GPIO 32.
  • Indikator LED:
    • LED Hijau ke GPIO 25.
    • LED Kuning ke GPIO 26.
    • LED Merah ke GPIO 27.
  • Buzzer: Hubungkan kaki positif (+) buzzer ke GPIO 14.

Pastikan semua kabel GND (Ground) terhubung menjadi satu agar aliran listrik stabil dan tidak ada noise yang mengganggu pembacaan sensor.

Cara Kerja Sistem

Sistem ini bekerja dengan memanfaatkan sifat konduktivitas air. Pada sensor water level, terdapat jalur tembaga (trace) yang sejajar. Saat air menyentuh sensor, resistansinya berubah sehingga menghasilkan tegangan analog yang dibaca oleh ESP32.

Ada dua rahasia teknis agar alat ini akurat dan stabil:

  1. Kalibrasi ADC yang Presisi: Walaupun ADC ESP32 punya resolusi 12-bit (0-4095), pada praktiknya sensor ini sudah dianggap “penuh” sebelum mencapai nilai maksimal. Berdasarkan kode program, kita mengkalibrasi nilai 98 sebagai kondisi kering (0%) dan 2209 sebagai kondisi terendam penuh (100%).
  2. Moving Average (Noise Reduction): Agar angka di LCD tidak “loncat-loncat” atau flicker, program akan melakukan pembacaan sensor sebanyak 10 kali dengan jeda sangat singkat, lalu mengambil nilai rata-ratanya. Ini penting banget supaya sistem nggak bingung saat permukaan air sedikit bergoyang.

Pemrograman dan IoT

Sistem ini menggunakan protokol MQTT untuk mengirim data ke broker HiveMQ. Buat kamu yang ingin memahami lebih jauh cara kerja MQTT dalam komunikasi IoT, kamu bisa melihat dokumentasi MQTT dari HiveMQ sebagai referensi tambahan. Data yang dikirim dikemas dalam format JSON (JavaScript Object Notation) yang ringan dan mudah dibaca oleh berbagai platform dashboard maupun aplikasi smartphone.

Berikut adalah logika utama pengolahan datanya :

// Proses perataan nilai sensor dengan 10x sampling
int adc = bacaSensor();

// Konversi nilai ADC berdasarkan kalibrasi menjadi persentase
int level = map(adc, 98, 2209, 0, 100);
level = constrain(level, 0, 100);

// Menyiapkan data untuk dikirim melalui MQTT dalam format JSON
StaticJsonDocument<200> doc;
doc["level"] = level;
doc["adc"] = adc;
doc["status"] = currentStatus;

// Mengubah data JSON menjadi teks
char buffer[256];
serializeJson(doc, buffer);

// Mengirim data ke topic MQTT
mqtt.publish("waterlevel/sensor", buffer);

Poin Penting Program:

  • Fungsi map(): Mengubah rentang kalibrasi (98-2209) menjadi persentase manusiawi (0-100%).
  • Non-blocking Logic: Penggunaan millis() memastikan indikator LED dan buzzer tetap berjalan lancar tanpa mengganggu pengiriman data IoT.

Indikator Kondisi Air

Untuk memudahkan pemantauan, kita membagi kondisi air menjadi tiga kategori utama yang tampil di LCD dan indikator fisik:

  1. Kering (0-39%): Air sudah mulai tipis. LED Hijau akan menyala, dan Buzzer akan berbunyi pendek setiap 2 detik sebagai pengingat lembut agar Sobat Maker segera mengisi tandon.
  2. Normal (40-89%): Kondisi aman dan ideal. LED Kuning akan berkedip lambat (600ms) dan Buzzer berbunyi dengan irama pelan.
  3. Penuh (90-100%): Waspada luapan! LED Merah akan berkedip cepat (100ms) dan Buzzer akan berbunyi kencang dengan irama cepat sebagai alarm tanda pengisian harus segera dihentikan.

Kesimpulan

Dengan proyek monitoring water level berbasis ESP32 ini, Sobat Maker nggak perlu lagi khawatir soal drama air tandon habis pas lagi asik mandi. Selain mencegah pemborosan air, proyek ini adalah langkah awal yang seru buat belajar IoT secara mendalam.

Bagi Teman-teman yang ingin eksplorasi lebih jauh, kalian bisa menambahkan modul Relay untuk membuat kontrol pompa otomatis. Jadi, pas status “Kering”, pompa nyala sendiri, dan pas “Penuh”, pompa mati otomatis. Keren, kan? Selamat mencoba dan semangat berkarya!

Bagikan ke

Pantau Tandon Air Gak Pake Ribet dengan ESP32 dan Sensor Water Level

Saat ini belum tersedia komentar.

Silahkan tulis komentar Anda

Pantau Tandon Air Gak Pake Ribet dengan ESP32 dan Sensor Water Level

Produk yang sangat tepat, pilihan bagus..!

Berhasil ditambahkan ke keranjang belanja
Lanjut Belanja
Checkout
Produk Quick Order

Pemesanan dapat langsung menghubungi kontak dibawah: