Blog Archive

Arduino Indonesia. Gambar tema oleh Storman. Diberdayakan oleh Blogger.

Supported by Electronics 3 in 1

1. Jasa pencetakan PCB single layer dengan harga paling murah.

(Metode Pembuatan dengan Transfer Toner)
>PCB design sendiri (siap cetak) : Rp.150,-/Cm2
>PCB design dari kami : Rp.250,-/Cm2

(Metode Sablon Full Masking dan Silk Screen minimal pemesanan 100 Pcs)
>PCB design sendiri (siap cetak) : Rp.200,-/Cm2
>PCB design dari kami : Rp.250,-/Cm2

2. Jasa perancangan, perakitan, dan pembuatan trainer pembelajaran elektronika untuk SMK dan Mahasiswa.

3. Jasa perancangan, perakitan, dan pembuatan berbagai macam kontroller, sensor, aktuator, dan tranduser.
>Design Rangkaian / Sistem Elektronika
>Design Rangkaian / Sistem Instrumentasi
>Design Rangkaian / Sistem Kendali
>Kerjasama Riset (data atau peralatan)
>Kerjasama Produksi Produk-Produk KIT Elektronika
>Produksi Instrumentasi Elektronika

4. Jasa Pembuatan Proyek, Tugas Akhir, Tugas Laboratorium, PKM, Karya Ilmiah, SKRIPSI, dll

Like My Facebook

Popular Posts

Senin, 13 Juli 2026

Arduino Sensor Hujan (Rain Sensor) Tanpa LM393 – Cara Mendeteksi dan Mengukur Intensitas Hujan

Sensor hujan merupakan salah satu sensor yang banyak digunakan pada berbagai proyek Internet of Things (IoT), sistem otomasi, maupun stasiun cuaca sederhana. Dengan memanfaatkan sensor ini, Arduino dapat mengetahui apakah permukaan sensor terkena air serta memperkirakan tingkat intensitas hujan berdasarkan perubahan nilai tegangan yang dibaca pada pin analog. Pada tutorial ini, kita akan membahas cara menggunakan Arduino Uno dengan pelat sensor hujan tanpa modul LM393. Berbeda dengan modul sensor hujan yang memiliki IC komparator LM393, rangkaian pada tutorial ini hanya menggunakan pelat sensor hujan dan sebuah resistor 10 kΩ sebagai pull-up resistor sehingga pembacaan dilakukan langsung melalui pin Arduino. Setelah mengikuti tutorial ini, Anda akan memahami cara menghubungkan sensor hujan ke Arduino tanpa modul LM393, cara membaca kondisi hujan menggunakan input digital Arduino, dan cara mengukur intensitas hujan menggunakan input analog Arduino.

Perangkat Keras yang Dibutuhkan

- Arduino Uno R3

- Kabel USB

- Pelat Sensor Hujan (Rain Sensor Plate)

- Resistor 10 kΩ

- Breadboard

- Kabel jumper     

Mengenal Sensor Hujan

Sensor hujan bekerja berdasarkan prinsip konduktivitas air. Air memiliki kemampuan menghantarkan listrik sehingga ketika tetesan air mengenai jalur tembaga pada pelat sensor, hambatan listrik akan berubah. Perubahan hambatan inilah yang kemudian dibaca oleh Arduino sebagai perubahan tegangan.

Karena pada tutorial ini tidak menggunakan modul LM393, seluruh proses pembacaan dilakukan langsung oleh Arduino menggunakan rangkaian resistor pull-up. Sensor terdiri dari sebuah pelat PCB yang memiliki jalur tembaga saling berselang-seling. Ketika pelat masih kering, kedua jalur tembaga tidak saling terhubung sehingga tegangan yang masuk ke Arduino akan berada pada kondisi tertentu. Sebaliknya, ketika air mengenai permukaan sensor, air akan menghubungkan kedua jalur tersebut sehingga nilai tegangan berubah dan dapat dideteksi oleh Arduino.

Cara Kerja Rangkaian

Pada tutorial ini digunakan resistor 10 kΩ sebagai pull-up resistor. Konfigurasinya adalah sebagai berikut:

- Salah satu kaki sensor dihubungkan ke 5V Arduino.

- Kaki sensor lainnya dihubungkan ke:

- Pin A0 Arduino

- Resistor 10 kΩ 

Ujung resistor lainnya dihubungkan ke GND.

Dengan konfigurasi tersebut akan terbentuk pembagi tegangan (voltage divider). Prinsip kerjanya adalah:

- Saat sensor kering, hambatan sensor sangat besar sehingga tegangan pada pin A0 tinggi.

- Saat sensor mulai terkena air, hambatan sensor menurun sehingga tegangan yang dibaca Arduino ikut turun.

- Semakin banyak air, nilai analog yang terbaca akan semakin kecil.

Nilai inilah yang nantinya digunakan Arduino untuk menentukan apakah sedang hujan atau tidak.

Wiring Arduino dengan Sensor Hujan

Hubungkan komponen sesuai berikut.

Pelat Sensor

- Pin pertama → 5V Arduino

- Pin kedua → A0 Arduino

- Pin kedua → Resistor 10 kΩ

- Ujung resistor lainnya → GND Arduino 

Konfigurasi tersebut menghasilkan rangkaian seperti berikut:



Karena tidak menggunakan LM393, maka tidak terdapat pin D0 maupun potensiometer pengatur sensitivitas. Seluruh proses penentuan kondisi hujan dilakukan melalui program Arduino.

Membaca Sensor Sebagai Input Digital

Meskipun sensor hanya menghasilkan nilai analog, kita tetap dapat menggunakannya sebagai input digital dengan menentukan sebuah nilai ambang (threshold). Misalnya:

- Nilai di atas 700 → Tidak hujan.

- Nilai di bawah 700 → Hujan.

Nilai threshold dapat disesuaikan berdasarkan hasil kalibrasi sensor.

Kode Program Arduino

#define RAIN_SENSOR A0


const int THRESHOLD = 700;


void setup() {

  Serial.begin(9600);

}


void loop() {


  int rainValue = analogRead(RAIN_SENSOR);


  if (rainValue < THRESHOLD)

    Serial.println("Hujan terdeteksi");

  else

    Serial.println("Tidak ada hujan");


  delay(1000);

}


Penjelasan Program

Program membaca nilai dari pin A0 menggunakan fungsi:

 

analogRead(A0);


Nilai yang diperoleh berkisar antara:

- 0 → Sensor sangat basah.

1023 → Sensor sangat kering.

Selanjutnya nilai tersebut dibandingkan dengan variabel THRESHOLD.

Jika nilai pembacaan lebih kecil dari threshold, Arduino akan menganggap sensor sedang terkena air.

Cara Menguji Program

Setelah program selesai diunggah ke Arduino, lakukan langkah berikut:

1. Hubungkan Arduino ke komputer menggunakan kabel USB.

2. Buka Serial Monitor.

3. Atur baud rate menjadi 9600.

4. Sentuhkan beberapa tetes air pada pelat sensor.

5. Perhatikan perubahan tulisan pada Serial Monitor.  

Jika sensor masih dalam keadaan kering, Serial Monitor akan menampilkan:

 

Tidak ada hujan


Ketika air mengenai pelat sensor, tampilannya berubah menjadi:

 

Hujan terdeteksi


Jika sensor terlalu sensitif atau kurang sensitif, ubahlah nilai THRESHOLD hingga sesuai dengan kondisi lingkungan.

 


Membaca Intensitas Hujan Menggunakan Nilai Analog

Selain mendeteksi ada atau tidaknya hujan, Arduino juga dapat memperkirakan tingkat intensitas hujan dengan membaca nilai analog dari sensor. Semakin banyak air yang menutupi permukaan sensor, semakin kecil nilai analog yang diperoleh.

Kode Program Arduino

#define RAIN_SENSOR A0


void setup() {

  Serial.begin(9600);

}


void loop() {


  int rainValue = analogRead(RAIN_SENSOR);


  Serial.print("Nilai Sensor : ");

  Serial.println(rainValue);


  delay(1000);

}

Cara Menguji Program

Upload program ke Arduino. Buka Serial Monitor, kemudian teteskan air sedikit demi sedikit pada pelat sensor. Hasil pembacaan sebagai berikut: 

 


Semakin kecil nilai yang muncul, berarti permukaan sensor semakin basah.

 

Baca juga: ESP32 MQTT - Cara Mengirim dan Menerima Data Menggunakan Broker MQTT Lokal (Mosquitto)

 

 

 

Dalam praktik, hasil dan kendala yang ditemui bisa berbeda tergantung perangkat, konfigurasi, versi library, dan sistem yang digunakan.  

0 on: "Arduino Sensor Hujan (Rain Sensor) Tanpa LM393 – Cara Mendeteksi dan Mengukur Intensitas Hujan"