Pada kesempatan kali ini saya akan berbagi tutorial tentang membuat pintu air otomatis menggunakan Arduino. Pintu air ini masih dalam bentuk prototype yaitu dengan menggunakan sensor ultrasonik untuk mengukur ketinggian air dan motor servo sebagai pintu airnya. Dalam project ini juga terdapat 3 buah indikator yaitu menggunakan buzzer dan 3 buah LED anatara lain hijau untuk waspada, kuning siaga dan merah untuk awas. Untuk lebih lengkapnya perhatikan penjelasan di bawah ini.
Adapun alat dan bahan yang dibutuhkan pada pembahasan kali ini sebagai berikut :
ALAT DAN BAHAN
- Arduino Uno R3, BELI
- Sensor Ultrasonik HC- SR04, BELI
- Motor Servo SG90, BELI
- Lampu LED 5mm 3 buah
- Resistor 220 Ohm
- Project board
RANGKAIAN
Berikut ini rangkaian pintu air otomatis :
KONFIGURASI PIN
- Sensor ultrasonik : Trigger ke pin 7, Echo ke pin 6, VCC ke 5V, GND ke GND
- Motor servo : kabel kuning/DATA ke pin 9, kabel merah ke 5V, kabel hitam ke GND
- Buzzer : (+) kaki panjang ke pin 11, (-) kaki pendek ke GND
- LED : tiap LED kaki (+) panjang dihubungkan dengan resistor 220 Ohm
kemudian Merah dihubungkan ke pin 5, Kuning ke pin 4, dan Hijau ke pin 3
kaki (-) pendek ke GND.
SOURCE CODE PINTU AIR OTOMATIS
#include <Servo.h>
Servo myservo;
#define trigPin 7
#define echoPin 6
const int lampuHijau = 3;
const int lampuKuning = 4;
const int lampuMerah = 5;
const int buzzer = 11;
void setup() {
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(lampuHijau, OUTPUT);
pinMode(lampuKuning, OUTPUT);
pinMode(lampuMerah, OUTPUT);
pinMode(buzzer, OUTPUT);
myservo.attach(9);
Serial.println(“-PINTU AIR OTOMATIS-“);
Serial.println(“– By Saptaji.com –“);
}
void loop() {
long duration, jarak;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
jarak = (duration/2) / 29.1;
Serial.print(“Jarak : “);
Serial.print(jarak);
Serial.println(” cm”);
if (jarak <= 10) {
Serial.print(“Jarak : “);
Serial.print(jarak);
Serial.print(” cm\t”);
Serial.println(“AWAS”);
digitalWrite(lampuMerah, HIGH);
digitalWrite(lampuKuning, LOW);
digitalWrite(lampuHijau, LOW);
digitalWrite(buzzer, HIGH);
myservo.write(90);
}else if (jarak <= 20){
Serial.print(“Jarak : “);
Serial.print(jarak);
Serial.print(” cm\t”);
Serial.println(“SIAGA”);
digitalWrite(lampuKuning, HIGH);
digitalWrite(lampuHijau, LOW);
digitalWrite(lampuMerah, LOW);
digitalWrite(buzzer, LOW);
myservo.write(0);
}else if (jarak <= 30){
Serial.print(“Jarak : “);
Serial.print(jarak);
Serial.print(” cm\t”);
Serial.println(“WASPADA”);
digitalWrite(lampuHijau, HIGH);
digitalWrite(lampuMerah, LOW);
digitalWrite(lampuKuning, LOW);
digitalWrite(buzzer, LOW);
myservo.write(0);
}else{
digitalWrite(buzzer, LOW);
digitalWrite(lampuKuning, LOW);
digitalWrite(lampuHijau, LOW);
digitalWrite(lampuMerah, LOW);
myservo.write(0);
}
delay(1000);
}
PENGGUNAAN
Rangkai semua alat dan bahan seperti gambar di atas, samakan konfigurasi pin-pinya atau jika mau di ubah juga tidak masalah. Buka Arduino IDE, pastikan Board dan Port sesuai dengan yang digunakan. Kemudian upload source codenya sampai done uploading. Jika sudah, silahkan buka serial monitornya untuk melihat ketinggian airnya.
HASIL
Berikut ini adalah hasil dari pintu air otomatis menggunakan Arduino.
Anda juga dapat mengubah jaraknya sesuai keinginan.
Sekian pembahasan project membuat pintu air otomatis menggunakan Arduino ini. Jika ada pertanyaan silahkan berkomentar di bawah ini. Terima kasih.
a Technopreneur – writer – Enthusiastic about learning AI, IoT, Robotics, Raspberry Pi, Arduino, ESP8266, Delphi, Python, Javascript, PHP, etc. Founder of startup Indomaker.com
Bisa gak statusnya dimasukin ke LCD ? jaraknya berapa jaraknya berapa nanti ada di LCD
bisa aja mas
Boleh tahu caranya Mas ?
Mas kalau pas di verify kok ada errror yah ?