Bekerja dengan Sensor Hujan Menggunakan NodeMCU

Pada tutorial sensor hujan Arduino yang lalu kita sudah belajar bagaimana menangani sensor hujan/rain drop dengan Arduino Uno. Sekarang mari kita coba mengambil data output sensor ini menggunakan NodeMCU. Pada prinsipnya NodeMCU berbasis ESP8266 seri ESP12e. Mikrokontroller keluaran Espressif ini memiliki modul WIFI internal di dalamnya, jadi sangat cocok digunakan untuk project-project yang membutuhkan kendali jarak jauh melalui internet. Salah satu protokol komunikasi data yang saat ini populer adalah IoT (Internet of Things). Jadi dengan menggunakan nodeMCU, sensor hujan yang Anda ambil datanya tadi bisa sewaktu-waktu Anda monitor (melalui aplikasi HP atau web) menggunakan teknologi IoT tadi.

Untuk IoT akan kita ulas di tutorialnya selanjutnya ya, kali ini kita masih akan membahas bagaimana cara mengambil data sensor hujan menggunakan NodeMCU. Alat dan bahan yang diperlukan dalam percobaan ini adalah:

Alat dan Bahan Percobaan Sensor Hujan – NodeMCU

  1. NodeMcu
  2. Sensor Hujan FC-37
  3. Resistor 150 Ω
  4. LED merah
  5. LED hijau
  6. Kabel jumper secukupnya
  7. Protoboard

Buatlah rangkaian seperti pada gambar dibawah ini dengan konfigurasi pin:

  • VCC dihubungkan dengan 5V (VU) NodeMcu
  • GND dihubungkan dengan GND NodeMcu.
  • D0 dihubungkan dengan  pin D5 NodeMcu
  • LED hijau terhubung dengan pin D6 NodeMcu
  • LED merah terhubung dengan pin D7 NodeMcu

Source Code

Kemudian buka IDE Arduino Anda (atau dapat diunduh di arduino.cc jika belum punya), dan salin listing program  sebagai berikut :

#define sensor_hujan D5  //Deklarasi Sensor hujan pada pin D5 NodeMcu
#define LEDh D6             //Deklarasi LED hijau pada pin D6 NodeMcu
#define LEDm D7            //Deklarasi LED merah pada pin D7 NodeMcu
 
void setup () {
 Serial.begin(9600);
 pinMode (sensor_hujan, INPUT); //Deklarasi sensor hujan sebagai input
 pinMode (LEDh, OUTPUT);        //Deklarasi LED hijau sebagai Output
 pinMode (LEDm, OUTPUT);        //Deklarasi LED merah sebagai Output
}
 
void loop() {
int kondisi_sensor = digitalRead(sensor_hujan); //Instruksi untuk membaca nilai digital
Serial.print("Raindrop Sensor\n");      
Serial.print("Digital Value: ");                //Instruksi untuk menampilkan nilai digital pada Serial Monitor
Serial.println(kondisi_sensor);

//Intruksi untuk mengaktifkan LED hijau saat sensor tidak mendeteksi hujan
if (kondisi_sensor == 0){ //Saat hujan terdeteksi maka nilai digital = 0                 
digitalWrite(LEDh, LOW);
digitalWrite(LEDm,HIGH);
Serial.print("Rain\n");
}

//Intruksi untuk mengaktifkan LED merah saat sensor tidak mendeteksi hujan
else{
digitalWrite(LEDh,HIGH); //Saat hujan tidak terdeteksi maka nilai digital = 1
digitalWrite(LEDm,LOW);
Serial.print("Dry\n");
} 
 delay(1000);
}

Upload sketch (program di atas) dengan menekan tombol upload atau melalui shortkey CTRL+U, pastikan pengaturan board pada Arduino Uno. Kemudian aktifkan tools ‘Serial Monitor’ di Arduino IDE melalui menu tools | Serial Monitor. Pastikan kabel USB antara laptop dan Arduino tetap terpasang. Setelah program selesai diunggah perhatikan nilai digital sensor yang ditampilkan pada serial monitor serta kondisi LED

Hasil Percobaan Sensor Hujan – NodeMCU

Hasil percobaan saat tidak hujan
Hasil percobaan nodemcu saat hujan

Pada Gambar di atas saat tidak hujan maka nilai digital sensor berlogik 1 serta LED hijau akan aktif dan saat hujan terdeteksi oleh sensor maka nilai digital sensor berlogik 0 serta LED merah aktif (sesuai instruksi baris 25-32)

Demikian tutorial kali ini. Sebagai resume, program diatas mengendalikan LED untuk ON / OFF berdasarkan nilai digital output sensor hujan. Saat hujan terdeteksi output sensor berlogik 0 maka LED merah aktif, namun saat tidak ada hujan maka output sesor api berlogik 1 maka LED hijau aktif. Jika hasil percobaan anda telah sesuai seperti tutorial kali ini selamat anda telah berhasil mengendalikan LED berdasarkan nilai digital sensor hujan. Anda dapat mengembangkan percobaan ini sesuai dengan kebutuhan atau keinginan anda

4 1 vote
Article Rating

Leave a Reply

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x