Sensor ketinggian air berbasis arduino uno
Muhamad Irfandi
... menit baca
Sensor ketinggian air banyak digunakan dalam berbagai aplikasi, termasuk deteksi ketinggian air, deteksi kebocoran, dan sistem irigasi otomatis. Sensor ini mendeteksi keberadaan air dan memberikan sinyal keluaran yang dapat diproses oleh mikrokontroler.
Dalam tutorial ini, kita akan menjelajahi cara kerja sensor ketinggian air dan cara menghubungkannya dengan Arduino untuk membuat alarm deteksi hujan.
Apa itu sensor ketinggian air?
Sensor ketinggian air mendeteksi keberadaan atau ketinggian air dengan mengukur perubahan konduktivitas. Sensor ini biasanya terdiri dari serangkaian jalur konduktif terbuka yang berfungsi sebagai probe. Ketika air melewati celah di antara jalur-jalur tersebut, sensor menghasilkan sinyal listrik yang menunjukkan keberadaan atau ketinggian air.Pinout sensor ketinggian air
Modul sensor level air 3-pin biasanya terdiri dari pin-pin berikut:- VCC – Catu daya (3,3V hingga 5V)
- D0 (Output Digital) – Output TINGGI (1) ketika air terdeteksi, RENDAH (0) ketika kering
- GND – Tanah
Spesifikasi utama
| Parameter | Spesifikasi |
|---|---|
| Tegangan Kerja | 5V |
| Arus Kerja | 20mA |
| Antarmuka | analog |
| Sinyal Tegangan Keluaran | Tegangan 0V – 4.2V |
| Suhu Kerja | 10 derajat celcius ~ 30 derajat celcius |
| Konsumsi Daya | Rendah |
| Kepekaan | Tinggi |
| Kompatibilitas Arduino | Ya |
Kontruksi
Sensor air terdiri dari dua bagian utama:Probe (Area Deteksi)
Area deteksi terdiri dari jejak konduktif paralel. Ketika air melewati jejak tersebut, ia membentuk sirkuit listrik, yang memungkinkan sensor mendeteksi keberadaan air.Modul Elektronik
Modul elektronik ini mencakup sirkuit berbasis transistor yang memproses sinyal dari probe dan menghasilkan keluaran digital (TINGGI atau RENDAH). Tidak seperti beberapa modul sensor yang menggunakan potensiometer untuk menyesuaikan sensitivitas, versi ini mengandalkan transistor untuk penguatan dan pengalihan sinyal.Bagaimana cara kerja sensor ketinggian air?
Sensor air beroperasi dengan memanfaatkan jejak konduktif yang terekspos untuk mendeteksi keberadaan air. Ketika air bersentuhan dengan jejak tersebut, air akan menjembatani celah tersebut, memungkinkan arus kecil mengalir.- TINGGI (1) Output → Air terdeteksi
- RENDAH (0) Keluaran → Tidak terdeteksi air
Sensor ketinggian air dengan Arduino - Proyek alarm deteksi hujan
Sekarang, mari kita membangun proyek sistem alarm deteksi hujan ini.Komponen yang dibutuhkan
- Arduino UNO
- Modul Sensor Air (3-pin)
- Bel
- LED (Warna apa saja)
- Resistor 220KΩ
- Kabel Jumper
- Papan tempat memotong roti
- Diagram sirkuit
Diagram sirkuit
gambar alat
Kode Program
const int waterSensorPin = A0; // Water sensor output pin
const int ledPin = 8; // LED pin
const int buzzerPin = 11; // Buzzer pin
const int threshold = 300; // Water detection threshold (adjust based on testing)
void setup() {
pinMode(ledPin, OUTPUT); // Set LED pin as output
pinMode(buzzerPin, OUTPUT); // Set Buzzer pin as output
Serial.begin(9600); // Initialize Serial Monitor
}
void loop() {
int waterValue = analogRead(waterSensorPin); // Read the water sensor value
Serial.print("Water Sensor Value: ");
Serial.println(waterValue); // Print the sensor value for debugging
if (waterValue > threshold) { // If water is detected
digitalWrite(ledPin, HIGH); // Turn on LED
digitalWrite(buzzerPin, HIGH); // Turn on buzzer
Serial.println("Water detected!");
} else {
digitalWrite(ledPin, LOW); // Turn off LED
digitalWrite(buzzerPin, LOW); // Turn off buzzer
Serial.println("No water detected.");
}
delay(500); // Small delay for stability
}
Penjelasan Kode
const int waterSensorPin = A0; // Water sensor output pin
const int ledPin = 8; // LED pin
const int buzzerPin = 11; // Buzzer pin
const int threshold = 300; // Water detection threshold (adjust based on testing)
- waterSensorPin = A0 → Sensor air terhubung ke pin analog A0.
- ledPin = 8 → LED dihubungkan ke pin digital 8.
- buzzerPin = 11 → Buzzer dihubungkan ke pin digital 11.
- Ambang batas = 300 → Jika nilai sensor melebihi 300, air dianggap terdeteksi. Nilai ini dapat disesuaikan berdasarkan pengujian waktu nyata.
void setup() {
pinMode(ledPin, OUTPUT); // Set LED pin as output
pinMode(buzzerPin, OUTPUT); // Set Buzzer pin as output
Serial.begin(9600); // Initialize Serial Monitor
}
- pinMode(ledPin, OUTPUT) → Mengonfigurasi pin LED sebagai keluaran.
- pinMode(buzzerPin, OUTPUT) → Mengonfigurasi pin buzzer sebagai output.
- Serial.begin(9600) → Memulai komunikasi serial pada 9600 baud untuk debugging.
void loop() {
int waterValue = analogRead(waterSensorPin); // Read the water sensor value
- analogRead(waterSensorPin) → Membaca nilai analog sensor (rentang 0 hingga 1023).
Serial.print("Water Sensor Value: ");
Serial.println(waterValue); // Print the sensor value for debugging
- Mencetak nilai mentah sensor ke Serial Monitor.
if (waterValue > threshold) { // If water is detected
digitalWrite(ledPin, HIGH); // Turn on LED
digitalWrite(buzzerPin, HIGH); // Turn on buzzer
Serial.println("Water detected!");
} else {
digitalWrite(ledPin, LOW); // Turn off LED
digitalWrite(buzzerPin, LOW); // Turn off buzzer
Serial.println("No water detected.");
}
Mencetak “Air terdeteksi!” di Monitor Serial.
- Menyalakan LED (TINGGI).
- Menyalakan bel (TINGGI).
- Mencetak “Air terdeteksi!” di Monitor Serial.
- Mematikan LED (RENDAH).
- Mematikan bel (RENDAH).
- Mencetak “Tidak ada air yang terdeteksi.” di Monitor Serial.
delay(500); // Small delay for stability
}
- Penundaan 500 ms mencegah fluktuasi cepat dalam pembacaan sensor.
