Meine aktueller code ist:
Code: Alles auswählen
import rp2
import network
import ubinascii
import machine
import urequests as requests
import time
from secrets import secrets
import socket
rp2.country('DE')
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
# wlan.config(pm = 0xa11140)
# See the MAC address in the wireless chip OTP
mac = ubinascii.hexlify(network.WLAN().config('mac'),':').decode()
print('mac = ' + mac)
# Other things to query
# print(wlan.config('channel'))
# print(wlan.config('essid'))
# print(wlan.config('txpower'))
# Load login data from different file for safety reasons
ssid = secrets['ssid']
pw = secrets['pw']
wlan.connect(ssid, pw)
# Wait for connection with 10 second timeout
timeout = 10
while timeout > 0:
if wlan.status() < 0 or wlan.status() >= 3:
break
timeout -= 1
print('Waiting for connection...')
time.sleep(1)
# Define blinking function for onboard LED to indicate error codes
def blink_onboard_led(num_blinks):
led = machine.Pin(17, machine.Pin.OUT)
for i in range(num_blinks):
led.on()
time.sleep(.2)
led.off()
time.sleep(.2)
# Handle connection error
# Error meanings
# 0 Link Down
# 1 Link Join
# 2 Link NoIp
# 3 Link Up
# -1 Link Fail
# -2 Link NoNet
# -3 Link BadAuth
wlan_status = wlan.status()
blink_onboard_led(wlan_status)
if wlan_status != 3:
raise RuntimeError('Wi-Fi connection failed')
else:
print('Connected')
status = wlan.ifconfig()
print('ip = ' + status[0])
# Function to load in html page
def get_html(html_name):
with open(html_name, 'r') as file:
html = file.read()
return html
# HTTP server with socket
addr = socket.getaddrinfo('0.0.0.0', 80)[0][-1]
s = socket.socket()
s.bind(addr)
s.listen(1)
print('Listening on', addr)
led = machine.Pin(17, machine.Pin.OUT)
# Listen for connections
while True:
try:
cl, addr = s.accept()
print('Client connected from', addr)
r = cl.recv(1024)
# print(r)
r = str(r)
led_on = r.find('?led=on')
led_off = r.find('?led=off')
print('led_on = ', led_on)
print('led_off = ', led_off)
if led_on == 10:
print('LED ON')
led.value(1)
time.sleep (2)
led.value(0)
print('LED OFF')
response = get_html('index.html')
cl.send('HTTP/1.0 200 OK\r\nContent-type: text/html\r\n\r\n')
cl.send(response)
cl.close()
except OSError as e:
cl.close()
print('Connection closed')
Aber eigendlich Spielt ja der ganze code ja keine Rolle. Es gibt auch noch eine "html" Datei und eine mit dem Wlan Passwort und dem Namen.
Es geht aber nur um:
[code] if led_on == 10:
print('LED ON')
led.value(1)
time.sleep (2)
led.value(0)
print('LED OFF')
Das proplem ist nähmlich das ich hier Netzwerkcode habe und wenn der Microcontroler plötzlich pausiert, bearbeitet er auch keine eingehenden Befehle mehr, und die Verbindung zur website bricht ab.
Welche libary/funktion kann ich in dem fall am besten benutzen?
Schonmal danke im voraus.
Gruß Jakob.