tutorial sensor api ky 26

Tutorial Sensor Api KY 26: Tanpa Arduino, dengan Arduino

Tutorial Sensor Api KY 26: tanpa Arduino, dengan Arduino dan mengatasi masalah sensor membaca sinyal dari remote control

Kebakaran sering terjadi kapanpun dan dimanapun, pada saat kita tidak siap untuk menangani kebakaran tersebut karena terlambat bagi kita untuk mendeteksi kebakarannya. Bisa bermula dari listrik yang korslet, kompor yang lupa dimatikan, setrika yang lupa dimatikan dan sebagainya.

Video ini menjelaskan bagaimana kita bisa membuat perangkat peringatan kebakaran kita sendiri untuk mendeteksi kebakaran dengan menggunakan modul sensor api KY 26.

Video ini dibagi menjadi beberapa bagian:

  1. Menggunakan sensor api tanpa menggunakan microcontroller
  2. Menggunakan sensor api dengan menggunakan microcontroller Arduino Uno dan PIN Digital Out dari sensor api
  3. Menggunakan sensor api dengan menggunakan microcontroller Arduino Uno dan PIN Analog Out dari sensor api
  4. Mengatasi masalah sensor yang bisa menangkap sinyal yang dipancarkan oleh remote control seperti remote TV, AC dan sebagainya

File “Menggunakan sensor api tanpa menggunakan microcontroller”:
Skema

File “Menggunakan sensor api dengan menggunakan microcontroller dan PIN Digital Out”:

Skema

Kode program

// Protus Tanuhandaru
// www.progresstech.co.id
// www.karyaone.co.id

int PINLed = 12; // Variabel PIN LED
int buzzer = 9; // Variabel PIN Buzzer
int frekuensi = 1000; // Frekuensi pitch Buzzer
int deteksiApi = 8; // Variabel PIN Vout Sensor Api
int statusApi = HIGH; // Status keberadaan api. HIGH = "Tidak ada api"

void setup() {
  pinMode(PINLed, OUTPUT); // Membuat PIN LED sebagai OUTPUT
  pinMode(deteksiApi, INPUT); // Membuat PIN Vout Sensor Api sebagai INPUT
  pinMode(buzzer, OUTPUT); // Membuat PIN Buzzer sebagai OUTPUT
  Serial.begin(9600); // Memulai serial communication baud rate 9600
}

void loop() {
  statusApi = digitalRead(deteksiApi); // Membaca sinyal api: HIGH atau LOW
  if(statusApi == LOW) // Jika ada api
  {
    Serial.println("Ada api menyala"); // Pesan ada api
    digitalWrite(PINLed, HIGH); // Nyalakan lampu LED
    tone(buzzer, frekuensi);   // Bunyikan buzzer
  } else { // Tidak ada api
    Serial.println("Aman. Tidak ada api"); // Pesan tidak ada api
    digitalWrite(PINLed, LOW); // Matikan lampu LED
    noTone(buzzer); // Matikan buzzer
  }
}

File “Menggunakan sensor api dengan menggunakan microcontroller dan PIN Analog Out”:

Skema

Kode program

// Protus Tanuhandaru
// www.progresstech.co.id
// www.karyaone.co.id

int PINLedMerah = 12; // Variabel PIN LED Merah
int PINLedKuning = 11; // Variabel PIN LED Kuning
int buzzer = 9; // Variabel PIN Buzzer
int frekuensi = 1000; // Frekuensi pitch Buzzer

void setup() {
  pinMode(PINLedMerah, OUTPUT); // Membuat PIN LED Merah sebagai OUTPUT
  pinMode(PINLedKuning, OUTPUT); // Membuat PIN LED Kuning sebagai OUTPUT
  pinMode(buzzer, OUTPUT); // Membuat PIN Buzzer sebagai OUTPUT
  Serial.begin(9600); // Memulai serial communication baud rate 9600

}

void loop() {
  int deteksiApi = analogRead(A0); // Membaca sinyal api berdasarkan kisaran tegangan 0 - 5 Volt
  int jarak = map(deteksiApi, 0, 1023, 0, 3); // Memetakan kisaran 0-5 Volt ke tingkatan jarak
  
  switch (jarak) {
    case 0: // Jika ada api dekat sekali
      Serial.println("Api sangat dekat"); // Pesan ada api sangat dekat
      digitalWrite(PINLedMerah, HIGH); // Nyalakan lampu LED merah
      tone(buzzer, frekuensi); // Bunyikan buzzer
      delay(100); // lampu LED dan buzzer aktif selama 100 milidetik
      digitalWrite(PINLedMerah, LOW); // Matikan lampu LED
      noTone(buzzer); // Matikan buzzer
      delay(100); // lampu LED dan buzzer mati selama 100 milidetik
      break;
    case 1:
      Serial.println("Ada api"); // Pesan ada api
      digitalWrite(PINLedKuning, HIGH); // Nyalakan lampu LED kuning
      delay(100); // lampu LED aktif selama 100 milidetik
      digitalWrite(PINLedKuning, LOW); // Matikan lampu LED
      delay(100); // lampu LED mati selama 100 milidetik
      break;
    case 2:
      Serial.println("Tidak ada api"); // Pesan tidak ada api
      break;
  }
  delay(1);
}

File “Mengatasi masalah sensor yang bisa menangkap sinyal dari remote control infrared”:

Kode program

// Protus Tanuhandaru
// www.progresstech.co.id
// www.karyaone.co.id

int PINLed = 12; // Variabel PIN LED
int buzzer = 9; // Variabel PIN Buzzer
int frekuensi = 1000; // Frekuensi pitch Buzzer
int deteksiApi = 8; // Variabel PIN Vout Sensor Api
int statusApi = HIGH; // Status keberadaan api. HIGH = "Tidak ada api"
int hitung = 0; // Variabel perhitungan selama ada api

void setup() {
  pinMode(PINLed, OUTPUT); // Membuat PIN LED sebagai OUTPUT
  pinMode(deteksiApi, INPUT); // Membuat PIN Vout Sensor Api sebagai INPUT
  pinMode(buzzer, OUTPUT); // Membuat PIN Buzzer sebagai OUTPUT
  Serial.begin(9600); // Memulai serial communication baud rate 9600

}

void loop() {
  statusApi = digitalRead(deteksiApi); // Membaca sinyal api: HIGH atau LOW

  if(statusApi == LOW) { // Jika ada api
    hitung++; // hitung = hitung + 1
  } else { // Jika sinyal api (infrared) sempat putus
    hitung = 0; // hitung kembali ke 0
  }
  
  if((statusApi == LOW)&&(hitung > 100)) // Jika ada api lebih dari 100 kali loop perhitungan
  {
    Serial.println("Ada api menyala"); // Pesan ada api
    digitalWrite(PINLed, HIGH); // Nyalakan lampu LED
    tone(buzzer, frekuensi);   // Bunyikan buzzer
    delay(100); // lampu LED dan buzzer aktif selama 100 milidetik
    digitalWrite(PINLed, LOW); // Matikan lampu LED
    noTone(buzzer);// Matikan buzzer
    delay(100); // lampu LED dan buzzer mati selama 100 milidetik
  } else { // Tidak ada api
    Serial.println("Aman. Tidak ada api"); // Pesan tidak ada api
    digitalWrite(PINLed, LOW); // Matikan lampu LED
    noTone(buzzer); // Matikan buzzer
  }

}

Leave a Reply

Your email address will not be published. Required fields are marked *