import network
import time
import ufirebase as firebase
import ujson
from machine import Pin
from hcsr04 import HCSR04
# Configurando o sensor HC-SR04
sensor = HCSR04(trigger_pin=12, echo_pin=14)
# Função para conectar ao Wi-Fi
def conecta_wifi(ssid, senha):
print("Conectando-se ao Wi-Fi", end="")
sta_if = network.WLAN(network.STA_IF)
sta_if.active(True)
sta_if.connect(ssid, senha)
while not sta_if.isconnected():
print(".", end="")
time.sleep(0.1)
print("\nConectado!")
# Função para formatar a distância
def formatar_distancia(distancia_cm):
if distancia_cm < 100:
return f"{distancia_cm:.2f} cm"
else:
metros = int(distancia_cm / 100)
centimetros = distancia_cm % 100
return f"{metros}.{centimetros:.2f} m/cm"
# Função para enviar dados ao Firebase
def envia_dados_firebase(distancia):
firebase.setURL("https://presencepulse-default-rtdb.firebaseio.com")
if distancia <= 100: # Se detectar presença a menos de 100cm
time.sleep(15) # Aguarda 5 segundos
distancia_apos_intervalo = sensor.distance_cm()
print(f"Distância após intervalo: {distancia_apos_intervalo:.2f}cm")
if distancia_apos_intervalo <= 100: # Se ainda detectar presença após o intervalo
imagem_url = "https://gbyteinfo.com.br/presencepulse/imagem.jpg"
data_json = ujson.dumps({
"presenca": "Detectada",
"distancia": f"{distancia_apos_intervalo:.2f}",
"imagem": imagem_url
})
firebase.put("Teste/Dados", data_json)
print("Presença confirmada e dados enviados!")
else:
print("Presença não confirmada após intervalo.")
else:
print("Nenhuma presença detectada.")
# Inicia a conexão Wi-Fi
conecta_wifi('Wokwi-GUEST', '')
while True:
distancia_atual = sensor.distance_cm()
print(f"Distância atual: {distancia_atual:.2f}cm")
envia_dados_firebase(distancia_atual)
time.sleep(5) # Espera 5 segundos antes da próxima leitura