So senden Sie Benachrichtigungen vom Raspberry Pi Pico W an ein Telefon oder Tablet
HeimHeim > Blog > So senden Sie Benachrichtigungen vom Raspberry Pi Pico W an ein Telefon oder Tablet

So senden Sie Benachrichtigungen vom Raspberry Pi Pico W an ein Telefon oder Tablet

Dec 08, 2023

Benutzerdefinierte Benachrichtigungen und Nachrichten von Ihrem Pico W an Ihr Mobilgerät.

Der Raspberry Pi Pico W für 8 US-Dollar ist ein wunderbares kleines Board. Während der weltweiten Chip-Versorgungsknappheit hat es ein ziemlich großes Loch in Raspberry-Pi-Form im Raspberry-Pi-Bestand gestopft und den Herstellern eine kostengünstige, benutzerfreundliche IoT-Plattform (Internet der Dinge) zur Verfügung gestellt. Sicherlich ist es nicht der erste mit dem Internet verbundene Mikrocontroller (über diese Ehre können wir in den Kommentaren sprechen), aber für viele Raspberry Pi-Fans war es der erste Schritt in die wunderbare Welt der Mikrocontroller.

Während auf dem Raspberry Pi ein vollständiges Linux-Betriebssystem läuft, ist der Raspberry Pi Pico W auf Firmware angewiesen, um eine Ebene bereitzustellen, auf der wir unseren Code schreiben können. MicroPython ist eine der offiziell unterstützten Sprachen und hat viele Verbesserungen erfahren, um dem Raspberry Pi Pico gerecht zu werden. Eine Verbesserung war die Einbindung von Urequests (Mikroanfragen), die es unserem Pico W ermöglichen, HTTP-Anfragen zu senden und zu empfangen.

In dieser Anleitung verwenden wir urequests zusammen mit ntfy.sh, einem kostenlosen Dienst und einer App für Android- und Apple-Geräte, die Nachrichten von IoT-Geräten abfangen und auf Ihrem Gerät anzeigen können. Wir werden es verwenden, um Alarme an unser Android-Handy zu senden, Alarme, die von einem PIR-Sensor (Passiv-Infrarot) ausgelöst werden, der Bewegungen in einem Raum erkennt.

Ntfy.sh ist ein bemerkenswert effektiver und einfacher Dienst. Anstatt ein bestimmtes Python-/MicroPython-Modul zu installieren, funktioniert es mit Anfragen zum Senden von Nachrichten vom Raspberry Pi Pico W unter Verwendung eines bestimmten Themas (sehr ähnlich der Funktionsweise von MQTT). Unser Android/iOS-Gerät hat dieses Thema abonniert und erhält die Benachrichtigungen vom Pico W.

Wir beschränken uns auf das Senden von Texten auf dem Raspberry Pi Pico W, aber dieses Projekt kann auch mit Raspberry Pi SBCs und der offiziellen Raspberry Pi-Kamera verwendet werden, um Bilder (oder jede andere Form von Anhängen) zu senden, wenn ein Ereignis eintritt. Sagen Sie, ob ein Vogel an Ihrem Futterhäuschen frisst oder sich jemand in Ihrem Garten aufhält. Ein Beispiel für die Verwendung von Bildern mit ntfy.sh finden Sie in unserem Tutorial zur Verwendung von Wörterbüchern.

Die Schaltung für dieses Projekt ist absichtlich unglaublich einfach. Es gibt nur drei Verbindungen zwischen dem PIR-Sensor und dem Raspberry Pi Pico.

Schließen Sie die Kabel zwischen dem Pico und dem PIR-Sensor an, bevor Sie fortfahren.

1.Installieren Sie ntfy.shfür Ihr Android-/iOS-Gerät.

2. Öffnen Sie die App und klicken Sie auf +, um ein neues Abonnement zu erstellen.

3.Erstellen Sie ein neues Thema und klicken Sie auf Abonnieren. Wir haben uns für den th-Test entschieden. Erstellen Sie ein für Sie persönliches Thema. Beachten Sie außerdem, dass Themen möglicherweise nicht passwortgeschützt sind. Senden Sie daher keine vertraulichen Daten.

4.Lassen Sie die App geöffnetauf Ihrem Gerät.

Jetzt gehen wir zur Codierung des Raspberry Pi Pico W über.

5.Folge diesen Schrittenum die neueste Version von MicroPython für den Raspberry Pi Pico W herunterzuladen. Die wichtigsten Schritte sind das Herunterladen und Installieren des UF2-Firmware-Images sowie die Einrichtung von Thonny. Der Rest ist optional.

6.Öffne ThonnyUndKlicken Sie auf die Schaltfläche Stopp um die Verbindung zu aktualisieren. Dadurch wird sichergestellt, dass die Python-Shell geöffnet ist und ordnungsgemäß funktioniert.

7.Erstellen Sie eine neue leere Datei.

8.Importieren Sie das Netzwerkmodul, importieren Sie dann urequests und benennen Sie es in „requests“ um. Das Netzwerkmodul ermöglicht unserem Pico W die Verbindung mit dem Internet. Urequests ist eine MicroPython-Version des Python-Anforderungsmoduls, das wir zum Senden einer Nachricht vom Pico W verwenden werden. Urequests ist jetzt auf der neuesten UF2-Firmware-Version vorinstalliert.

9.Importieren Sie die Schlaffunktion von der Uhrzeit und den Pin von der Maschine. Die Schlaffunktion wird verwendet, um dem Projektcode eine Pause hinzuzufügen. Das Maschinenmodul enthält Funktionen und Klassen, die es unserem Code ermöglichen, GPIO-Pins zu steuern und zu lesen.

10.Erstellen Sie ein Objekt, pir, und verwenden Sie es, um eine Verbindung zum PIR-Ausgangspin an GPIO 16 herzustellen.Der Pin muss als Eingang eingestellt werden, und wir sollten den GPIO-Pin auf High (3 V) ziehen, damit das Signal den Pin auf Low zieht, wenn der PIR ausgelöst wird.

11.Erstellen Sie ein Objekt, wlan, um die Wi-Fi-Verbindung darzustellen, schalten Sie dann das Wi-Fi ein und stellen Sie eine Verbindung zu Ihrem Wi-Fi-Zugangspunkt her.

12.Fügen Sie nach dem Herstellen der WLAN-Verbindung eine Verzögerung von drei Sekunden hinzu. Dies ist nicht unbedingt erforderlich, der Verbindungsprozess ist ein „Blocker“, was bedeutet, dass er abgeschlossen sein muss, bevor er zu dieser Leitung wechseln kann. Aber wir hatten mehr Erfolg beim Verbinden, wenn es eine Pause gab, als ohne.

13.Drucken Sie den WLAN-Verbindungsstatus aus.„Wahr“ bedeutet, dass wir miteinander verbunden sind, „Falsch“ bedeutet, dass wir keine Verbindung haben.

14.Erstellen Sie eine while-True-Schleife und drucken Sie damit den aktuellen Status des PIR-GPIO-Pins aus.Wir setzen den Pin in unserem Code auf High (hochgezogen), daher sollte der Wert 1 sein.

15.Erstellen Sie eine bedingte Anweisung, die prüft, ob der PIR-Sensor ausgelöst wurde.Durch das Auslösen des Sensors wird der mit dem Sensorausgangspin verbundene GPIO-Pin gezwungen, auf Low (0) zu ziehen, und unser Code sucht nach dieser Änderung.

16.Verwenden Sie Anfragen, um eine Nachricht an ntfy zu senden. Beachten Sie, dass wir den Themennamen, in unserem Fall https://ntfy.sh/th-test, als Teil des Funktionsarguments angeben müssen. Das nächste Argument, Daten, ist die Nachricht, die der Benutzer sehen wird.

17.Geben Sie in der Anfrage „Kopfzeilen“ an, die einen Titel für die Benachrichtigung enthalten . Eine Priorität (5 ist die höchste Priorität) und Tags, die zum Hinzufügen eines rotierenden Licht-Emojis verwendet werden.

18.Gibt eine Nachricht an die Python-Shell aus.Dies dient ausschließlich Debug-Zwecken.

19.Fügen Sie eine andere Bedingung hinzudas verwendet einfach pass, um den Code in einer Schleife laufen zu lassen.

20.Fügen Sie dem Code eine Verzögerung hinzu, innerhalb der while-True-Schleife, aber außerhalb der bedingten Tests. Diese Verzögerung kann 10 Sekunden oder Stunden betragen. Es hängt alles davon ab, wie oft Sie benachrichtigt werden möchten.

21.Speichern Sie den Code als alarm.py auf dem Raspberry Pi Pico und klicken Sie zum Starten auf „Ausführen“. Wenn Sie möchten, dass dieser Code beim Einschalten der Pico W automatisch ausgeführt wird, speichern Sie die Datei unter dem Namen main.py. MicroPython ist so konfiguriert, dass es „main.py“ ausführt, wenn das Board eingeschaltet wird.

22.Legen Sie Ihre Hand vor den Sensor, um den Alarm auszulösen.

23.Ihr Android-/iOS-Gerät erhält eine Benachrichtigung.

Schließen Sie sich den Experten an, die Tom's Hardware lesen, um Insider-Informationen zu PC-Tech-News für Enthusiasten zu erhalten – und das seit über 25 Jahren. Wir senden Ihnen aktuelle Nachrichten und ausführliche Rezensionen zu CPUs, GPUs, KI, Hersteller-Hardware und mehr direkt in Ihren Posteingang.

Les Pounder ist Associate Editor bei Tom's Hardware. Er ist ein kreativer Technologe und hat sieben Jahre lang Projekte entwickelt, um Jung und Alt zu bilden und zu inspirieren. Er hat mit der Raspberry Pi Foundation zusammengearbeitet, um deren Lehrerausbildungsprogramm „Picademy“ zu schreiben und durchzuführen.

Raspberry Pi Pico W treibt einzigartige Einhorn-Uhr an

SB Components kündigt Micro RP2040 für kleinere Raspberry Pi Pico-Projekte an

Radeon RX 6750 GRE könnte einfach eine übertaktete RX 6700 sein

Von Ash Hill, 26. August 2023

Von Ash Hill, 26. August 2023

Von Aaron Klotz, 25. August 2023

Von Denise Bertacchi, 25. August 2023

Von Stewart Bendle, 25. August 2023

Von Jarred Walton, 25. August 2023

Von Mark Tyson, 25. August 2023

Von Jarred Walton, 25. August 2023

Von Ash Hill, 25. August 2023

Von Mark Tyson, 25. August 2023

Von Anton Shilov, 25. August 2023

Installieren Sie ntfy.shErstellen Sie ein neues Thema und klicken Sie auf Abonnieren.Lassen Sie die App geöffnetFolge diesen Schrittenum die neueste Version von MicroPython für den Raspberry Pi Pico W herunterzuladen.Öffne ThonnyKlicken Sie auf die Schaltfläche StoppErstellen Sie eine neue leere Datei.Importieren Sie das Netzwerkmodul, importieren Sie dann urequests und benennen Sie es in „requests“ um.Importieren Sie die Schlaffunktion von der Uhrzeit und den Pin von der Maschine.Erstellen Sie ein Objekt, pir, und verwenden Sie es, um eine Verbindung zum PIR-Ausgangspin an GPIO 16 herzustellen.Erstellen Sie ein Objekt, wlan, um die Wi-Fi-Verbindung darzustellen, schalten Sie dann das Wi-Fi ein und stellen Sie eine Verbindung zu Ihrem Wi-Fi-Zugangspunkt her.Fügen Sie nach dem Herstellen der WLAN-Verbindung eine Verzögerung von drei Sekunden hinzu.Drucken Sie den WLAN-Verbindungsstatus aus.Erstellen Sie eine while-True-Schleife und drucken Sie damit den aktuellen Status des PIR-GPIO-Pins aus.Erstellen Sie eine bedingte Anweisung, die prüft, ob der PIR-Sensor ausgelöst wurde.Verwenden Sie Anfragen, um eine Nachricht an ntfy zu senden.Geben Sie in der Anfrage „Kopfzeilen“ an, die einen Titel für die Benachrichtigung enthaltenGibt eine Nachricht an die Python-Shell aus.Fügen Sie eine andere Bedingung hinzuFügen Sie dem Code eine Verzögerung hinzu, innerhalb der while-True-Schleife, aber außerhalb der bedingten Tests.Speichern Sie den Code als alarm.py auf dem Raspberry Pi Pico und klicken Sie zum Starten auf „Ausführen“.Legen Sie Ihre Hand vor den Sensor, um den Alarm auszulösen.Ihr Android-/iOS-Gerät erhält eine Benachrichtigung.