3. Sicherheitssystem über @IFTTT

Mit diesem Projekt erstellen wir ein Sicherheitsgerät, das mithilfe eines PIR-Sensors erkennt, wenn ein Einbrecher oder ein streunendes Tier in Ihr Zuhause eindringt. In diesem Fall erhalten Sie eine E-Mail-Benachrichtigung.

Webhook wird als grundlegendster Dienst verwendet. Ein POST-Request wird von Raspberry Pi Pico W an den IFTTT-Dienst gesendet. Mit IFTTT erstellen wir ein Applet, das den Webhook abfängt und eine E-Mail sendet.

1. Erforderliche Komponenten

Für dieses Projekt benötigen wir die folgenden Bauteile.

Ein Komplett-Set ist definitiv praktisch, hier ist der Link dazu:

Bezeichnung

ARTIKEL IM KIT

LINK

Kepler-Kit

450+

Kepler Kit

Sie können die Bauteile auch einzeln über die untenstehenden Links erwerben.

SN

KOMPONENTE

ANZAHL

LINK

1

Raspberry Pi Pico W

1

BUY

2

Micro-USB-Kabel

1

3

Steckbrett

1

BUY

4

Jumperkabel

Mehrere

BUY

5

Transistor

1(S8050)

BUY

6

Widerstand

2(1KΩ, 10KΩ)

BUY

7

Taster

1

BUY

8

Aktiver Summer

1

9

Li-Po-Lademodul

1

10

18650-Batterie

1

11

Batteriehalter

1

12

PIR-Bewegungssensormodul

1

BUY

2. Schaltkreis aufbauen

Warnung

Achten Sie darauf, dass Ihr Li-Po-Ladegerät wie im Schaltplan dargestellt angeschlossen ist. Andernfalls kann ein Kurzschluss sowohl Ihre Batterie als auch Ihre Schaltung beschädigen.

../_images/3.ifttt_mail_bb.png

3. IFTTT-Einrichtung

IFTTT ist ein kostenloser Dienst, der vielfältige Möglichkeiten bietet, unterschiedliche Datendienste miteinander zu verknüpfen.

Wir erstellen ein Applet, das auf einen Webhook (benutzerdefinierte URL) reagiert und Daten an IFTTT sendet. Im Anschluss wird Ihnen von IFTTT eine E-Mail geschickt.

Bitte folgen Sie den unten stehenden Schritten auf IFTTT.

  1. Besuchen Sie IFTTT, um sich einzuloggen oder ein Konto zu erstellen.

    ../_images/ifttt-1.png
  2. Klicken Sie auf Erstellen.

    ../_images/ifttt-2.png
  3. Fügen Sie ein Wenn das Ereignis hinzu.

    ../_images/ifttt-3.png
  4. Suchen Sie nach Webhooks.

    ../_images/ifttt-4.png
  5. Wählen Sie Web-Anforderung empfangen aus.

    ../_images/ifttt-5.png
  6. Tragen Sie den Ereignisnamen ein (z.B. Sicherheitswarnung) und klicken Sie auf Trigger erstellen.

    ../_images/ifttt-6.png
  7. Fügen Sie ein Dann das Ereignis hinzu.

    ../_images/ifttt-7.png
  8. Suchen Sie nach E-Mail.

    ../_images/ifttt-8.png
  9. Klicken Sie auf Mir eine E-Mail senden.

    ../_images/ifttt-9.png
  10. Füllen Sie Betreff und Inhalt aus und klicken Sie dann auf Aktion erstellen.

    ../_images/ifttt-10.png
  11. Klicken Sie auf Weiter, um die Konfiguration abzuschließen.

    ../_images/ifttt-11.png
  12. Ändern Sie den Titelnamen und schon sind Sie fertig.

    ../_images/ifttt-12.png
  13. Sie werden automatisch zur Detailseite des Applets weitergeleitet, wo Sie sehen können, dass das Applet derzeit verbunden ist. Hier können Sie den Schalter umlegen, um es zu starten bzw. zu stoppen.

    ../_images/ifttt-13.png

4. Ausführung des Skripts

  1. Jetzt, wo wir das IFTTT-Applet erstellt haben, benötigen wir noch den API-Schlüssel, den Sie von Webhooks Settings beziehen können, um den Zugang des Pico W zu IFTTT zu ermöglichen.

    ../_images/ifttt-14.png
  2. Kopieren Sie diesen in das secrets.py Skript auf Ihrem Raspberry Pi Pico W.

    ../_images/3_ifttt4.png

    Bemerkung

    Falls die Skripte do_connect.py und secrets.py noch nicht auf Ihrem Pico W vorhanden sind, entnehmen Sie bitte 1. Zugang zum Netzwerk, wie diese erstellt werden können.

    secrets = {
    'ssid': 'SSID',
    'password': 'PASSWORT',
    'webhooks_key':'WEBHOOKS_API_KEY'
    }
    
  3. Öffnen Sie die Datei 3_ifttt_mail.py im Verzeichnis kepler-kit-main/iot und wählen Sie dann Datei -> Speichern unter oder drücken Sie Strg+Umschalt+S.

    ../_images/3_ifttt1.png
  4. Wählen Sie im erscheinenden Popup-Fenster Raspberry Pi Pico aus.

    ../_images/3_ifttt2.png
  5. Benennen Sie die Datei als main.py um. Eine Aufforderung erscheint, falls bereits eine gleichnamige Datei auf Ihrem Pico W existiert.

    ../_images/3_ifttt3.png
  6. Nun können Sie das USB-Kabel entfernen und den Raspberry Pi Pico W über das Li-Po-Ladegerät mit Strom versorgen. Sobald das Skript läuft, ertönt ein akustisches Signal. Der Signalton setzt sich fort, wenn das PIR-Modul eine vorbeigehende Person oder ein Tier erkennt, und eine E-Mail-Warnung wird an Sie gesendet. Durch Betätigen der Taste kann das Skript neu gestartet werden.

So funktioniert es

Der Raspberry Pi Pico W muss, wie in 1. Zugang zum Netzwerk beschrieben, mit dem Internet verbunden sein. Für dieses Projekt reicht das aus.

from do_connect import *
do_connect()

Liest Daten vom PIR-Modul und ruft die Funktion motion_detected() auf, wenn es jemanden vorbeigehen bemerkt (Daten von 0 bis 1).

import machine

sensor=machine.Pin(17,machine.Pin.IN)

sensor.irq(trigger=machine.Pin.IRQ_RISING, handler=motion_detected)

Als Nächstes sendet der Pico W Daten an IFTTT. Wie Sie sehen können, ist die message, die Sie an IFTTT senden, eine URL-Zeichenfolge. IFTTT identifiziert den Absender über secrets['webhooks_key'], das ausgelöste Ereignis wird durch event identifiziert. Stellen Sie also sicher, dass diese korrekt sind.

import urequests
from secrets import *

event='SecurityWarning'
message=f"https://maker.ifttt.com/trigger/{event}/with/key/{secrets['webhooks_key']}"

def motion_detected(pin):
    urequests.post(message)
    print(message)
    global warn_flag
    warn_flag=True
    sensor.irq(handler=None)

Wenn motion_detected() aufgerufen wird, wird die Variable warn_flag auf True gesetzt, was dazu führt, dass der Signalton weitergeht.

while True:
    if warn_flag==True:
        alarm.toggle()
        time.sleep_ms(50)

Der Button dient hier zum Neustart des Skripts.

button=machine.Pin(16,machine.Pin.IN)

def reset_device(pin):
    machine.reset()

button.irq(trigger=machine.Pin.IRQ_RISING, handler=reset_device)