Alat pemantau debit air hujan berguna untuk memancau cuaca. Ada banyak cara untuk mengetahui debit air hujan salah satunya adalah dengan menggunakan flow sensor. Sensor ini bekerja dengan cara menghitung perputaran turbin per satuan waktu.
1. Alat / Bahan
- Arduino IDE Download disini
- Library: Blynk Download disini
- Library: ESP8266 Download disini
- NodeMCU ESP8266 1 Buah
- Flow Sensor 1 Buah
- Project Board 1 Buah
- Kabel Jumper Secukupnya
- Smartphone 1 Buah
Untuk mendapatkan komponen elektronik di atas silahkan temukan disini.
2. Skema Rangkaian
Gambar Rangkaian Alat Pemantau Debit Air Hujan berbasis IoT
Keterangan:
- VU – VCC Flow Sensor
- GND – GND Flow Sensor
- D7 – Data Flow Sensor
3. Layout Blynk
Keterangan:
- Debit Air (Labeled Value)
- Input V0, Low = 0, High = 100
- Label = /pin.#/ L/menit
4. Langkah Kerja
- Siapkan alat dan bahan yang akan digunakan
- Lakukan proses wiring dengan menggunakan Gambar skematik rangkaian diatas
- Buka software Arduino IDE yang telah terinstal pada laptop/komputer
- Unduh semua library di atas dan masukkan libray tersebut dengan cara buka Arduino IDE pilih Sketch->Include Library->Add.Zip Library
- Ketikkan sketch program pada halaman Arduino IDE
- Sesuaikan Auth Tokens dengan proyek aplikasi Blynk. Cara setting dan mendapatkan Auth Tokens dapat dilihat pada tutorial berikut:
Setting Blynk untuk NodeMCU ESP8266 - Ganti ssid dan pass dengan nama wifi dan password wifi yang kalian gunakan
- Lakukan proses uploading program
- Buka aplikasi Blynk
- Buat layout Blynk seperti gambar di atas.
- Tekan tombol Play pada aplikasi Blynk lalu tunggu hingga proyek kalian terhubung dengan aplikasi Blynk
5. Sketch Program
Dapatkan puluhan ebook gratis dengan registrasi melalui tombol di bawah!
/* Program Alat Pemantau Debit Air Hujan 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; #define SENSOR 13 long currentMillis = 0; long previousMillis = 0; int interval = 1000; float calibrationFactor = 4.5; volatile byte pulseCount; byte pulse1Sec = 0; float flowRate; unsigned int flowMilliLitres; unsigned long totalMilliLitres; void pulseCounter() { pulseCount++; } void setup() { Blynk.begin(auth, ssid, pass); //Inisialisasi token, wifi dan password timer.setInterval(1000L, sendSensor); //Kirim data sensor pinMode(SENSOR, INPUT_PULLUP); pulseCount = 0; flowRate = 0.0; flowMilliLitres = 0; totalMilliLitres = 0; previousMillis = 0; attachInterrupt(digitalPinToInterrupt(SENSOR), pulseCounter, FALLING); } void loop() { Blynk.run(); //Jalankan pembacaan Blynk timer.run(); currentMillis = millis(); if (currentMillis - previousMillis > interval) { pulse1Sec = pulseCount; pulseCount = 0; flowRate = ((1000.0 / (millis() - previousMillis)) * pulse1Sec) / calibrationFactor; previousMillis = millis(); flowMilliLitres = (flowRate / 60) * 1000; totalMilliLitres += flowMilliLitres; } } void sendSensor(){ //Kirim data sensor Blynk.virtualWrite(V0,flowRate); }
Kesimpulan:
Coba tiup flow sensor. Nilai flow rate pada aplikasi Blynk akan naik sesuai dengan kecepatan putaran turbin di dalam flow sensor.
Mau belajar elektronika dasar? Arduino? atau Internet of Things? Ikuti kursus online Indobot Academy!