from machine import Pin, Timer
import time
import urequests  # Módulo para fazer requisições HTTP em MicroPython

# Configuração dos pinos
pir_pin = Pin(14, Pin.IN)    # Pino do sensor PIR
led_pin = Pin(2, Pin.OUT)    # Pino do LED
buzzer_pin = Pin(15, Pin.OUT)    # Pino do buzzer

# Configurações do Telegram
TELEGRAM_BOT_TOKEN = '1949478841'
TELEGRAM_CHAT_ID = '1949478841'

# Função para detectar movimento e acionar o LED, o buzzer e enviar mensagem via Telegram
def detect_motion(timer):
    if pir_pin.value() == 1:    # Verifica se o sensor PIR detectou movimento
        led_pin.on()    # Liga o LED
        ativar_buzzer(8)    # Ativa o buzzer por 8 segundos
        enviar_mensagem_telegram("Movimento detectado!")  # Envia mensagem via Telegram
        led_pin.off()    # Desliga o LED

# Função para ativar o buzzer
def ativar_buzzer(duracao):
    for _ in range(int(duracao * 100)):    # Ajuste a frequência do buzzer
        buzzer_pin.value(1)
        time.sleep(0.005)    # Tempo de ligar o buzzer (em segundos)
        buzzer_pin.value(0)
        time.sleep(0.005)    # Tempo de desligar o buzzer (em segundos)

# Função para enviar mensagem via Telegram
def enviar_mensagem_telegram(mensagem):
    url = "https://api.telegram.org/bot{}/sendMessage?chat_id={}&text={}".format(TELEGRAM_BOT_TOKEN, TELEGRAM_CHAT_ID, mensagem)
    response = urequests.get(url)
    response.close()

# Configuração do temporizador para verificar o sensor PIR a cada 0.5 segundos
tim = Timer(-1)
tim.init(period=500, mode=Timer.PERIODIC, callback=detect_motion)