Skip to content

Commit 5a823b1

Browse files
author
Alasdair Allan
committed
added webserver example
1 parent c82971b commit 5a823b1

File tree

1 file changed

+80
-0
lines changed

1 file changed

+80
-0
lines changed

wireless/webserver.py

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
import network
2+
import socket
3+
import time
4+
5+
from machine import Pin
6+
7+
led = Pin(15, Pin.OUT)
8+
9+
ssid = 'YOUR NETWORK NAME'
10+
password = 'YOUR NETWORK PASSWORD'
11+
12+
wlan = network.WLAN(network.STA_IF)
13+
wlan.active(True)
14+
wlan.connect(ssid, password)
15+
16+
html = """<!DOCTYPE html>
17+
<html>
18+
<head> <title>Pico W</title> </head>
19+
<body> <h1>Pico W</h1>
20+
<p>%s</p>
21+
</body>
22+
</html>
23+
"""
24+
25+
max_wait = 10
26+
while max_wait > 0:
27+
if wlan.status() < 0 or wlan.status() >= 3:
28+
break
29+
max_wait -= 1
30+
print('waiting for connection...')
31+
time.sleep(1)
32+
33+
if wlan.status() != 3:
34+
raise RuntimeError('network connection failed')
35+
else:
36+
print('connected')
37+
status = wlan.ifconfig()
38+
print( 'ip = ' + status[0] )
39+
40+
addr = socket.getaddrinfo('0.0.0.0', 80)[0][-1]
41+
42+
s = socket.socket()
43+
s.bind(addr)
44+
s.listen(1)
45+
46+
print('listening on', addr)
47+
48+
# Listen for connections
49+
while True:
50+
try:
51+
cl, addr = s.accept()
52+
print('client connected from', addr)
53+
request = cl.recv(1024)
54+
print(request)
55+
56+
request = str(request)
57+
led_on = request.find('/light/on')
58+
led_off = request.find('/light/off')
59+
print( 'led on = ' + str(led_on))
60+
print( 'led off = ' + str(led_off))
61+
62+
if led_on == 6:
63+
print("led on")
64+
led.value(1)
65+
stateis = "LED is ON"
66+
67+
if led_off == 6:
68+
print("led off")
69+
led.value(0)
70+
stateis = "LED is OFF"
71+
72+
response = html % stateis
73+
74+
cl.send('HTTP/1.0 200 OK\r\nContent-type: text/html\r\n\r\n')
75+
cl.send(response)
76+
cl.close()
77+
78+
except OSError as e:
79+
cl.close()
80+
print('connection closed')

0 commit comments

Comments
 (0)