diff --git a/index.html b/index.html new file mode 100644 index 0000000..4c37609 --- /dev/null +++ b/index.html @@ -0,0 +1,16 @@ + + + + + Pico W Page + + + +

Raspberry Pi Pico Status

+ + + diff --git a/led-button.py b/led-button.py new file mode 100644 index 0000000..17c91a7 --- /dev/null +++ b/led-button.py @@ -0,0 +1,26 @@ +from machine import Pin +from utime import sleep + +led = Pin(15, Pin.OUT) +button = Pin(16, Pin.IN) +waittime = 0.2 +state = False +running = True +# Setzt den Zustand der LED und wartet dann Sekunden. +def toogle_LED(state,wait): + if state: + led.on() + else: + led.off() + sleep(wait) + +#Endlosschleife +while running: + state = not state # state hin- und herschalten + toogle_LED(state,waittime) # LED umschalten + pressed = button.value() + if pressed == 0: + led.off() + running = False + print('Button gedrückt, Ende') + diff --git a/led.py b/led.py index 3ff9553..a4c1804 100644 --- a/led.py +++ b/led.py @@ -1,21 +1,17 @@ from machine import Pin from utime import sleep -led = Pin(35, Pin.OUT) +led = Pin('LED', Pin.OUT) state = False -LED_PIN = -# Setzt den Zustand der LED und wartet dann Sekunden. -def toggle_LED(state,wait): - if state: - led.on() - else: - led.off() - sleep(wait) +def toggle_LED(state): + if state: + led.on() + else: + led.off() -#Endlosschleife while True: - state = not state # state hin- und herschalten - - toggle_LED(state,0.5) # LED umschalten + state = not state + toggle_LED(state) + sleep(0.5) \ No newline at end of file diff --git a/picow-ledserver.py b/picow-ledserver.py new file mode 100644 index 0000000..938f95f --- /dev/null +++ b/picow-ledserver.py @@ -0,0 +1,103 @@ +#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) + diff --git a/wlan.py b/wlan.py new file mode 100644 index 0000000..9e27a1d --- /dev/null +++ b/wlan.py @@ -0,0 +1,75 @@ +#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 = '' # WLAN Name +passwd = '' # Zugangspasswort des WLAN +rp2.country('DE') # WLAN im deutschen Frequenzspektrum +html = """ + + + Willkommen + + +

Willkommen auf dem Raspberry Pi Pico W

+ +""" +# 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.