diff --git a/wireless/webserver.py b/wireless/webserver.py new file mode 100644 index 0000000..b3ca723 --- /dev/null +++ b/wireless/webserver.py @@ -0,0 +1,80 @@ +import network +import socket +import time + +from machine import Pin + +led = Pin(15, Pin.OUT) + +ssid = 'YOUR NETWORK NAME' +password = 'YOUR NETWORK PASSWORD' + +wlan = network.WLAN(network.STA_IF) +wlan.active(True) +wlan.connect(ssid, password) + +html = """ + + Pico W +

Pico W

+

%s

+ + +""" + +max_wait = 10 +while max_wait > 0: + if wlan.status() < 0 or wlan.status() >= 3: + break + max_wait -= 1 + print('waiting for connection...') + time.sleep(1) + +if wlan.status() != 3: + raise RuntimeError('network connection failed') +else: + print('connected') + status = wlan.ifconfig() + print( 'ip = ' + status[0] ) + +addr = socket.getaddrinfo('0.0.0.0', 80)[0][-1] + +s = socket.socket() +s.bind(addr) +s.listen(1) + +print('listening on', addr) + +# Listen for connections +while True: + try: + cl, addr = s.accept() + print('client connected from', addr) + request = cl.recv(1024) + print(request) + + request = str(request) + led_on = request.find('/light/on') + led_off = request.find('/light/off') + print( 'led on = ' + str(led_on)) + print( 'led off = ' + str(led_off)) + + if led_on == 6: + print("led on") + led.value(1) + stateis = "LED is ON" + + if led_off == 6: + print("led off") + led.value(0) + stateis = "LED is OFF" + + response = html % stateis + + cl.send('HTTP/1.0 200 OK\r\nContent-type: text/html\r\n\r\n') + cl.send(response) + cl.close() + + except OSError as e: + cl.close() + print('connection closed') \ No newline at end of file