import network
import machine
import time
import urequests
from machine import Pin, time_pulse_us
SSID = "Wokwi-GUEST"
PASSWORD = ""
THINGSPEAK_URL = "https://api.thingspeak.com/update"
API_KEY = "5I9SW7BQ8WMFFM9D"
trig_pin = Pin(5, Pin.OUT)
echo_pin = Pin(18, Pin.IN)
led_verde = machine.Pin(13, machine.Pin.OUT)
led_rojo = machine.Pin(2, machine.Pin.OUT)
def connect_wifi():
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(SSID, PASSWORD)
print("Conectando a WiFi....")
while not wlan.isconnected():
time.sleep(1)
print("Conectado exitosamente a WiFi")
def medir_distancia():
trig_pin.value(0)
time.sleep_us(2)
trig_pin.value(1)
time.sleep_us(10)
trig_pin.value(0)
duration_us = time_pulse_us(echo_pin, 1)
distance_cm = duration_us / 58.0
return distance_cm
def enviar_a_thingspeak(estado):
url = f"{THINGSPEAK_URL}?api_key={API_KEY}&field7={estado}"
try:
respuesta = urequests.get(url)
print("Enviado a ThingSpeak:", respuesta.text)
respuesta.close()
except Exception as e:
print("Error al enviar datos:", e)
connect_wifi()
try:
while True:
distancia = medir_distancia()
print(f"Distancia medida: {distancia:} cm")
if distancia < 10:
led_rojo.on()
led_verde.off()
enviar_a_thingspeak(1)
else:
led_rojo.off()
led_verde.on()
enviar_a_thingspeak(0)
time.sleep(15)
except KeyboardInterrupt:
print("Programa detenido.")