import network
import socket
from machine import Pin
import utime
# Configurar los pines para los LEDs
led_rojo = Pin(15, Pin.OUT)
led_amarillo = Pin(13, Pin.OUT)
led_verde = Pin(16, Pin.OUT)
# Conectar a la red Wi-Fi
ssid = 'CWC-1152152' # Reemplaza con el nombre de tu red Wi-Fi
password = 'wz6Hkfyyt8mv' # Reemplaza con la contraseña de tu red Wi-Fi
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(ssid, password)
# Esperar a que se conecte
max_wait = 10
while max_wait > 0:
if wlan.status() < 0 or wlan.status() >= 3:
break
max_wait -= 1
print('Esperando conexión...')
utime.sleep(1)
if wlan.status() != 3:
raise RuntimeError('No se pudo conectar a la red Wi-Fi')
else:
print('Conectado')
status = wlan.ifconfig()
print('IP: ' + status[0])
# Función para manejar las solicitudes
def web_page():
html = """<!DOCTYPE html>
<html>
<head>
<title>Control del Semaforo</title>
</head>
<body>
<h1>Control del Semáforo</h1>
<button onclick="location.href='/yellow'">Encender Amarillo</button>
<button onclick="location.href='/red'">Encender Rojo</button>
<button onclick="location.href='/green'">Encender Verde</button>
</body>
</html>"""
return html
# Crear el socket y esperar conexiones
addr = socket.getaddrinfo('0.0.0.0', 80)[0][-1]
s = socket.socket()
s.bind(addr)
s.listen(1)
print('Escuchando en', addr)
while True:
cl, addr = s.accept()
print('Cliente conectado desde', addr)
request = cl.recv(1024)
request = str(request)
print('Solicitud =', request)
if '/yellow' in request:
led_rojo.value(0)
led_amarillo.value(1)
led_verde.value(0)
elif '/red' in request:
led_rojo.value(1)
led_amarillo.value(0)
led_verde.value(0)
elif '/green' in request:
led_rojo.value(0)
led_amarillo.value(0)
led_verde.value(1)
response = web_page()
cl.send('HTTP/1.1 200 OK\n')
cl.send('Content-Type: text/html\n')
cl.send('Connection: close\n\n')
cl.sendall(response)
cl.close()