from machine import Pin
import network
import time
from BlynkLib import Blynk
from BlynkTimer import BlynkTimer
BLYNK_AUTH_TOKEN = "Uh2UX6-FVAUOnQXzCDizb56Xhk7Rhbv-"
# Ultrasonic sensor pins
trig = Pin(16, Pin.OUT)
echo = Pin(17, Pin.IN)
wifi = network.WLAN(network.STA_IF)
wifi.active(True)
# Fungsi untuk menghubungkan ke WiFi dengan penanganan error
def connect_wifi():
wifi.connect("Wokwi-GUEST", "")
max_retries = 10
retry = 0
while not wifi.isconnected() and retry < max_retries:
print("Connecting to WiFi...")
retry += 1
time.sleep(1)
if wifi.isconnected():
print("Wifi Connected Successfully")
else:
print("WiFi connection failed!")
connect_wifi()
blynk = Blynk(BLYNK_AUTH_TOKEN)
def read_ultrasonic_sensor():
trig.off()
time.sleep_us(2)
trig.on()
time.sleep_us(10)
trig.off()
while echo.value() == 0:
start_time = time.ticks_us()
while echo.value() == 1:
end_time = time.ticks_us()
duration = time.ticks_diff(end_time, start_time)
distance = (duration * 0.0343) / 2
return distance
# Fungsi untuk membaca sensor dan mengirim data ke Blynk
def update_distance():
distance = read_ultrasonic_sensor()
print(f"Distance: {distance} cm")
blynk.virtual_write(4, distance)
# Menjadwalkan `update_distance` setiap 1 detik
timer = BlynkTimer()
timer.set_interval(1, update_distance)
while True:
blynk.run()
timer.run()