ESP32 Lampu Otomatis Dengan PIR & LDR body { font-family: sans-serif; line-height: 1.6; max-width: 800px; margin: 40px auto; padding: 0 20px; color:
#0078d7; color: white; padding: 20px; margin: 20px 0; border-radius: 5px; } ESP32 Lampu Otomatis Dengan PIR & LDR
ESP32 Lampu Otomatis Dengan PIR & LDR
wokwi
PIR (Passive Infrared)
LDR (Light Dependent Resitor aka Photoresistor)
Script di atas adalah sebuah program yang menggunakan modul machine untuk mengontrol perangkat keras pada mikrokontroler. Dalam contoh ini, script tersebut mengontrol relay dan membaca input dari sensor LDR (Light Dependent Resistor) dan sensor PIR (Passive Infrared).
Berikut adalah penjelasan untuk setiap bagian dari script tersebut:
-
Impor modul:
-
from machine import Pin
from time import sleep
Script mengimpor modul Pin dari modul machine untuk mengontrol pin pada mikrokontroler. Modul time juga diimpor untuk menggunakan fungsi sleep().
-
Inisialisasi pin:
-
relay = Pin(5, Pin.OUT)
relay1 = Pin(21, Pin.OUT)
ldr = Pin(22, Pin.IN)
pir = Pin(19, Pin.IN)
Pada bagian ini, pin mikrokontroler diinisialisasi dengan menggunakan objek Pin. Pin(5, Pin.OUT) menginisialisasi pin 5 sebagai pin output untuk mengendalikan relay. Pin(21, Pin.OUT) menginisialisasi pin 21 sebagai pin output untuk mengendalikan relay1. Pin(22, Pin.IN) menginisialisasi pin 22 sebagai pin input untuk membaca nilai dari sensor LDR. Pin(19, Pin.IN) menginisialisasi pin 19 sebagai pin input untuk membaca nilai dari sensor PIR.
-
Loop utama:
while True:
relay.value(ldr.value() == 1 or 0)
relay1.value(pir.value() == ldr.value() and ldr.value() == 1)
Bagian ini adalah loop utama yang berjalan secara terus-menerus. Pada setiap iterasi loop, kondisi dari relay dan relay1 diperbarui berdasarkan nilai dari sensor LDR dan PIR.
-
relay.value(ldr.value() == 1 or 0) mengatur nilai output relay berdasarkan nilai dari sensor LDR. Jika nilai dari sensor LDR adalah 1, relay akan diaktifkan (nilai output menjadi 1), dan jika nilai dari sensor LDR adalah 0, relay akan dinonaktifkan (nilai output menjadi 0).
-
relay1.value(pir.value() == ldr.value() and ldr.value() == 1) mengatur nilai output relay1 berdasarkan nilai dari sensor PIR dan sensor LDR. Relay1 hanya akan diaktifkan (nilai output menjadi 1) jika nilai dari sensor PIR dan sensor LDR keduanya adalah 1. Jika salah satu atau kedua sensor bernilai 0, relay1 akan dinonaktifkan (nilai output menjadi 0).
Setelah mengatur nilai relay dan relay1, program akan melanjutkan ke iterasi berikutnya dalam loop utama.
Kesimpulan :
LED yang diatas bisa dianggap sebagai lampu bulb AC 220v yang akan di kontrol oleh ESP32 dan di switch dengan Relay, bulb yang diatas akan nyala ketika kondisi gelap dan ada orang berarti bulb tersebut akan digunakan untuk bagian dalam rumah
sedangkan bulb yang kedua digunakan pada luar rumah yang akan aktif hanya ketika pada kondisi gelap saja dan nonaktif ketika kondisi terang
NOTE :
Relay Harus DC3V kalau DC5V gk ke trigger sama ESP32
Discussion (0)