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 Komponen | Gambar Komponen |
|---|---|
| NodeMcu esp8266 | ![]() |
| Sensor PIR (HC-SR501) | ![]() |
| Buzzer | ![]() |
| LED | ![]() |
| Resistor | ![]() |
| Kabel Jumper | ![]() |
| Breadboard | ![]() |
Skema Koneksi Komponen

| ESP8266 | PIR |
|---|---|
| D2 | OUT |
| 3V3 | VCC |
| GND | GND |
| ESP8266 | LED / Buzzer |
|---|---|
| D3 | LED Merah (+) |
| D4 | Buzzer (+) |
Library yang Digunakan
Pastikan library berikut sudah terpasang pada Arduino IDE:
ESP8266WiFi.hESPAsyncWebServer.hESPAsyncTCP.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
- Rangkai PIR sensor, LED, dan buzzer sesuai dengan skema koneksi.
- Unggah program ke ESP8266 menggunakan Arduino IDE.
- Nyalakan sistem dan tunggu sensor PIR melakukan kalibrasi awal.
- Hubungkan HP atau laptop ke jaringan WiFi SmartAlarm_AP.
- Buka browser dan akses alamat IP
192.168.4.1. - Izinkan notifikasi pada browser untuk menerima peringatan alarm.







