ESP32 Sensor Gerakan Dengan PIR (Passive Infrared)
ESP32 Sensor Gerakan Dengan PIR (Passive Infrared)
PIR (PASSIVE INFRARED) ESP32
Wokwi
Script
from machine import Pin
import time
pir_sensor_pin = Pin(23, Pin.IN)
buzzer_pin = Pin(15, Pin.OUT)
led_pin = Pin(18, Pin.OUT)
while True:
if pir_sensor_pin.value():
print("Gerakan terdeteksi!")
buzzer_pin.on()
led_pin.on()
time.sleep(1)
buzzer_pin.off()
led_pin.off()
else:
print("Tidak ada gerakan.")
time.sleep(0.1)
Penjelasan
Skrip ini menggunakan MicroPython pada ESP32 untuk menghubungkan dan mengontrol beberapa perangkat seperti sensor PIR (inframerah pasif), buzzer, dan LED.
Pertama, skrip ini mengimpor modul yang diperlukan dari pustaka mesin: pin yang mengontrol pin GPIO dan modul waktu yang mengatur waktu. Selanjutnya, inisialisasi pin yang digunakan untuk setiap perangkat.
Pir_sensor_pin dikonfigurasi sebagai input pada nomor pin 23. Pin ini digunakan untuk menerima sinyal dari sensor PIR yang mendeteksi gerakan.
Buzzer_Pin dikonfigurasi sebagai keluaran pada nomor pin 15. Pin ini mengontrol buzzer untuk mengeluarkan suara.
led_pin diatur sebagai output pada nomor pin 18. Pin ini mengontrol LED untuk menghidupkan atau mematikan iluminasi. Skrip kemudian memasuki loop while-true utama.
Ini berarti program akan terus berjalan dalam loop tak terbatas kecuali dihentikan secara manual. Di dalam loop ada if-else conditional yang memeriksa nilai pin pir_sensor_pin. Jika nilai pin benar (artinya gerakan telah terdeteksi), beberapa tindakan dilakukan. Mengeluarkan pesan "Gerak terdeteksi!" ke konsol. Aktifkan bel dengan memanggil metode on() dari objek Buzzer_Pin.
Nyalakan LED dengan memanggil metode on() dari objek led_pin. Gunakan fungsi sleep() mesin waktu untuk menunda eksekusi program selama satu detik. Matikan buzzer dengan memanggil metode off() dari objek Buzzer_Pin. Matikan LED dengan memanggil metode off() dari objek led_pin. Jika nilai pin pir_sensor_pin salah (tidak ada gerakan yang terdeteksi), tindakan berikut dilakukan:
Pesan "Tidak ada gerakan" ditampilkan. ke konsol. Gunakan fungsi sleep() mesin waktu untuk menunda eksekusi program selama 0,1 detik. Dengan skrip ini, ESP32 akan terus memantau sensor PIR dan mengontrol buzzer dan LED berdasarkan deteksi gerakan. Saat gerakan terdeteksi, bel dan LED akan aktif selama 1 detik sebagai respons terhadap gerakan. Jika tidak ada gerakan yang terdeteksi, ESP32 menunggu 0,1 detik dan memeriksa kembali.
議論 (0)