You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

75 lines
1.8 KiB

#encoding: utf-8
import machine
import network
import socket
import rp2
from time import sleep
from machine import Pin
led = Pin(15, Pin.OUT)
ssid = '<ssid>' # WLAN Name
passwd = '<passwd>' # Zugangspasswort des WLAN
rp2.country('DE') # WLAN im deutschen Frequenzspektrum
html = """<!DOCTYPE html>
<html>
<head>
<title>Willkommen</title>
</head>
<body>
<h2> Willkommen auf dem Raspberry Pi Pico W</h2>
</head>
</html>"""
# Verbindung aufbauen
def connect():
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(ssid,passwd)
while not wlan.isconnected(): # Wiederhlen, bis Verbindung besteht
print('Waiting for connection...')
sleep(1)
print(f'connected={wlan.isconnected()}')
led.on() # Wenn die Verbindung zum WLAN steht, Status LED einschalten.
return wlan.ifconfig()
# Bindet einen Socket an die Verbindung
def open_socket(ip):
# Socket öffnen
s = socket.socket()
address = socket.getaddrinfo('0.0.0.0',80)[0][-1]
print(f'address={address}')
s.bind(address)
s.listen(1)
return s
def serve(connection):
running = True
#Start web server
while running:
client, adress = connection.accept()
request = client.recv(1024)
print(f'1request={request}')
request = str(request)
print(f'2request={request}')
try:
request = request.split()[1]
print(f'3request={request}')
except IndexError:
pass
if request =='/stop':
print('stopping')
running = False
client.send('HTTP/1.0 200 OK\r\nContent-type: text/html\r\n\r\n'.encode('utf-8'))
client.send(html.encode('utf-8'))
client.close()
ip = connect()
print(f'ip={ip}')
s = open_socket(ip)
serve(s)
s.close()
led.off()
print(f'socket={s}')
#Hier ist jetzt die Verbindung aufgebaut und der Socket einsatzbereit.