import machine
import socket
import utime
import network
import time
# Conéctese a la red Wi-Fi
print("Conectando a la red WiFi...", end="")
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect("Totalplay-2.4-e198", "$XyF9hz7hf6YxNCKG")
while not wlan.isconnected():
print(".", end="")
time.sleep(0.5)
print(" Conectado!")
print(wlan.ifconfig())
# Configuración de pines para controlar LEDs
red = machine.Pin(13, machine.Pin.OUT)
green = machine.Pin(14, machine.Pin.OUT)
blue = machine.Pin(15, machine.Pin.OUT)
# Función para medir la temperatura
sensor_temp = machine.ADC(4)
conversion_factor = 3.3 / (65535)
def read_temperature():
temperature_value = sensor_temp.read_u16() * conversion_factor
temperature_celsius = 27 - (temperature_value - 0.706) / 0.00172169 / 8
print("Temperatura:", temperature_celsius, "°C")
return temperature_celsius
# Función para generar la página web
def generate_webpage(temperature):
html = f"""
<!DOCTYPE html>
<html>
<body>
<h1>Control de LED</h1>
<form action="/red" method="get">
<button type="submit">LED Rojo</button>
</form>
<form action="/green" method="get">
<button type="submit">LED Verde</button>
</form>
<form action="/blue" method="get">
<button type="submit">LED Azul</button>
</form>
<form action="/off" method="get">
<button type="submit">Apagar LEDs</button>
</form>
<p>Temperatura: {temperature} °C</p>
</body>
</html>
"""
return html
# Función para servir solicitudes web
def serve_web_requests():
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('', 80))
server_socket.listen(5)
while True:
client_socket, addr = server_socket.accept()
request = client_socket.recv(1024).decode('utf-8')
if request:
print("Solicitud recibida:")
print(request)
if "/red" in request:
red.on()
green.off()
blue.off()
elif "/green" in request:
red.off()
green.on()
blue.off()
elif "/blue" in request:
red.off()
green.off()
blue.on()
elif "/off" in request:
red.off()
green.off()
blue.off()
temperature = read_temperature()
response = generate_webpage(temperature)
client_socket.send("HTTP/1.1 200 OK\n")
client_socket.send("Content-Type: text/html\n")
client_socket.send("Connection: close\n\n")
client_socket.sendall(response)
client_socket.close()
try:
serve_web_requests()
except KeyboardInterrupt:
print("\nDeteniendo el servidor web...")
red.off()
green.off()
blue.off()
wlan.disconnect()
wlan.active(False)
print("Aplicación detenida.")