|

Proyek Robotik #5: Sensor Api

Proyek ini adalah sistem deteksi api otomatis menggunakan sensor api, ESP32, servo motor, dan LED. Ketika sensor mendeteksi api, servo akan bergerak untuk melakukan aksi (misalnya membuka katup pemadam) dan LED indikator akan mati. Jika tidak ada api, LED akan menyala sebagai penanda sistem standby.

Cara Kerja:

  1. Sensor api membaca adanya nyala api di sekitarnya melalui pin digital (D0).
  2. Jika api terdeteksi:
    • Sensor mengirimkan logika LOW (0) ke ESP32.
    • Servo bergerak ke 90°, seolah-olah melakukan tindakan seperti membuka katup pemadam.
    • LED dimatikan (indikasi bahaya).
  3. Jika tidak ada api:
    • Sensor mengirimkan logika HIGH (1) ke ESP32.
    • Servo kembali ke posisi 0°.
    • LED menyala sebagai indikator sistem dalam kondisi aman/standby.
  4. Sistem terus membaca sensor setiap 100 milidetik.

Komponen yang Digunakan:

  • 1 × ESP32
  • 1 x Sensor Api (Flame Sensor)
  • 1 x Servo Motor (SG90 atau sejenis)
  • 1 x LED 5mm warna merah
  • 1 x Resistor 220Ω – 330Ω
  • 1 x Breadboard
  • Kabel jumper
  • 1 x Kabel USB (untuk upload dan power)

Kode:

#include <ESP32Servo.h>

const int sensorPin = 34;   // Pin untuk sensor api
const int ledPin = 23;      // Pin untuk LED
const int servoPin = 21;    // Pin untuk servo

Servo servoMotor;

void setup() {
    Serial.begin(115200);   // Inisialisasi Serial Monitor
    pinMode(sensorPin, INPUT);
    pinMode(ledPin, OUTPUT);
    servoMotor.attach(servoPin);
    servoMotor.write(0);     // Posisi awal servo
    digitalWrite(ledPin, LOW); // Matikan LED saat mulai
}

void loop() {
    int sensorValue = digitalRead(sensorPin);  // Baca nilai dari sensor api
    Serial.println(sensorValue);        // Tampilkan hasil pembacaan sensor

    if (sensorValue == LOW) {    // Jika api terdeteksi, sesuaikan dengan kondisi sensor Anda
        digitalWrite(ledPin, LOW);   // Matikan LED
        servoMotor.write(90);         // Gerakkan servo ke 90 derajat
    } else {                         // Jika tidak ada api terdeteksi
        digitalWrite(ledPin, HIGH);    // Nyalakan LED
        servoMotor.write(0);          // Kembalikan servo ke posisi awal
    }

    delay(100);  // Jeda untuk stabilitas
}

Similar Posts

Leave a Reply

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