Mahlzeit an alle,
vorab, bin totaler Anfänger in sachen Python. Verstädnis von PHP, SQL habe ich ausreichend die letzten "Jahrzehnte" angefangen von PHP 3 sammeln können, aber Python ist eine andere "Welt" in "meiner Welt".
Ich möchte die Wetterstation nachbauen, und funktioniert auch super. Die Werte des BME280 werden mit dem Raspberry Pico W hervoragend an meine Webseite per urequest gesendet. Allerdings nur beim starten des Picos. Dieser macht das nur einmal. Daher meine Frage wie ich den Pico dazu bringe, das er dies alle 5 Minuten alleine erledigt. Hier der Code bisher:
Wäre dankbar, wenn das irgendwie automatisiert ohne Eingriff von draußen ausgeführt werden würde. Denn dieser soll im Garten aufgestellt werden.
vorab, bin totaler Anfänger in sachen Python. Verstädnis von PHP, SQL habe ich ausreichend die letzten "Jahrzehnte" angefangen von PHP 3 sammeln können, aber Python ist eine andere "Welt" in "meiner Welt".
Ich möchte die Wetterstation nachbauen, und funktioniert auch super. Die Werte des BME280 werden mit dem Raspberry Pico W hervoragend an meine Webseite per urequest gesendet. Allerdings nur beim starten des Picos. Dieser macht das nur einmal. Daher meine Frage wie ich den Pico dazu bringe, das er dies alle 5 Minuten alleine erledigt. Hier der Code bisher:
Code:
#import modules
import network
import socket
import urequests
from time import sleep
from machine import Pin, I2C
import bme280
ssid = 'XXX' #Your network name
password = 'XXX' #Your WiFi password
#initialize I2C
i2c=I2C(0,sda=Pin(0), scl=Pin(1), freq=400000)
def connect():
#Connect to WLAN
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(ssid, password)
while wlan.isconnected() == False:
print('Waiting for connection...')
sleep(1)
ip = wlan.ifconfig()[0]
print(f'Connected on {ip}')
return ip
def open_socket(ip):
# Open a socket
address = (ip, 80)
connection = socket.socket()
connection.bind(address)
connection.listen(1)
return connection
def webpage(reading):
#Template HTML
html = f"""{reading}"""
return str(html)
def serve(connection):
#Start a web server
while True:
bme = bme280.BME280(i2c=i2c)
temp = bme.values[0]
pressure = bme.values[1]
humidity = bme.values[2]
response = urequests.get('https://www.geheimeseite.de/api_wx.php?temp=' + temp + '&hum=' + humidity + '&pre=' + pressure + '&pico=1')
response.close()
#reading = 'Temperature: ' + temp + '. Humidity: ' + humidity + '. Pressure: ' + pressure
reading = '{"temp":"' + temp + '","humidity":"' + humidity + '","pressure":"' + pressure + '","pico":"1"}'
client = connection.accept()[0]
request = client.recv(1024)
request = str(request)
html = webpage(reading)
client.send(html)
client.close()
try:
ip = connect()
connection = open_socket(ip)
serve(connection)
except KeyboardInterrupt:
machine.reset()
Wäre dankbar, wenn das irgendwie automatisiert ohne Eingriff von draußen ausgeführt werden würde. Denn dieser soll im Garten aufgestellt werden.
Zuletzt bearbeitet: