##Modo estacion con la lampara de 8 leds neopixel
import network
import socket
import utime
import uasyncio as asyncio
from machine import Pin
import neopixel # Biblioteca incluida en MicroPython
SSID = "esotilin"
PASSWORD = "12345678"
# ==================== NeoPixel ====================
NUM_LEDS = 8
pin_neo = Pin(15) # Cambia si usas otro pin
np = neopixel.NeoPixel(pin_neo, NUM_LEDS)
def set_all_color(r, g, b):
color = (r, g, b)
for i in range(NUM_LEDS):
np[i] = color
np.write()
print(f"[LEDS] Color actualizado -> R:{r} G:{g} B:{b}")
# Apagar al inicio
set_all_color(0, 0, 0)
# ==================== CONECTAR A AP ====================
print("Conectando al AP...")
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(SSID, PASSWORD)
while not wlan.isconnected():
utime.sleep(1)
print("✅ Conectado! IP:", wlan.ifconfig()[0])
# ==================== SERVIDOR TCP ====================
async def server():
s = socket.socket()
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind(('', 80))
s.listen(1)
print("Servidor TCP escuchando en puerto 80...")
while True:
try:
client, addr = await asyncio.wait_for(s.accept(), 10)
print("Cliente conectado desde:", addr)
data = client.recv(1024).decode().strip()
print("Recibido:", data)
if data.startswith("RGB:"):
try:
rgb = data[4:].split(',')
r = int(rgb[0])
g = int(rgb[1])
b = int(rgb[2])
set_all_color(r, g, b)
except:
print("Error parseando RGB")
client.close()
except:
await asyncio.sleep(0.1)
async def main():
await asyncio.gather(server())
asyncio.run(main())