from hcsr04 import HCSR04
from machine import Pin, PWM
import time
from defs import *
from wifi_lib import conecta
from umqttsimple import MQTTClient
servoEntrada = PWM(Pin(15,Pin.OUT), freq=50)
servoSaida = PWM(Pin(2,Pin.OUT), freq=50)
sensorEntrada = HCSR04(trigger_pin=13, echo_pin=12, echo_timeout_us=1000000)
sensorSaida = HCSR04(trigger_pin=14, echo_pin=27, echo_timeout_us=1000000)
contagem = 0
#Duty 24 = porta aberta, duty 123 porta fechada
def recebi(topico, msg):
print(f"{msg}")
def switch(Situacao):
if Situacao == 1:
servoSaida.duty(24)
servoEntrada.duty(123)
elif Situacao == 2:
servoEntrada.duty(123)
servoSaida.duty(123)
client.publish(mqtt_topic, str("Fechado"))
elif Situacao == 0:
servoEntrada.duty(24)
servoSaida.duty(123)
station = conecta(wifi_ssid, wifi_password)
if not station.isconnected:
print("Erro na conexão")
else:
print("conectado")
client = MQTTClient(mqtt_client_id, mqtt_server, mqtt_port, mqtt_user, mqtt_password)
client.connect()
client.set_callback(recebi)
switch(contagem)
while True:
distEntrada = sensorEntrada.distance_cm()
distSaida = sensorSaida.distance_cm()
if distEntrada < 82:
time.sleep(0.5)
contagem += 1
switch(contagem)
if distSaida < 82 and contagem < 2:
time.sleep(0.5)
contagem = 0
switch(contagem)
'''if distEntrada < 82:
contagem += 1
print(contagem)
print(distEntrada)
time.sleep(2)
distEntrada = sensorEntrada.distance_cm()
if contagem == 1:
servoSaida.duty(24)
servoEntrada.duty(123)
if distSaida < 82:
contagem = 0
print(contagem)
servoEntrada.duty(24)
servoSaida.duty(123)
#if distEntrada < 82:
#contagem += 1
#print(contagem)
#time.sleep(1)
if contagem == 2:
servoEntrada.duty(123)
servoSaida.duty(123)
print("fechadas")
servoSaida.duty(24)
servoEntrada.duty(123)
time.sleep(1)
if distSaida < 82 and contagem < 2:
contagem = 0
print(contagem)
servoEntrada.duty(24)
servoSaida.duty(123)
elif contagem == 2:
servoEntrada.duty(123)
servoSaida.duty(123)
else:
servoEntrada.duty(24)'''