● online
- DS3231SN DS3231 SN I2C RTC Module & Baterai Mo....
- ADS1115 16 Bit I2C Module ADC 4 channel with Pro G....
- LCD CHARACTER 16X2 1602 5V GREEN HIJAU BACKLIGHT M....
- 5V 700mA (3.5W) Isolated switch Power Supply Modul....
- Motor Servo MG995 TowerPro Metal Gear....
- Kabel Jumper Dupont Pelangi 30 cm female to Female....
- Jasa Cetak PCB....
- Max7219 Led Dot Matrix 32x8 Display Module For Ard....
- 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.
Pantau Tandon Air Gak Pake Ribet dengan ESP32 dan Sensor Water Level
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:
- 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%).
- 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:
- 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.
- Normal (40-89%): Kondisi aman dan ideal. LED Kuning akan berkedip lambat (600ms) dan Buzzer berbunyi dengan irama pelan.
- 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!
Pantau Tandon Air Gak Pake Ribet dengan ESP32 dan Sensor Water Level
Hari ini kita akan belajar untuk membaca data analog dari sensor LDR menggunakan Blynk dan NodeMCU. Tidak hanya membaca... selengkapnya
Hallo apa kabar pada artikel ini saya berbagi cara kontrol led menggunakan potensiometer pada NodeMCU. Jadi nanti akan mengatur... selengkapnya
Arduino tidak hanya bisa digunakan untuk menyalakan LED atau membaca input dari tombol, tetapi juga dapat dimanfaatkan untuk membuat simulasi... selengkapnya
Android checkbox adalah tipe dari button yang ada di android. Tipe checkbox ini terdiri dari checked or unchecked. Fungsi... selengkapnya
MPU6050 adalah Sensor Gyroscope dan Accelerometer yang memiliki 6-axis Motion Tracking di mana perangkat ini mengkombinasikan 3-axis gyroscope, 3-axis accelerometer... selengkapnya
Pada kesempatan ini kita akan menggunakan esp-01 untuk mendeteksi suhu dan kelembaban. Dimana kemarin kita sudah belajar cara menggunakan... selengkapnya
Semangat pagi, kali ini kita akan belajar untuk mengontrol LED melalui wifi menggunakan NodeMCU. Mengapa LED? nggak langsung ke... selengkapnya
MP3 DFPlayer merupakan sebuah modul elektronik yang berfungsi untuk memainkan sebuah suara yang filenya berketensi MP3. Seperti memutar sebuah... selengkapnya
Halo semuanya, pada kesempatan kali ini Saya ingin berbagi tutorial tentang simulasi penggunaan sensor suhu TMP36 untuk mengukur suhu... selengkapnya
Sobat Maker, pernah terpikir tidak kenapa robot beroda dua bisa berdiri tegak tanpa jatuh? Secara alami, robot dua roda itu... selengkapnya
Kabel jumper Dupont untuk jumper Arduino atau Raspeberry Pi 20 cm Female to female 1 lembar = 40 kabel
Rp 11.3001 X LDR Sensor 5mm Cahaya 5528 Light Dependent Resistor LDR
Rp 4.000Specifications: Operating voltage: DC3-5V Operating current: less than 20mA Sensor Type: Analog Detection Area: 40mmx16mm Production process: FR4 double-sided HASL… selengkapnya
Rp 3.000Warna : biru dan merah Bahan Alumunium 25T include baut 2 pcs
Rp 8.750TILT SENSOR adalah sensor untuk mendeteksi sudut kemiringan / derajat, dimana cara kerja sensor ini adalah dengan menggunakan 2 buah… selengkapnya
Rp 9.800Features – Calibrated directly in Celsius (Centigrade) – Linear + 10.0 mV/C scale factor – 0.5C accuracy guaranteeable (at +25C)… selengkapnya
Rp 8.000Modul sensor tegangan AC bolak balik 1 fasa ini menggunakan optocoupler sehingga tegangan input (AC) tidak akan mengganggu/membahayakan tegangan output… selengkapnya
Rp 21.000Harga untuk 10pcs Resistance: 220 Ohm Wattage Rating: 0.25 Watt Tolerance: 1% Metal Film Lead Free ROHS compliant
Rp 1.500Deskripsi Produk “LED Dot Matrix Display dengan 32×8 pixel, berwarna Merah, menggunakan IC MAX7219 sebagai driver dan dapat dikoneksikan ke… selengkapnya
Rp 47.5002000W SCR Electronic Voltage Regulator Speed Controller Dimmer Thermostat Aplikasi : Kontrol temperature heater, kontrol kecepatan fan/bor tangan/gurinda tangan, kompor… selengkapnya
Rp 19.500Pantau Tandon Air Gak Pake Ribet dengan ESP32 dan Sensor Water Level
Kategori
Artikel Terkait
-
Cara Bikin Sistem Monitoring Getaran Gempa dan Stabilitas Kemiringan Pakai ESP32 dan MPU 6050
-
Cara Bikin Sistem Monitoring Kelembapan Tanah Berbasis Arduino Uno dan Sensor YL69
-
Bikin Sistem Monitor Volume Air Tandon Otomatis Pakai Arduino Uno dan Sensor Ultrasonik
-
Cara Bikin Kipas Angin Otomatis Berbasis Suhu Pakai Arduino Uno dan Sensor LM35
-
Bikin Smart Medicine Box Otomatis Pakai Arduino Nano dan Sensor Suhu DHT11

Saat ini belum tersedia komentar.