import network
import time
from machine import Pin, time_pulse_us
from blynk import Blynk
from definitions import BLYNK_TOKEN
SSID = "Wokwi-GUEST"
PASSWORD = ""
wifi = network.WLAN(network.STA_IF)
wifi.active(True)
print("Conectando ao Wi-Fi...")
wifi.connect(SSID, PASSWORD)
while not wifi.isconnected():
time.sleep(1)
print("Wi-Fi conectado!")
print(wifi.ifconfig())
blynk = Blynk(
BLYNK_TOKEN,
wifi_ssid=SSID,
wifi_password=PASSWORD,
verbose=True
)
trig = Pin(4, Pin.OUT)
echo = Pin(5, Pin.IN)
leds = [
Pin(21, Pin.OUT),
Pin(26, Pin.OUT),
Pin(13, Pin.OUT),
Pin(23, Pin.OUT),
Pin(19, Pin.OUT),
Pin(2, Pin.OUT)
]
DISTANCIA_ATIVACAO = 100
TEMPO_DESLIGAR = 5
ultimo_movimento = 0
faixa_ativa = False
pedestres = 0
def acender_faixa():
for led in leds:
led.on()
def apagar_faixa():
for led in leds:
led.off()
def animacao_inicio():
for led in leds:
led.on()
time.sleep(0.1)
def medir_distancia():
trig.off()
time.sleep_us(2)
trig.on()
time.sleep_us(10)
trig.off()
try:
duracao = time_pulse_us(echo, 1, 30000)
distancia = (duracao * 0.0343) / 2
return distancia
except:
return None
while True:
distancia = medir_distancia()
if distancia is not None:
print("Distância:", round(distancia, 1), "cm")
if distancia <= DISTANCIA_ATIVACAO:
if not faixa_ativa:
pedestres += 1
print("Pedestres:", pedestres)
blynk.publish("v0", str(pedestres))
animacao_inicio()
acender_faixa()
faixa_ativa = True
ultimo_movimento = time.time()
elif faixa_ativa:
if (time.time() - ultimo_movimento) > TEMPO_DESLIGAR:
apagar_faixa()
faixa_ativa = False
blynk.publish("v0", "0")
time.sleep(0.1)