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
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.
|
|
|