Alat untuk memonitoring cuaca dapat kita buat dengan mengabungkan sensor hujan dan sensor LDR. Selain dapat dibuat dengan mudah, alat yang kita buat akan dihubungkan dengan internet sehingga dapat dipantau dengan lebih mudah.
1. Alat / Bahan
- Arduino IDE Download
- Library: Blynk Download
- Library: ESP8266 Download
- NodeMCU ESP8266 1 Buah
- Sensor Hujan 1 Buah
- Sensor LDR 1 Buah
- Resistor 10k 1 Buah
- Project Board 1 Buah
- Kabel Jumper Secukupnya
- Smartphone 1 Buah
Segera untuk mendapatkan komponen elektronik di atas silahkan temukan.
2. Skema Rangkaian
Gambar Rangkaian Alat Monitoring Cuaca berbasis IoT
Keterangan:
- VU – VCC Sensor Hujan, VCC LDR
- GND – GND Sensor Hujan
- GND – Resistor 1k
- Resistor 1k – Kaki LDR – A0
- D3 – Pin Data Sensor Hujan
3. Layout Blynk
Keterangan:
- Notifikasi
- LCD
- Input = Advanced, V1
- Cahaya (Labeled Value)
- Input V0, Low = 0, High = 9999
- Label = /pin./ Lux
4. Langkah Kerja
- Pertama Siapkan alat dan bahan yang akan digunakan
- Kedua Lakukan proses wiring dengan menggunakan Gambar skematik rangkaian diatas
- Ketiga Buka software Arduino IDE yang telah terinstal pada laptop/komputer
- Kemudian Unduh semua library di atas dan masukkan libray tersebut dengan cara buka Arduino IDE pilih Sketch->Include Library->Add.Zip Library
- Selanjutnya Ketikkan sketch program pada halaman Arduino IDE
- Setelah itu Sesuaikan Auth Tokens dengan proyek aplikasi Blynk. Cara setting dan mendapatkan Auth Tokens dapat dilihat pada tutorial berikut:
Setting Blynk untuk NodeMCU ESP8266 - Segera Ganti ssid dan pass dengan nama wifi dan password wifi yang kalian gunakan
- kemudian Lakukan proses uploading program
- Selanjutnya Buka aplikasi Blynk
- Buat layout Blynk maka akan seperti pada gambar.
- Kemudian Tekan tombol Play pada aplikasi Blynk lalu tunggu hingga proyek kalian terhubung dengan aplikasi Blynk
5. Sketch Program
Belajar elektronika step by step dengan bantuan tangga belajar? Regitrasi dulu dan dapatkan konsultasi dari kami!
/* Program Alat Monitoring Cuaca berbasis IoT dibuat oleh Indobot */ #include <ESP8266WiFi.h> //Library ESP8266 #include <BlynkSimpleEsp8266.h> //Library Blynk char auth[] = "HoP9z23_PbWp-iEyMBYFGnnALYBvvcXS"; //Token char ssid[] = "Wifi.id"; //Nama wifi char pass[] = "alam oye"; //Password wifi BlynkTimer timer; WidgetLCD lcd(V1); #define LDR A0 //LDR pada pin A0 #define MAX_ADC_READING 1023 #define ADC_REF_VOLTAGE 5.0 #define REF_RESISTANCE 10000 #define LUX_CALC_SCALAR 125235178.3654270 #define LUX_CALC_EXPONENT -1.604568157 int ldrRawData; float resistorVoltage, ldrVoltage; float ldrResistance; float ldrLux; #define hujan 0 //Sensor hujan pada pin D3 unsigned long TSekarang; unsigned long TAkhir; void setup() { Blynk.begin(auth, ssid, pass); //Inisialisasi token, wifi dan password timer.setInterval(1000L, sendSensor); //Kirim data sensor pinMode(hujan, INPUT); } void loop() { Blynk.run(); //Jalankan pembacaan Blynk timer.run(); hitung_cahaya(); if(ldrLux > 200){ lcd.print(0,0,"Cerah "); } else{ lcd.print(0,0,"Mendung"); } if(digitalRead(hujan) == LOW){ lcd.print(0,1,"Hujan "); TSekarang = millis(); if(TSekarang - TAkhir > 10000){ //Kirim notifikasi setiap 10 detik Blynk.notify("Hujan Terdeteksi!!!"); TAkhir = TSekarang; } } else{ lcd.print(0,1,"Tidak Hujan"); } } void sendSensor(){ //Kirim data sensor Blynk.virtualWrite(V0,ldrLux); } void hitung_cahaya(){ ldrRawData = analogRead(LDR); //Baca sensor //------------Konversi dari data analog ke nilai lux------------// resistorVoltage = (float)ldrRawData / MAX_ADC_READING * ADC_REF_VOLTAGE; ldrVoltage = ADC_REF_VOLTAGE - resistorVoltage; ldrResistance = ldrVoltage / resistorVoltage * REF_RESISTANCE; ldrLux = LUX_CALC_SCALAR * pow(ldrResistance, LUX_CALC_EXPONENT); }
Kesimpulan:
Alat yang kita buat akan menampilkan kondisi cahaya yang ada diluar, serta kondisi cuaca apakah hujan atau tidak. Selain itu ketika terjadi hujan kita juga akan mendapatkan notifikasi pada smartphone.
Bikin project tanpa ribet beli komponen sana-sini? Starter Kit Arduino/IoT bisa jadi solusi mu!