print("\nThis program will test PIR Sensor")
print("Created by : Muhammad Idris")
print("Date: 1/4/2024\n")
# Import Libraries/modules
from machine import Pin
from utime import sleep
from machine import PWM
import Ultrasonic
import oled_library #This is Oled Library
from machine import Pin, SoftI2C
# Pin Declaration
PIR_pin = Pin(12, Pin.IN)
Red_LED_pin = Pin(5, Pin.OUT)
Green_LED_pin = Pin(18, Pin.OUT)
Buzzer_pin = PWM(Pin(2, Pin.OUT))
oled_pin = SoftI2C(scl=Pin(22), sda=Pin(21))
PB_Button = Pin(27, Pin.IN, Pin.PULL_UP)
# Ultrasonic Sensor Pin Declaration
TRIG_PIN = Pin(13, Pin.OUT) # Trigger pin of Ultrasonic
ECHO_PIN = Pin(14, Pin.IN) # Echo pin of Ultrasonic
# Declare/Create object name for sensors with libraries
sensor_jarak = Ultrasonic.HCSR04(trigger_pin = TRIG_PIN , echo_pin = ECHO_PIN)
# Create an OBJECT name for module with Library
skrin = oled_library.SSD1306_I2C(width=128, height=64, i2c=oled_pin)
# Main Program
# ULTRASONIC PART
# print("\n======DISTANCE OF INCOMING OBJECT======\n")
jarak_dalam_cm = sensor_jarak.distance_cm()
print("An object is detected within:", jarak_dalam_cm, "cm")
# Function to display the distance status
while True:
Red_LED_pin.off() # Initialize
Green_LED_pin.on() # Initialize
Buzzer_pin.init(freq=1500, duty=0) # Initialize
motion_status = PIR_pin.value() # .value --> read digital value (1 or 0)
print("The motion status is ", motion_status)
if jarak_dalam_cm < 200:
for a in range(2):
skrin.fill(0)
skrin.text("Alert!", 5, 30, 1)
skrin.show()
Red_LED_pin.on()
Buzzer_pin.init(freq=500, duty=100) # Initialize
sleep(0.5)
Buzzer_pin.init(freq=330, duty=100) # Initialize
sleep(0.5)
Buzzer_pin.init(freq=500, duty=100) # Initialize
sleep(0.5)
Buzzer_pin.init(freq=335, duty=100) # Initialize
sleep(0.5)
Buzzer_pin.init(freq=550, duty=100) # Initialize
sleep(0.5)
Buzzer_pin.init(freq=330, duty=100) # Initialize
sleep(0.5)
Buzzer_pin.init(freq=500, duty=100) # Initialize
sleep(0.5)
Buzzer_pin.init(freq=300, duty=100) # Initialize
sleep(0.5)
Green_LED_pin.off()
Red_LED_pin.on()
Buzzer_pin.init(freq=1500, duty=0)
sleep(1)
Green_LED_pin.off()
elif jarak_dalam_cm > 200:
Green_LED_pin.on()
Red_LED_pin.off()
skrin.fill(0)
skrin.text("Hello Everyone!", 5, 30, 1)
skrin.show()
else:
Green_LED_pin.on()
Red_LED_pin.off()
skrin.fill(0)
skrin.text("Hello Everyone!", 5, 30, 1)
skrin.show()
if motion_status == True:
for a in range(2):
skrin.fill(0)
skrin.text("Alert!", 5, 30, 1)
skrin.show()
Red_LED_pin.on()
Buzzer_pin.init(freq=500, duty=100) # Initialize
sleep(0.5)
Buzzer_pin.init(freq=330, duty=100) # Initialize
sleep(0.5)
Buzzer_pin.init(freq=500, duty=100) # Initialize
sleep(0.5)
Buzzer_pin.init(freq=335, duty=100) # Initialize
sleep(0.5)
Buzzer_pin.init(freq=550, duty=100) # Initialize
sleep(0.5)
Buzzer_pin.init(freq=330, duty=100) # Initialize
sleep(0.5)
Buzzer_pin.init(freq=500, duty=100) # Initialize
sleep(0.5)
Buzzer_pin.init(freq=300, duty=100) # Initialize
sleep(0.5)
Green_LED_pin.off()
Red_LED_pin.on()
Buzzer_pin.init(freq=1500, duty=0)
sleep(0.5)
Green_LED_pin.off()
else:
Green_LED_pin.on()
Red_LED_pin.off()
skrin.fill(0)
skrin.text("Hello Everyone!", 5, 30, 1)
skrin.show()
sleep(1)
Loading
esp32-devkit-v1
esp32-devkit-v1