Smart Alarm Rumah Berbasis ESP8266 dengan PIR Motion Sensor

Keamanan rumah merupakan salah satu aspek penting dalam kehidupan sehari-hari. Salah satu solusi sederhana yang dapat diterapkan adalah sistem alarm pendeteksi gerakan. Dengan sistem ini, keberadaan orang atau pergerakan mencurigakan dapat terdeteksi secara otomatis dan langsung memberikan peringatan.

Pada blog post ini, kita akan membahas cara membuat Smart Alarm Rumah menggunakan ESP8266 dan PIR Motion Sensor. Sistem akan memberikan notifikasi ke HP melalui web browser serta menampilkan status sistem melalui LED indikator dan notifikasi pada web browser.

Seperti proyek-proyek sebelumnya, ESP8266 akan dijalankan dalam mode Access Point (AP) dan menggunakan Async Web Server, sehingga sistem dapat digunakan tanpa koneksi internet.

Alat dan Bahan yang Dibutuhkan

Nama KomponenGambar Komponen
NodeMcu esp8266
Sensor PIR (HC-SR501)
Buzzer
LED
Resistor
Kabel Jumper
Breadboard

Skema Koneksi Komponen

ESP8266PIR
D2OUT
3V3VCC
GNDGND
ESP8266LED / Buzzer
D3LED Merah (+)
D4Buzzer (+)

Library yang Digunakan

Pastikan library berikut sudah terpasang pada Arduino IDE:

  • ESP8266WiFi.h
  • ESPAsyncWebServer.h
  • ESPAsyncTCP.h

Code

#include <ESP8266WiFi.h>
#include <ESPAsyncTCP.h>
#include <ESPAsyncWebServer.h>


const char* ssid = "SmartAlarm_AP";
const char* password = "12345678";

AsyncWebServer server(80);

bool motionDetected = false;

String alarmStatusText() {
  String text = "";

  if (motionDetected == true) {
    text = "ALARM AKTIF";
  } else {
    text = "AMAN";
  }

  return text;
}

String htmlPage() {
  String html = "";
  html += "<!DOCTYPE html><html><head>";
  html += "<meta name='viewport' content='width=device-width, initial-scale=1'>";
  html += "<title>Smart Alarm Rumah</title>";
  html += "</head><body>";
  html += "<h1>Smart Alarm Rumah</h1>";
  html += "<p>Status: ";
  html += alarmStatusText();
  html += "</p>";
  html += "<script>";
  html += "if ('Notification' in window) {";
  html += "Notification.requestPermission();";
  html += "}";
  html += "</script>";
  html += "</body></html>";
  return html;
}

void setup() {
  

  pinMode(PIR_PIN, INPUT);
  pinMode(LED_ALARM, OUTPUT);
  pinMode(BUZZER_PIN, OUTPUT);

  WiFi.mode(WIFI_AP);
  WiFi.softAP(ssid, password);

  server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){
    request->send(200, "text/html", htmlPage());
  });

  server.begin();
}

void loop() {
  int pirValue = digitalRead(PIR_PIN);

  if (pirValue == HIGH) {
    motionDetected = true;
    digitalWrite(LED_ALARM, HIGH);
    digitalWrite(BUZZER_PIN, HIGH);
  } else {
    motionDetected = false;
    digitalWrite(LED_ALARM, LOW);
    digitalWrite(BUZZER_PIN, LOW);
  }

  delay(500);
}

Cara Menggunakan Sistem

  1. Rangkai PIR sensor, LED, dan buzzer sesuai dengan skema koneksi.
  2. Unggah program ke ESP8266 menggunakan Arduino IDE.
  3. Nyalakan sistem dan tunggu sensor PIR melakukan kalibrasi awal.
  4. Hubungkan HP atau laptop ke jaringan WiFi SmartAlarm_AP.
  5. Buka browser dan akses alamat IP 192.168.4.1.
  6. Izinkan notifikasi pada browser untuk menerima peringatan alarm.