Sicherheitssystem über IFTTT

Mit diesem Projekt erstellen wir ein Sicherheitsgerät, das einen PIR-Sensor verwendet, um Eindringlinge oder streunende Tiere, die Ihr Zuhause betreten, zu erkennen. Im Falle eines Einbruchs erhalten Sie eine E-Mail-Benachrichtigung.

Wir nutzen Webhooks als grundlegenden Dienst. Eine POST-Anfrage wird von UNO R4 an den IFTTT-Dienst gesendet.

Benötigte Komponenten

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

Es ist definitiv praktisch, ein ganzes Kit zu kaufen, hier ist der Link:

Name

ARTIKEL IN DIESEM KIT

LINK

Elite Explorer Kit

300+

Elite Explorer Kit

Sie können sie auch separat über die untenstehenden Links kaufen.

KOMPONENTENBESCHREIBUNG

KAUF-LINK

Arduino Uno R4 WiFi

-

Jumperkabel

BUY

PIR-Bewegungssensormodul

BUY

Verdrahtung

../_images/03-ifttt_pir_bb.png

Schaltplan

../_images/03-ifttt_pir_schematic.png

IFTTT einrichten

IFTTT ist ein kostenloser Dienst, der verschiedene Methoden bietet, um verschiedene Datendienste miteinander zu verknüpfen.

Erstellen wir ein Applet, das auf einen Webhook (benutzerdefinierte URL) reagiert, der Daten an IFTTT sendet, welcher Ihnen dann eine E-Mail sendet.

Bitte folgen Sie den untenstehenden Schritten auf IFTTT.

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

    ../_images/03_ifttt_1.png
  2. Klicken Sie auf Create.

    ../_images/03_ifttt_2.png
  3. Fügen Sie ein If This Ereignis hinzu.

    ../_images/03_ifttt_3.png
  4. Suchen Sie nach Webhooks.

    ../_images/03_ifttt_4.png
  5. Wählen Sie Receive a web request.

    ../_images/03_ifttt_5.png
  6. Geben Sie den Ereignisnamen ein (z. B. SecurityWarning) und klicken Sie auf Create trigger.

    ../_images/03_ifttt_6.png
  7. Fügen Sie ein Then That Ereignis hinzu.

    ../_images/03_ifttt_7.png
  8. Suchen Sie nach E-Mail.

    ../_images/03_ifttt_8.png
  9. Wählen Sie Send me an email.

    ../_images/03_ifttt_9.png
  10. Geben Sie den Subject und den Body ein, dann klicken Sie auf Create action.

../_images/03_ifttt_10.png
  1. Klicken Sie auf Continue um die Einrichtung abzuschließen.

../_images/03_ifttt_11.png
  1. Passen Sie nach Bedarf den Titelnamen an.

../_images/03_ifttt_12.png
  1. Sie werden automatisch zur Seite mit den Applet-Details weitergeleitet, wo Sie sehen können, dass das Applet derzeit verbunden ist und Sie den Schalter zum Aktivieren/Deaktivieren umlegen können.

../_images/03_ifttt_13.png
  1. Nachdem wir das IFTTT-Applet erstellt haben, benötigen wir auch den Webhooks-Schlüssel, den Sie von Webhooks Settings erhalten können, damit Ihr Gerät auf IFTTT zugreifen kann.

../_images/03_ifttt_14.png
  1. Kopieren Sie den Webhooks-Schlüssel in „arduino_secrets.h“ und tragen Sie Ihr SSID und Passwort ein.

    #define SECRET_SSID "your_ssid"        // your network SSID (name)
    #define SECRET_PASS "your_password"        // your network password (used for WPA, or as a key for WEP)
    #define WEBHOOKS_KEY "your_key"
    

Den Code ausführen

Bemerkung

  • Sie können die Datei 03_ifttt_pir.ino direkt im Pfad elite-explorer-kit-main\iot_project\03_ifttt_pir öffnen.

  • Oder kopieren Sie diesen Code in die Arduino IDE.

Bemerkung

Im Code werden SSID und Passwort in arduino_secrets.h gespeichert. Bevor Sie dieses Beispiel hochladen, müssen Sie sie mit Ihren eigenen WLAN-Anmeldeinformationen ändern. Außerdem sollten Sie aus Sicherheitsgründen diese Informationen vertraulich halten, wenn Sie den Code teilen oder speichern.

Warnung

Um zu verhindern, dass Ihr Postfach überflutet wird, debuggen Sie bitte den PIR-Bewegungssensormodul vorher, bevor Sie den Code für dieses Projekt ausführen.

Wie funktioniert des?

  1. Einbinden der erforderlichen Bibliotheken und Header-Dateien:

    • "WiFiS3.h": Wird verwendet, um Wi-Fi-Verbindungen zu verwalten.

    • "arduino_secrets.h": Enthält den Namen und das Passwort des Wi-Fi-Netzwerks, um sensible Informationen zu schützen.

  2. Definition einiger globaler Variablen und Konstanten:

    • ssid: Name des Wi-Fi-Netzwerks.

    • pass: Wi-Fi-Netzwerkpasswort.

    • status: Status der Wi-Fi-Verbindung.

    • client: Client zur Kommunikation mit dem Wi-Fi-Server.

    • server: Adresse des IFTTT Webhook-Servers.

    • event: Name des IFTTT Webhook-Ereignisses.

    • webRequestURL: Konstruierte URL für das Senden von HTTP-Anfragen, einschließlich des Webhook-Ereignisnamens und -schlüssels.

    • pirPin: Digitaler Pin, an den der PIR-Sensor angeschlossen ist.

    • motionDetected: Flag-Variable zur Verfolgung der Bewegungserkennung.

  3. setup() Funktion:

    • Initialisiert die serielle Kommunikation.

    • Überprüft das Vorhandensein des Wi-Fi-Moduls und gibt dessen Firmware-Version aus.

    • Versucht, eine Verbindung zum Wi-Fi-Netzwerk herzustellen, mit Wiederholungen bei Misserfolg.

    • Setzt den an den PIR-Sensor angeschlossenen Pin auf Eingabemodus.

  4. readResponse() Funktion:

    • Liest HTTP-Antwortdaten vom IFTTT-Server und gibt sie auf der seriellen Konsole aus.

  5. loop() Funktion:

    • Ruft die Funktion readResponse() auf, um HTTP-Antwortdaten zu lesen.

    • Überprüft die Bewegung mithilfe des PIR-Sensors. Wenn eine Bewegung erkannt wird und zuvor nicht erkannt wurde:
      • Gibt „Motion detected!“ auf der Konsole aus.

      • Ruft die Funktion triggerIFTTTEvent() auf, um eine HTTP-Anfrage an den IFTTT-Server zu senden und das Webhook-Ereignis auszulösen.

      • Setzt das Flag motionDetected auf true, um anzuzeigen, dass eine Bewegung erkannt wurde.

    • Wenn keine Bewegung erkannt wird, setzt das Flag motionDetected auf false.

  6. triggerIFTTTEvent() Funktion:

    • Stellt eine Verbindung mit dem IFTTT-Server her.

    • Sendet eine HTTP-GET-Anfrage, einschließlich der URL des Webhook-Ereignisses und anderer HTTP-Header.

  7. printWifiStatus() Funktion:

    • Gibt Informationen über das verbundene Wi-Fi-Netzwerk aus, einschließlich SSID, IP-Adresse und Signalstärke (RSSI) auf der seriellen Konsole.