Raspberry Pi Pico W: Sensor-Daten-Logging übers Netzwerk
Wenn ein Raspberry Pi Pico als Sensor verwendet wird, der irgendwelche Werte erfasst, dann möchte man diese Daten in irgendeiner Weise aus dem System herausbekommen.
Bei einem Raspberry Pi Pico W mit WLAN-Funkchip könnte man die Daten per WLAN an eine Gegenstelle übertragen.
Beispielhaft wollen wir die Daten des integrierten Temperatur-Sensors an eine Gegenstelle per HTTP-Request übertragen.
IoT-Webservice zum Testen
Um den folgenden Aufbau und Programmcode sinnvoll testen oder nutzen zu können, benötigt der Raspberry Pi Pico W eine Gegenstelle, an der die Sensor-Daten übertragen werden können. Wir bieten hierzu einen IoT-Webservice an, der als Gegenstelle für den Raspberry Pi Pico W dient. Unser IoT-Webservice ist vollkommen kostenlos und Datenschutz-freundlich. Du must Dir nur eine persönliche ID erstellen lassen, was mit einem Klick erledigt ist. Die Sache hat natürlich einen Haken. Deine ID ist nur für ein paar Stunden gültig und Deine Daten werden dann auch gelöscht. Unser IoT-Webservice ist zum schnellen Testen gedacht, nicht für einen dauerhaften Produktivbetrieb.
Programmcode und Konfiguration
Bevor der Programmcode gestartet wird, sollte er an zwei Stellen konfiguriert werden:
- WLAN: Damit der Verbindungsaufbau zu Deinem WLAN funktioniert, musst Du den WLAN-Name und das WLAN-Passwort korrekt im Programmcode eintragen.
- IoT-Webservice: Für die Übertragung der Sensor-Daten bedarf es einer Gegenstelle. Trage die erstellte ID unseres IoT-Webservices ein. Zum Logging wird ein Zeitstempel mit den Sensor-Daten an den Webservice gesendet.
Wenn der Programmcode gestartet wird, wird zuerst die WLAN-Verbindung hergestellt. Dabei blinkt die Onboard-LED auf dem Pico. Leuchtet die LED dauerhaft, wurde die Verbindung erfolgreich hergestellt. Die LED leuchtet aber auch dann weiter, wenn irgendwann die WLAN-Verbindung abbricht.
Danach werden die Sensor-Daten gelesen. In diesem Fall der interne Temperatursensor. Diese Funktion kann aber durch irgendeine andere Sensor-Abfrage ersetzt werden. Die ermittelte Temperatur wird per HTTP-Request an den IoT-Webservice gesendet. In einer Schleife wird der Vorgang alle 30 Sekunden wiederholt. Auf der Weboberfläche des IoT-Webservices kannst Du Dir die empfangenen und gespeicherten Daten ansehen.
# Bibliotheken laden import machine import network import utime as time import urequests as requests # WLAN-Konfiguration wlanSSID = 'name' wlanPW = 'passwort' network.country('DE') # IoT-Webservice-Konfiguration myID = 'DEINE ID' # 32-stelliger Code myDevice = 'log_' # oder selbst gewählter Name # Status-LED für die WLAN-Verbindung led_onboard = machine.Pin('LED', machine.Pin.OUT, value=0) # Initialisierung des Sensors sensor_temp = machine.ADC(4) # Funktion: Temperatur abrufen und umrechnen def getTemp(): read = sensor_temp.read_u16() spannung = read * 3.3 / (65535) temperatur = 27 - (spannung - 0.706) / 0.001721 return temperatur # HTTP-Request senden def sendRequest(url): print() try: # HTTP-Request senden print('Request: GET', url) response = requests.get(url) if response.status_code == 200: print('Response:', response.content) else: print('Status-Code:', response.status_code) print('Fehler:', response.reason) response.close() except OSError: print('Fehler: Keine Verbindung') # Funktion: WLAN-Verbindung def wlanConnect(): wlan = network.WLAN(network.STA_IF) if not wlan.isconnected(): print('WLAN-Verbindung herstellen') wlan.active(True) wlan.connect(wlanSSID, wlanPW) for i in range(10): if wlan.status() < 0 or wlan.status() >= 3: break led_onboard.toggle() print('.') time.sleep(1) if wlan.isconnected(): print('WLAN-Verbindung hergestellt / WLAN-Status:', wlan.status()) led_onboard.on() else: print('Keine WLAN-Verbindung') led_onboard.off() print('WLAN-Status:', wlan.status()) # WLAN-Verbindung herstellen wlanConnect() # Wiederholung (Endlos-Schleife) while True: myValue = getTemp() url = 'http://elektronik.info/' + myID + '/' + myDevice + str(time.time()) + '/' + str(myValue) sendRequest(url) time.sleep(30)
Auf der Kommandozeile von Thonny kannst Du die HTTP-Kommunikation (Request/Response) beobachten. Die Response-Meldung zeigt den Inhalt dessen an, was die Gegenstelle als Antwort sendet. Im Erfolgsfall wird ein „OK“ gemeldet.
Weitere verwandte Themen:
- Raspberry Pi Pico W als schnurloser Taster
- Raspberry Pi Pico W aus der Ferne schalten
- Raspberry Pi Pico W als schnurloses Thermometer (mit MQTT)
- Raspberry Pi Pico W als WLAN-Client
- Raspberry Pi Pico W: RTC mit NTP-Zeitserver einstellen
Teilen:
Elektronik-Set Pico WLAN Edition
Hardware-nahes Programmieren mit dem Mikrocontroller Raspberry Pi Pico W und MicroPython.
- Raspberry Pi Pico W mit gelöteten Stiftleisten
- Spezielles Steckbrett mit GPIO-Beschriftung
- Einführung ins Hardware-nahe Programmieren
- Schwerpunkte: WLAN, MQTT und Internet
- Deutschsprachige Anleitung als PDF-Datei zum Download
In unseren Online-Workshops bieten wir intensiven Erfahrungsaustausch in kleinen Gruppen und Unterstützung bei individuellen Problemen.
Online-Workshop
Hardware-nahes Programmieren mit dem Raspberry Pi Pico
Gemeinsam mit anderen und unter Anleitung experimentieren? Wir bieten unterschiedliche Online-Workshops zum Raspberry Pi Pico und MicroPython an. Einführung in die Programmierung, Sensoren programmieren und kalibrieren, sowie Internet of Things und Smart Home über WLAN und MQTT.
Für Ihre Fragen zu unseren Online-Workshops mit dem Raspberry Pi Pico besuchen Sie unseren PicoTalk (Online-Meeting). (Headset empfohlen)
Elektronik-Set Pico Edition
Raspberry Pi Pico: Hardware-nahes Programmieren mit MicroPython
Leichter Einstieg mit All-in-one-Set zum sofort Loslegen, um eigene Steuerungen programmieren.
Elektronik-Set Pico WLAN Edition
Raspberry Pi Pico W: IoT und Smart Home mit WLAN und MQTT
Betreibe Deinen Raspberry Pi Pico W als drahtloser Sensor in Deinem WLAN, versende E-Mails mit Daten und kommuniziere per MQTT im Internet of Things oder Smart Home.
Elektronik-Set Sensor Edition
Erweiterung zu den Elektronik-Sets Pico Edition und Pico WLAN Edition
Elektronik-Set mit den beliebtesten Sensoren zum Messen von Temperatur, Helligkeit, Bewegung, Lautstärke und Entfernung.
Elektronik-Set Eingabe Ausgabe Edition
Erweiterung zu den Elektronik-Sets Pico Edition und Pico WLAN Edition
Damit kannst Du MP3-Dateien abspielen, eine Stoppuhr bauen, einen Servo-Motor mit Drehschalter oder Joystick steuern, Lichteffekte mit einem WS2812-LED-Lichtstreifen erzeugen, Schalten mit einem Relais und Signalisieren mit einem Vibrationsmotor.