Cara Membuat Alarm Maling dengan Sensor PIR dan Keypad Arduino Uno
Oleh Anang H. Darmawan

Foto: Vishnu Mohanan / Unsplash
Alarm maling dari Arduino Uno termasuk proyek yang kelihatannya gampang: sensor PIR mendeteksi gerakan, buzzer berbunyi, selesai. Kenyataannya, yang paling sering bikin pusing justru alarm yang berbunyi sendiri jam dua pagi padahal tidak ada siapa-siapa. Kalau kamu paham cara kerja PIR dan menyusun logika arm/disarm dengan benar sejak awal, masalah itu bisa dipangkas jauh.
Cara kerja sensor PIR yang perlu kamu tahu
Modul PIR yang paling umum dipakai, HC-SR501, tidak "melihat" benda. Ia membaca perubahan radiasi inframerah (panas) yang melintas di depan lensanya. Tubuh manusia yang bergerak menghasilkan perubahan itu, dan output modul naik jadi HIGH. Benda diam sepanas apa pun tidak memicu apa-apa selama posisinya tetap.
Ada tiga hal di modul ini yang sering dilewatkan. Pertama, jeda pemanasan: setelah dinyalakan, PIR butuh waktu stabil sekitar satu menit, dan selama itu outputnya bisa naik turun acak. Kedua, dua potensiometer kecil di papannya, satu untuk sensitivitas (jangkauan, umumnya di kisaran 3 sampai 7 meter menurut datasheet modul) dan satu untuk lama output bertahan HIGH. Ketiga, jumper mode trigger: posisi repeat membuat output tetap HIGH selama gerakan masih ada, posisi single hanya memicu sekali lalu turun.
Saran saya, putar potensiometer waktu ke posisi paling pendek dan biarkan Arduino yang mengatur berapa lama alarm berbunyi. Logika di kode jauh lebih mudah diatur dan dicek daripada memutar trimpot kecil pakai obeng.
Keypad untuk arm dan disarm
Tanpa keypad, alarm hanya punya dua keadaan: nyala atau mati lewat saklar. Saklar gampang ditemukan maling. Keypad 4x4 memberi lapisan PIN, dan di situ alarm mulai terasa seperti perangkat sungguhan.
Keypad 4x4 memakai 8 pin digital (4 baris, 4 kolom) dan biasanya dibaca dengan library Keypad. Arduino Uno punya 14 pin digital, jadi setelah keypad, PIR, dan buzzer terpasang, sisa pin untuk LCD 16x2 cukup ketat. Pakai LCD dengan modul I2C supaya cukup dua jalur data, yaitu A4 (SDA) dan A5 (SCL) di Uno.
Susun status alarm sebagai state machine sederhana dengan empat keadaan: nonaktif, siaga, tenggang, dan intrusi. Contoh alurnya, pemilik memasukkan PIN lalu menekan #, dan sistem memberi 30 detik untuk keluar ruangan sebelum benar-benar siaga. Saat PIR terpicu, sistem masuk masa tenggang 15 detik. Kalau PIN benar dimasukkan dalam waktu itu, sistem kembali nonaktif. Kalau salah atau waktu habis, buzzer bunyi terus.
Pakai millis() untuk menghitung jeda, jangan delay(). Dengan delay(15000), Arduino berhenti membaca keypad selama 15 detik penuh, dan pemilik rumah tidak bisa mematikan alarmnya sendiri.
Kesalahan umum yang bikin false alarm
Sebagian besar false alarm yang saya temui berasal dari penempatan, bukan kode. PIR yang menghadap jendela bisa terpicu sinar matahari yang bergeser atau tirai yang tertiup angin. PIR di dekat kipas angin, AC, atau dispenser air panas juga rawan karena ada aliran udara bersuhu beda yang lewat di depan lensa.
Penyebab kedua adalah catu daya. Kalau buzzer atau relay sirene menarik arus besar dari jalur 5V yang sama dengan PIR, tegangan bisa turun sesaat ketika buzzer bunyi, dan PIR membacanya sebagai pemicu. Hasilnya alarm yang terus memicu dirinya sendiri. Pisahkan jalur daya sirene, atau minimal tambahkan kapasitor elektrolit di dekat pin VCC PIR.
Penyebab ketiga, kode yang langsung bereaksi pada satu pembacaan HIGH. Coba minta dua pembacaan HIGH dalam rentang satu sampai dua detik sebelum menganggapnya gerakan sungguhan. Filter kecil ini sudah menyaring banyak pemicu sesaat.
Hewan peliharaan juga pemicu klasik. Kucing yang lewat memancarkan panas seperti manusia kecil. Pasang sensor lebih tinggi dan arahkan sedikit ke atas supaya area lantai tidak tercakup penuh, lalu uji dengan berjalan pelan di depannya.
Mulai dari mana
Kalau ini proyek pertama kamu dengan sensor, pemanasan dulu dengan yang lebih kecil. 10 proyek Arduino pemula disusun bertahap dari blink LED, membaca sensor, sampai menggerakkan motor, lengkap dengan kode dan skema wiring tiap proyek. Harganya Rp150.000.
Kalau kamu ingin langsung punya alarm yang jalan, Alarm Keamanan PIR + Keypad Arduino Uno sudah berisi kode .ino siap upload dengan PIN 4 digit untuk arm/disarm, LCD 16x2 yang menampilkan status aman, siaga, atau intrusi, plus masa tenggang sebelum buzzer bunyi terus. Semua berjalan lokal tanpa WiFi, dan paketnya menyertakan skema wiring, daftar komponen, serta panduan instalasi. Harganya Rp150.000, dan cocok juga untuk tugas akhir bertema keamanan berbasis mikrokontroler.
Langkah pertamamu hari ini: rakit PIR saja di breadboard, sambungkan outputnya ke LED, diamkan satu menit, lalu berjalan di depannya dari jarak 1, 3, dan 5 meter. Catat kapan LED menyala. Data sederhana itu yang menentukan posisi pasang dan setelan sensitivitas yang pas untuk ruanganmu.
