Pembahasan Sensor PIR Lengkap
Sensor PIR (Passive InfraRed) merupakan sebuah sensor yang digunakan untuk mendeteksi pergerakan. Karena itu sensor PIR ini disebut sebagai sensor gerakan / motion sensor. Jadi sensor PIR ini digunakan untuk mendeteksi apakah ada pergerakan manusia di sekitar jangkauan dari sensor ini.
Cara Kerja Sensor
Jadi prinsip kerja dari sensor ini adalah menerima pancaran cahaya pasif-infrared dari setiap benda yang terdeteksi olehnya. Oleh karena itu sensor ini dapat mendeteksi gerakan karena pancaran cahaya infrared yang dikeluarkan oleh setiap benda ataupun mahluk hidup.
Jadi kesimpulannya sensor PIR ini hanya menangkap energi panas yang dihasilkan dari pancaran sinar inframerah pasif yang dimiliki setiap benda dan mahluk hidup seperti terlihat pada gambar di bawah.
Lalu Mengapa sensor PIR hanya bereaksi pada tubuh manusia ?
Hal tsb disebabkan karena adanya IR Filter (Filter pada sensor) yang menyaring panjang gelombang sinar inframerah pasif. IR Filter sensor PIR ini menyaring panjang gelombang sinar inframerah pasif antara 8 sampai 14 mikrometer.
Sementara itu panjang gelombang yang dihasilkan dari tubuh manusia antara 9 sampai 10 mikrometer.
Inilah mengapa sensor PIR dapat mendeteksi pergerakan manusia yang masuk pada jangkauan dari sensor ini.
Bagian-Bagian Sensor PIR
- Pengatur Waktu JedaMaksud dari waktu jeda adalah setelah sensor ini mendeteksi adanya benda dan mengeluarkan sinyal HIGH. Untuk mengatur waktu jeda tsb kita dapat memutar tuas ke kanan atau ke kiri.
- Pengatur Tingkat Sensitivitas SensorJadi dengan memutar tuas tsb ke kanan dan ke kiri kita dapat menentukan jarak jangkauan dari sensor PIR ini.
- Pengatur JumperUntuk mengatur output dari pin digital.
- IC BISS0001IC ini merupakan otak atau controler darin sensor.
- Input SensorMerupakan kaki input sensor dengan tegangan input antara 3 - 12 VDC.
- Output Sensor
Output dari sensor ini adalah sinya digital yaitu HIGH atau LOW. - Ground :
Kaki Ground Hubungkan dengan ground (GND) dari mikro kontroler - Dioda Pengaman
Mengamankan sensor apabila terjadi salah dalam menyambungkan antara VCC dengan GND. - Regulator 3VDC
Untuk menstabilkan tegangan menjadi 3V DC
Aplikasi Sensor PIR
Rangkaian di atas merupakan rangkaian untuk sensor PIR sebagai alarm rumah / alarm anti maling dan sebagainya.
Alat dan Bahan
Arduino
Buzzer 5 VDC
LCD + Module I2C
Sensor PIR
- Output : Pin D6 Arduino
- Input : 5V
- GND : Ground
- SCA : A4
- SCL : A5
- GND : GND Arduino
- VCC : 5V Arduino
- Output : D7
- Input : 5V Arduino
// Kode Arduino untuk sensor PIR
// www.TeknikElektro.com
#include<Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16, 2);
int WaktuKalibrasi = 10;
int PinSensorPIR = 6;
int PinBuzzer = 7;
void setup()
{
// put your setup code here, to run once:
Serial.begin(9600);
lcd.begin();
lcd.backlight();
pinMode (PinSensorPIR, INPUT);
pinMode (PinBuzzer, OUTPUT);
digitalWrite(PinSensorPIR, LOW);
lcd.setCursor(1,0);
lcd.print("Sedang Kalibrasi");
delay(500);
lcd.setCursor(0,1);
lcd.print("Sensor.....");
Serial.println("Please wait, now calibrating the sensor....");
for(int i = 0; i <= WaktuKalibrasi; i++)
{
Serial.print(((i*100)/WaktuKalibrasi));
Serial.print("% ");
lcd.setCursor(12,1);
lcd.print(((i*100)/WaktuKalibrasi));
lcd.print("%");
Serial.println("Selesai.....");
delay(1000);
}
Serial.println("Kalibrasi Sensor Selesai");
Serial.println("** SENSOR AKTIF **");
delay(50);
lcd.clear();
lcd.setCursor(1,0);
lcd.print(" Selesai ");
delay(500);
lcd.setCursor(0,1);
lcd.print(" SENSOR AKTIF! ");
delay(2000);
}
void loop()
{
// put your main code here, to run repeatedly:
if(digitalRead(PinSensorPIR) == HIGH)
{
digitalWrite(PinBuzzer, HIGH);
Serial.println("----------------------------");
Serial.println("** ALARM! MALING **");
Serial.println("----------------------------");
Serial.println("");
lcd.clear();
lcd.setCursor(1,0);
lcd.print(" ALARM! ALARM! ");
lcd.setCursor(0,1);
lcd.print("ADA MALING!");
delay(10000);
}
else
{
digitalWrite(PinBuzzer, LOW);
lcd.clear();
lcd.setCursor(1,0);
lcd.print(" KEADAAN ");
lcd.setCursor(0,1);
lcd.print(" AMAN ");
delay(10000);
}
}
Penjelasan Coding
- Tanda // merupakan coding komentar sehingga tidak dibaca oleh arduino.
- Pada coding paling atas terdapat tanda #include<Wire.h> dan #include <LiquidCrystal_I2C.h> , itu merupakan tanda library dimana kita menggunakan library tsb (library I2C dan Wire).
- Kemudian tulisan LiquidCrystal_I2C lcd(0x27, 16, 2); merupakan coding untuk menyatakan bahwa kita menggunakan LCD 16 x 2.
- int WaktuKalibrasi = 10;
Merupakan tanda bahwa waktu kalibrasi sensor sebesar 10 detik.(Berdasarkan datasheet sensor harus didiamkan selama 10 detik sebelum digunakan). - int PinBuzzer = 7;
Menyatakan bahwa Buzzer / alarm dihubungkan di Pin Digital 7 (D7) Arduino - int PinSensorPIR = 6;
Menyatakan bahwa Sensor PIR dihubungkan di Pin Digital 6 (D6) Arduino
- Serial.begin(9600); merupakan kode untuk memanggil serial monitor pada arduino.
- lcd.begin(); merupakan kode untuk memanggil lcd
- Pin Mode (); merupakan tanda kita menyatakan komponen yang terhubung ke arduino sebagai INPUT atau OUTPUT.
INPUT maksudnya adalah komponen yang memberikan sinyal ke arduino (biasanya berupa sensor) dan sinyal tsb akan diproses oleh arduino sesuai dengan program yang ditanamkan.
OUTPUT maksudnya adalah komponen yang dikendalikan oleh arduino sesuai dengan program / coding yang ditanam - for(int i = 0; i <= WaktuKalibrasi; i++)
{
xxxxxx
}
Merupakan coding untuk menghitung 1 sampai 10 sebelum sensor aktif. - lcd.setCursor (x,x) merupakan coding untuk menentukan posisi tulisan dimana baris ke berapa dan kolom ke berapa.
- lcd.print( ) merupakan perintah untuk membuat tulisan di lcd 16 x 2 tsb.
- Pada void loop terlihat hanya ada dua perintah yaitu If dan Else.
- if(digitalRead(PinSensorPIR) == HIGH){
digitalWrite(PinBuzzer, HIGH);
lcd.setCursor(1,0);lcd.print(" ALARM! ALARM! ");lcd.setCursor(0,1);lcd.print("ADA MALING!");}
Maksud dari kode tsb adalah jika sensor pir mendeteksi ada benda (sensor tsb akan mengeluarkan sinyal HIGH) maka buzzer akan berbunyi dan lcd akan mengeluarkan tulisan "alarm! ada maling!" - else
{digitalWrite(PinBuzzer, LOW);
lcd.setCursor(1,0);lcd.print(" Keadaan ");lcd.setCursor(0,1);lcd.print("AMAN");}
Maksud dari kode tsb adalah jika tidak ada terdeteksi gerakan maka alarm akan mati dan lcd mengeluarkan tulisan "keadaan aman"
bagaimana cara modifikasi PIR sensor agar bisa lebih jauh deteksinya.. misalnya PIR sensor diaplikasikan didalam lorong gudang dengan ketinggian 12 meter dan satu arah (180 derajat)
BalasHapusMohon bantuannya...