Raspberry Pi Pico W als schnurloser Taster

Geräte und Funktionen sind zur lokalen Bedienung in der Regel mit einem Taster verbunden. Meist existiert dazu eine elektrische Verbindung. Die Idee ist, ein Gerät oder eine Funktion aus der Ferne zu schalten. Dazu brauchen wir einen Taster, der mit einem Funknetzwerk verbunden ist. Hier in diesem Fall mit einem WLAN.

Wir nutzen hier einen Raspberry Pi Pico W als schnurlosen bzw. drahtlosen Taster, der damit ein Aktor in Deinem Smart Home werden kann.

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, die bei Taster-Betätigung kontaktiert wird. Typischerweise wird das ein Gerät sein, dass ein- oder ausgeschaltet wird. Das Problem ist, dass man das unter Umständen nicht hat. Um den folgenden Aufbau und Programmcode ausprobieren zu können, bieten wir 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 gelöscht. Unser IoT-Webservice ist zum schnellen Testen gedacht, nicht für einen dauerhaften Produktivbetrieb.

Aufbau und Bauteile

Raspberry Pi Pico W als schnurloser Taster

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: Wenn das Ziel-System für die Taster-Betätigung nicht direkt erreichbar ist, dann ist eine temporäre Gegenstelle notwendig. Das kann ein Webservice sein. Trage die erstellte ID ein. Standardmäßig ist im Programmcode ein Gerät mit dem Namen „demo“ eingetragen.

ID erstellen

Wenn der Programmcode gestartet wird, wird die WLAN-Verbindung hergestellt. Dabei blinkt die Onboard-LED auf dem Pico. Leuchtet die LED dauerhaft, wurde die Verbindung erfolgreich hergestellt. Wichtig dabei, die LED bleibt auch dann an, wenn die WLAN-Verbindung aus irgendwelchen Gründen beendet wird.

Danach wird der Taster initialisiert und die wiederholende Schleife initiiert, mit der der Taster-Zustand ausgewertet wird und ein HTTP-Request zur Gegenstelle ausgelöst wird.
Die Logik des Tasters sieht vor, dass ein entferntes Gerät geschaltet wird. Dieses Gerät kennt die Zustände EIN und AUS, respektive „0“ und „1“ im Programmcode. Bei Betätigung des Tasters soll zwischen diesen beiden Zuständen umgeschaltet werden. Auf der Benutzeroberfläche des Webservices kannst Du Dir den Schaltzustand anzeigen lassen. Das Gerät „demo“ hat die Schaltzustände „0“ oder „1“.

# 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 = 'demo' # oder selbst gewählter Name
myValue = 1 # Default-Wert

# Status-LED für die WLAN-Verbindung
led_onboard = machine.Pin('LED', machine.Pin.OUT, value=0)

# 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()

# Button initialisieren
btn = machine.Pin(15, machine.Pin.IN, machine.Pin.PULL_UP)
print()
print('Taster bereit')

# Funktion zur Taster-Auswertung
while True:
    time.sleep_ms(100)
    if btn.value() == 0:
        print()
        try:
            if myValue == 0: myValue = 1
            elif myValue == 1: myValue = 0
            url = 'http://elektronik.info/' + myID + '/' + myDevice + '/' + str(myValue)
            # 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')
        # Entprell-Pause
        time.sleep_ms(100)

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.

Troubleshooting: WLAN

Wenn es mit dem Programmcode Probleme gibt, dann betrifft das hauptsächlich die WLAN-Verbindung. Der Umgang mit Funkverbindungen ist immer etwas schwierig, weil man nicht „sieht“ was passiert. Man ist dann auf Status-Meldungen vom Programmcode angewiesen. Von der Status-Meldung lässt sich aber nur selten auf eine Problemlösung schließen. Hier muss man etwas genauer hinschauen, um den Fehler zu finden, der sich nicht im Programmcode befinden muss.

Darf es ein bisschen mehr sein?

Das ist jetzt nicht wirklich spannend gewesen, oder vielleicht doch? Eindrucksvoll wird es dann, wenn ein Raspberry Pi Pico W auf die selbe Weise aus der Ferne geschaltet wird. Beispielsweise die Onboard-LED ein und aus.

Weitere verwandte Themen:

Teilen:

Elektronik-Set Pico WLAN Edition

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.

Elektronik-Set jetzt bestellen Online-Workshop buchen

Programmieren mit dem Raspberry Pi Pico
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.

Online-Workshop buchen

Für Ihre Fragen zu unseren Online-Workshops mit dem Raspberry Pi Pico besuchen Sie unseren PicoTalk (Online-Meeting). (Headset empfohlen)

Zum PicoTalk

 

Elektronik-Set Pico Edition
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 jetzt bestellen

 

Elektronik-Set Pico WLAN Edition
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 jetzt bestellen

 

Elektronik-Set Sensor Edition
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 jetzt bestellen

 

Elektronik-Set Eingabe Ausgabe Edition
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.

Elektronik-Set jetzt bestellen