Skip to content

Latest commit

 

History

History
226 lines (144 loc) · 8.12 KB

03_iot_security_alert.rst

File metadata and controls

226 lines (144 loc) · 8.12 KB

Note

Hallo und willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Gemeinschaft auf Facebook! Tauchen Sie tiefer ein in die Welt von Raspberry Pi, Arduino und ESP32 mit anderen Enthusiasten.

Warum beitreten?

  • Expertenunterstützung: Lösen Sie Nachverkaufsprobleme und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams.
  • Lernen & Teilen: Tauschen Sie Tipps und Anleitungen aus, um Ihre Fähigkeiten zu verbessern.
  • Exklusive Vorschauen: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken.
  • Spezialrabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.
  • Festliche Aktionen und Gewinnspiele: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil.

👉 Sind Sie bereit, mit uns zu erkunden und zu erschaffen? Klicken Sie auf [|link_sf_facebook|] und treten Sie heute bei!

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+ |link_Elite_Explorer_kit|

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

KOMPONENTENBESCHREIBUNG KAUF-LINK
:ref:`uno_r4_wifi` -
:ref:`cpn_wires` |link_wires_buy|
:ref:`cpn_pir` |link_pir_buy|

Verdrahtung

img/03-ifttt_pir_bb.png

Schaltplan

img/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 |link_ifttt|, um sich anzumelden oder ein Konto zu erstellen.

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

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

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

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

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

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

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

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

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

img/03_ifttt_10.png
  1. Klicken Sie auf Continue um die Einrichtung abzuschließen.
img/03_ifttt_11.png
  1. Passen Sie nach Bedarf den Titelnamen an.
img/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.
img/03_ifttt_13.png
  1. Nachdem wir das IFTTT-Applet erstellt haben, benötigen wir auch den Webhooks-Schlüssel, den Sie von |link_webhooks| erhalten können, damit Ihr Gerät auf IFTTT zugreifen kann.
img/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

Note

  • 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.

Note

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.

Warning

Um zu verhindern, dass Ihr Postfach überflutet wird, debuggen Sie bitte den :ref:`cpn_pir` 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.