Berikan donasi untuk mendukung pengembangan konten Arduino berkualitas yang lebih baik

Alarm Kebakaran Sederhana dengan ESP8266

Pelajari cara membuat alarm pendeteksi api menggunakan sensor inframerah dan ESP8266.

Komponen yang Dibutuhkan Untuk Proyek Ini

6 item

Di bawah ini Anda akan menemukan semua komponen yang diperlukan untuk menyelesaikan tutorial Arduino ini. Setiap komponen mencakup tautan afiliasi ke berbagai marketplace tempat Anda dapat membelinya.

Mikrokontroler ESP8266

Mikrokontroler ESP8266

Mikrokontroler

Mikrokontroler Wi-Fi murah untuk proyek IoT.

Rp 27.900
Harga terbaik di Shopee
Breadboard

Breadboard

Prototipe

Breadboard untuk membuat prototipe rangkaian tanpa solder.

Rp 8.500
Harga terbaik di Shopee
Sensor Inframerah

Sensor Inframerah

Sensor

Sensor untuk mendeteksi api atau cahaya inframerah.

Rp 4.500
Harga terbaik di Tiktok
Buzzer Aktif

Buzzer Aktif

Output

Buzzer untuk menghasilkan suara peringatan saat api terdeteksi.

Rp 1.500
Harga terbaik di Tokopedia
Kabel Jumper Male-to-Male

Kabel Jumper Male-to-Male

Kabel

Kabel untuk menghubungkan komponen di breadboard.

Rp 9.980
Harga terbaik di Shopee
Kabel Jumper Male-to-Female

Kabel Jumper Male-to-Female

Kabel

Kabel untuk menghubungkan komponen ke ESP8266.

Rp 9.980
Harga terbaik di Shopee

Kode Sumber

FireAlarm.ino
cpp
74 lines
2162 characters
// Program Deteksi Api untuk ESP8266 dengan sensor Infrared HW-201
// Buzzer akan menyala selama 2 detik dan delay 1 detik saat api terdeteksi
// Pin sensor: GPIO5 (D1) | Pin buzzer: GPIO14 (D5)

// Definisi nada dan pin
#define NOTE 1000     // Frekuensi nada buzzer (1000 Hz)
#define FIRE_PIN 5    // GPIO5 (D1) untuk sensor api
#define BUZZER_PIN 14 // GPIO14 (D5) untuk buzzer

// Variabel status
int fireStatus = HIGH;        // Status sensor (HIGH = tidak ada api, LOW = terdeteksi api)
boolean fireDetected = false; // Flag untuk status api

void setup()
{
    // Inisialisasi pin
    pinMode(FIRE_PIN, INPUT);
    pinMode(BUZZER_PIN, OUTPUT);

    // Pastikan buzzer mati saat startup
    noTone(BUZZER_PIN);

    // Inisialisasi komunikasi serial
    Serial.begin(115200);
    Serial.println();
    Serial.println("ESP8266 - Sistem Deteksi Api dengan HW-201");
    Serial.println("==========================================");
    Serial.println("Menggunakan pin GPIO5 (D1) untuk sensor dan GPIO14 (D5) untuk buzzer");
    Serial.println("Memulai pemantauan...");

    // Tunggu sebentar agar sistem stabil
    delay(2000);
}

void loop()
{
    // Baca status sensor api
    fireStatus = digitalRead(FIRE_PIN);

    // Jika api terdeteksi (nilai LOW, logika bisa berbeda tergantung sensor)
    if (fireStatus == LOW)
    {
        if (!fireDetected)
        { // Hanya tampilkan pesan saat pertama kali terdeteksi
            Serial.println("API TERDETEKSI! Mengaktifkan buzzer selama 2 detik...");
            fireDetected = true;
        }

        // Aktifkan buzzer dengan nada yang telah ditentukan
        tone(BUZZER_PIN, NOTE);

        // Matikan buzzer
        noTone(BUZZER_PIN);

        // Delay 0.5 detik sebelum pembacaan berikutnya
        Serial.println("Menunggu 0.5 detik...");
        delay(500);
    }
    else
    {
        // Reset flag jika api tidak terdeteksi
        if (fireDetected)
        {
            Serial.println("Api tidak terdeteksi lagi.");
            fireDetected = false;
        }

        // Pastikan buzzer mati
        noTone(BUZZER_PIN);

        // Delay kecil untuk stabilitas
        delay(100);
    }
}
FireAlarm-ArduinoVersion.ino
cpp
62 lines
1797 characters
#define NOTE 1000       // Frekuensi nada buzzer (1000 Hz)
#define FIRE_PIN 2      // Pin D2 untuk sensor infrared HW-201
#define BUZZER_PIN 3    // Pin D3 untuk buzzer

// Variabel status
int fireStatus = HIGH;     // Status sensor (HIGH = tidak ada api, LOW = terdeteksi api)
boolean fireDetected = false;  // Flag untuk status api

void setup() {
  // Inisialisasi pin
  pinMode(FIRE_PIN, INPUT);
  pinMode(BUZZER_PIN, OUTPUT);
  
  // Pastikan buzzer mati saat startup
  noTone(BUZZER_PIN);
  
  // Inisialisasi komunikasi serial
  Serial.begin(9600);
  Serial.println();
  Serial.println("Arduino - Sistem Deteksi Api dengan HW-201");
  Serial.println("==========================================");
  Serial.println("Menggunakan pin D2 untuk sensor dan D3 untuk buzzer");
  Serial.println("Memulai pemantauan...");
  
  // Tunggu sebentar agar sistem stabil
  delay(2000);
}

void loop() {
  // Baca status sensor api
  fireStatus = digitalRead(FIRE_PIN);
  
  // Jika api terdeteksi (nilai LOW)
  if (fireStatus == LOW) {
    if (!fireDetected) {  // Hanya tampilkan pesan saat pertama kali terdeteksi
      Serial.println("API TERDETEKSI! Mengaktifkan buzzer selama 2 detik...");
      fireDetected = true;
    }
    
    // Aktifkan buzzer dengan nada yang telah ditentukan selama 2 detik
    tone(BUZZER_PIN, NOTE);
    delay(2000); // Buzzer nyala 2 detik
    noTone(BUZZER_PIN);
    
    // Delay 0,5 detik sebelum pembacaan berikutnya
    Serial.println("Menunggu 0,5 detik...");
    delay(500);
    
  } else {
    // Reset flag jika api tidak terdeteksi
    if (fireDetected) {
      Serial.println("Api tidak terdeteksi lagi.");
      fireDetected = false;
    }
    
    // Pastikan buzzer mati
    noTone(BUZZER_PIN);
    
    // Delay kecil untuk stabilitas
    delay(100);
  }
}

Skema/Diagram Rangkaian

Petunjuk Langkah demi Langkah

Siapkan Breadboard

Tempatkan ESP8266, sensor inframerah, dan buzzer di breadboard.

Hubungkan Buzzer

Hubungkan pin positif buzzer ke D5 dan pin negatif ke ground pada ESP8266.

Hubungkan Sensor Inframerah

Hubungkan VCC ke 3.3V, ground ke ground, dan pin output ke D1 pada ESP8266.

Hubungkan Daya

Gunakan kabel USB untuk menghubungkan ESP8266 ke laptop untuk daya dan pemrograman.

Unggah Kode

Buka Arduino IDE, salin kode alarm kebakaran, dan unggah ke ESP8266.

Uji Alarm

Uji rangkaian dengan memaparkan sensor ke api. Buzzer akan berbunyi saat api terdeteksi dan berhenti saat api dimatikan.

Video Hasil