#encoding: utf-8 import machine import network import socket import rp2 from time import sleep from machine import Pin ssid = 'Echo Base' passwd = 'EbsazdZ,d1GvdKAa,daWgw.DmsaaJaGmsvWM,dws.' rp2.country('DE') led = Pin(15, Pin.OUT) button = Pin(16, Pin.IN) ledstates = {False:'ausgeschaltet',True:'eingeschaltet'} buttonstates = {False:'nicht gedrückt', True:'gedrückt'} def toogle_LED(state): if state: led.on() else: led.off() def load_html(): try: f = open('index.html','r') print(f'f={f}') page = f.read() except IOError as x: print(f'I/O-Fehler: {x}') finally: if f != None: f.close() return page def connect(): wlan = network.WLAN(network.STA_IF) wlan.active(True) wlan.connect(ssid,passwd) while not wlan.isconnected(): print('Waiting for connection...') sleep(1) print(f'connected={wlan.isconnected()}') 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(s): page = load_html() print(f'page={page}') running = True ledstatus = False toogle_LED(ledstatus) #Start web server while running: client, address = s.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 == '/on': print('Kommando on') ledstatus = True elif request =='/off': print('Kommando off') ledstatus = False elif request =='/stop': print('stopping') running = False ledstatus = False toogle_LED(ledstatus) client.send('HTTP/1.0 200 OK\r\nContent-type: text/html\r\n\r\n'.encode('utf-8')) page = page.format(str(ledstatus),button.value()) client.send(page.encode('utf-8')) client.close() ip = connect() print(f'ip={ip}') s = open_socket(ip) serve(s) s.close() toogle_LED(False)