So steuerst du ein Relais (Ein/Aus) mit MicroPython auf einem ESP32 mit Pymakr
In dieser Anleitung zeigen wir dir Schritt für Schritt, wie du MicroPython auf deinem ESP32 einrichtest, einen Sinric Pro Switch erstellst und ihn schließlich über Smart-Home-Plattformen wie Alexa, Google Home und SmartThings steuerst
Voraussetzungen :
- ESP32 Entwicklungsboard x 1.
- SPDT Relaismodul x 1.
- Jumperkabel.
MicroPython auf dem ESP32 einrichten
-
Installiere mit pip:
pip install esptool(Du benötigst Python 3.7 oder neuer) -
MicroPython Firmware: Lade die neueste Version von https://micropython.org/download/esp32/ herunter. Wähle die passende Datei entsprechend den Eigenschaften deines Boards aus (z. B. PSRAM, Flashgröße).
-
Verbinde den ESP32 über USB mit deinem Computer.
-
Lösche den Flash-Speicher des ESP32:
esptool --chip esp32 --port <PORT> erase_flash -
Schreibe MicroPython auf den ESP32:
esptool --chip esp32 --port <COM-PORT> --baud 460800 write_flash -z 0x1000 ESP32_GENERIC-20231005-v1.21.0.bin
Installation testen:
- Nutze ein Terminalprogramm (z. B. PuTTY, CoolTerm, Thonny).

-
Konfiguriere mit: Baudrate: 115200 Port: der mit deinem ESP32 verbundene.
-
Öffne das Terminal, um auf die MicroPython REPL zuzugreifen, in der du Python-Befehle eingeben kannst.
Gib in der REPL
print("Hello, MicroPython!")

ein und drücke Enter. Bei Erfolg wird die Nachricht ausgegeben.
Details findest du in der MicroPython-Dokumentation: https://docs.micropython.org/en/latest/esp32/quickref.html
IDE einrichten
Wir nutzen VS Code mit der Pymakr-Erweiterung, um unseren ESP32 mit MicroPython zu programmieren. Also richten wir die Pymakr-Erweiterung ein
-
Öffne VS Code.
-
Gehe zum Extensions-Tab (Strg+Umschalt+X oder Cmd+Umschalt+X).
-
Suche nach „Pymakr“ und klicke auf die Schaltfläche „Install“ daneben.

Lade VS Code neu, wenn du dazu aufgefordert wirst.
Klicke auf das „Pymakr“-Symbol in der linken Seitenleiste von VS Code.
Verdrahtung

Bevor wir die Verbindung zu Sinric Pro herstellen, solltest du prüfen, ob das Relais korrekt verdrahtet ist und funktioniert.
Lass uns ein neues Pymakr-Projekt erstellen. Drücke (Strg+Umschalt+P) und wähle Pymakr: Create new project

Füge diesen Code in main.py ein
from machine import Pin
from time import sleep
relay = Pin(16, Pin.OUT)
while True:
relay.value(1)
sleep(5)
relay.value(0)
sleep(5)
Wähle die Pymakr-Erweiterung -> Verbinde dich mit deinem ESP32 -> Klicke auf das Upload-Symbol.

Nach Abschluss des Uploads musst du einen Hard Reset des Geräts durchführen. Danach startet der ESP32 neu und führt den Code in main.py aus

Jetzt sollte sich dein Relais alle 5 Sekunden ein- und ausschalten. Wenn das Relais korrekt funktioniert, ist es Zeit, es mit Sinric Pro zu verbinden.
Sinric Pro Integration
Schritt 1 : Neues Gerät in Sinric Pro anlegen
- Melde dich bei deinem Sinric Pro Konto an, öffne links das Menü Devices und klicke auf Add Device (oben links).
- Gib als Gerätenamen Switch, als Beschreibung My First Switch ein und wähle als Gerätetyp Switch.

- Klicke im Reiter Notifications auf Next

Um Push-Benachrichtigungen zu erhalten, wenn dein Gerät online oder offline geht, aktiviere die Option „Connect and Disconnect“ in der Sinric Pro App. Um Push-Benachrichtigungen zu erhalten, wenn dein Gerät ein- oder ausgeschaltet wird, aktiviere die Option „On and Off“.
-
Klicke auf Others und klicke auf Save
-
Die nächste Seite zeigt die Zugangsdaten, die dein Gerät für die Verbindung braucht.

- Kopiere Device Id, App Key und App Secret. Halte diese Werte geheim. TEILE SIE NICHT IN ÖFFENTLICHEN FOREN!
Schritt 2 : Programmierung
2.1 Sinric Pro MicroPython Bibliothek installieren
Mit mpremote:
mpremote mip install github:sinricpro/micropython-sinricpro-sdk
Oder mit mip im MicroPython REPL-Prompt:
import mip
mip.install("github:sinricpro/micropython-sinricpro-sdk")`

2.2 Vollständiger Code
Füge den folgenden Code in main.py ein
from sinricpro import SinricPro
from sinricpro.devices.sinricpro_switch import SinricProSwitch
from machine import Pin
import uasyncio as a
import network
# enter wifi details
ssid = ""
ssid_password = ""
# enter appkey, appsecret and device id from above
app_key = ""
app_secret = ""
device_id = ""
# relay is connected to GPIO 16
relay = Pin(16, Pin.OUT)
async def on_disconnected():
print('Disconnected from SinricPro...reboot?')
async def on_connected():
print('Connected to SinricPro...')
async def on_power_state_callback(device_id: str, state: bool):
print(f'device id: {device_id} state: {state}')
if state:
relay.value(1)
else:
relay.value(0)
return True
# connect to wifi
def do_connect():
sta_if = network.WLAN(network.STA_IF)
ap = network.WLAN(network.AP_IF) # create access-point interface
ap.active(False) # deactivate the interface
if not sta_if.isconnected():
print('Connecting to network...')
sta_if.active(True)
sta_if.connect(ssid, ssid_password)
while not sta_if.isconnected():
pass
print('Connected network config:', sta_if.ifconfig())
# start sinricpro
def do_sinricpro():
sinricpro = SinricPro()
sinricpro.on_connected(on_connected)
sinricpro.on_disconnected(on_disconnected)
sinricpro_switch = SinricProSwitch(device_id)
sinricpro_switch.on_power_state(on_power_state_callback)
sinricpro.add_device(sinricpro_switch)
sinricpro.start(app_key, app_secret)
# main coroutine
async def main():
do_connect()
do_sinricpro()
while True:
await a.sleep_ms(10_000)
# start asyncio task and loop
try:
# start the main async tasks
a.run(main())
finally:
# reset and start a new event loop for the task scheduler
a.new_event_loop()
Das war’s.

Jetzt ist das Gerät mit dem Sinric Pro Server verbunden, und du kannst es über die Sinric Pro App, den Alexa Skill, die Google Home Action oder SmartThings steuern
Verwandte Tutorials
- ESP32 oder ESP8266 mit Alexa und Google Home steuern
- Relais mit MicroPython auf Raspberry Pi Pico W (Thonny)
- Switch Tutorial Teil 1: ein Relais ein- und ausschalten
Dieses Dokument ist Open Source. Hast du einen Tippfehler gefunden? Erstelle bitte ein Issue