import machine
import time
import network
import urequests as requests
# Configuración de WiFi y WhatsApp
WIFI_SSID = "Wokwi-GUEST"
WIFI_PASSWORD = ""
API_URL = "https://api.callmebot.com/whatsapp.php?phone=50496872803&text={}&apikey=7786273"
PHONE_NUMBER = "+50496872803"
API_KEY = "7786273"
MESSAGE_SYSTEM_ON = "El sistema se ha encendido"
MESSAGE_SYSTEM_OFF = "El sistema se ha apagado"
MESSAGE_MOTION_DETECTED = "¡Han entrado a tu habitación!"
MESSAGE_CONFIRMATION = "Mensaje recibido y procesado"
# Configuración de pines
LED_PIN = 2
RELAY_PIN = 14
PIR_PIN = 21 # Pin GPIO donde está conectado el sensor PIR
def connect_to_wifi():
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
if not wlan.isconnected():
print('Conectando a la red WiFi...')
wlan.connect(WIFI_SSID, WIFI_PASSWORD)
while not wlan.isconnected():
time.sleep(1)
print('Conectado a la red WiFi:', WIFI_SSID)
send_whatsapp_message(MESSAGE_SYSTEM_ON) # Enviar mensaje de sistema encendido
def send_whatsapp_message(message):
encoded_message = message.replace(" ", "+")
url = API_URL.format(encoded_message)
response = requests.get(url)
if response.status_code == 200:
print("Mensaje enviado a", PHONE_NUMBER)
else:
print("Error al enviar el mensaje")
def setup_pins():
# Configurar pines para LED y Relé
led = machine.Pin(LED_PIN, machine.Pin.OUT)
relay = machine.Pin(RELAY_PIN, machine.Pin.OUT)
pir = machine.Pin(PIR_PIN, machine.Pin.IN) # Configurar pin del sensor PIR como entrada
# Encender LED y Relé inicialmente
led.on()
relay.on()
# Configurar detección de movimiento (PIR)
pir.irq(trigger=machine.Pin.IRQ_RISING, handler=pir_handler)
def pir_handler(pin):
print("¡Detección de movimiento!")
send_whatsapp_message(MESSAGE_MOTION_DETECTED) # Enviar mensaje de detección de movimiento
# Función para procesar mensajes recibidos
def process_received_message(message):
if message.lower() == "on":
relay.value(1) # Encender el sistema
send_whatsapp_message(MESSAGE_CONFIRMATION) # Enviar mensaje de confirmación
elif message.lower() == "off":
relay.value(0) # Apagar el sistema
send_whatsapp_message(MESSAGE_CONFIRMATION) # Enviar mensaje de confirmación
# Configurar pines y conectar a WiFi
setup_pins()
connect_to_wifi()
# Simulación de recepción de mensajes
while True:
# Aquí deberías implementar la lógica para recibir mensajes de WhatsApp
# y llamar a la función process_received_message con el contenido del mensaje.
# Esto puede variar dependiendo de la biblioteca que estés utilizando para recibir mensajes de WhatsApp.
time.sleep(1) # Simulación de espera para recibir mensajes