# Bibliotheken laden from machine import Pin, Timer import network import utime as time import umail # Initialisierung der LED an Pin 20 led = Pin(20, Pin.OUT, value=0) # Initialisierung von GPIO14 als Eingang btn = Pin(14, Pin.IN, Pin.PULL_DOWN) # Timer erstellen timer = Timer() # WLAN-Konfiguration wlanSSID = 'Name' wlanPW = 'Passwort' network.country('DE') # E-Mail-Konfiguration (Sender) smtpHost = 'mailserver-eintragen.de' smtpPort = 587 fromName = 'Pico' fromMail = 'Mailaccount' fromPW = 'Mailaccount-Passwort' # E-Mail-Konfiguration (Empfänger) toName = 'Wolfgang' toMail = 'empfaenger@mailadresse.de' # E-Mail: Betreff und Text mailSubject = 'E-Mail von Raspberry Pi Pico W' mailText = 'Der Taster wurde gedrückt.' # Status-LED für die WLAN-Verbindung led_onboard = machine.Pin('LED', machine.Pin.OUT, value=0) # WLAN-Verbindung herstellen 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) # WLAN-Verbindung prüfen if wlan.isconnected(): print('WLAN-Verbindung hergestellt / WLAN-Status:', wlan.status()) led_onboard.on() ipconfig = wlan.ifconfig() print('IPv4-Adresse:', ipconfig[0]) else: led_onboard.off() print('WLAN-Status:', wlan.status()) raise RuntimeError('Keine WLAN-Verbindung') # Taster-Funktion und E-Mail senden def on_pressed(timer): led.toggle() print('Taster gedrückt') print('E-Mail wird gesendet') smtp = umail.SMTP(smtpHost, smtpPort) smtp.login(fromMail, fromPW) smtp.to(toMail) smtp.write('From: ' + fromName + ' <' + fromMail + '>' + "\r\n") smtp.write('To: ' + toName + ' <' + toMail + '>' + "\r\n") smtp.write('Subject: ' + mailSubject + "\r\n\r\n") smtp.write(mailText + "\r\n") smtp.send() smtp.quit() print('E-Mail wurde gesendet') # Entprell-Funktion def debounce(pin): # Timer setzen (200 ms) timer.init(mode=Timer.ONE_SHOT, period=200, callback=on_pressed) # Taster-Auslösung btn.irq(handler=debounce, trigger=Pin.IRQ_RISING)