Bemerkung
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 [hier] und treten Sie heute bei!
8.9 Blynk-basiertes Einbruchmeldesystem¶
Dieses Projekt demonstriert ein einfaches Einbruchmeldesystem für Zuhause, das einen PIR-Bewegungssensor (HC-SR501) nutzt. Wenn das System über die Blynk-App auf den Modus „Abwesend“ eingestellt ist, überwacht der PIR-Sensor Bewegungen. Jede erkannte Bewegung löst eine Benachrichtigung in der Blynk-App aus, die den Benutzer über einen möglichen Einbruch informiert.
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 |
|---|---|---|
ESP32 Starter Kit |
320+ |
Sie können sie auch separat über die untenstehenden Links kaufen.
KOMPONENTENVORSTELLUNG |
KAUF-LINK |
|---|---|
1. Schaltungs-Zusammenbau¶
2. Blynk-Konfiguration¶
2.1 Blynk initialisieren
Gehen Sie zur [Blynk-Plattform](link_blynk) und wählen Sie Sign Up FREE oder Enterprise Solution.
Geben Sie Ihre E-Mail ein, um den Registrierungsprozess zu starten.
Überprüfen Sie Ihre E-Mails und klicken Sie auf den Link Create Password in der E-Mail, um Ihr Passwort festzulegen.
Nach der Bestätigung beginnt eine Blynk-Tour, in der Sie schnell einige der Schlüsselfunktionen von Blynk kennenlernen können.
Nach Abschluss der Blynk-Tour erscheint ein Fenster, in dem Sie zwischen der Option Blueprints erkunden oder Quick Start wählen können, um Ihr Gerät schnell zu verbinden. In diesem Fall wählen wir jedoch „Zuerst umsehen“.
2.2 Vorlage erstellen
Beginnen Sie mit der Erstellung einer Vorlage in Blynk. Folgen Sie den Schritten, um die Vorlage Intrusion Alert System einzurichten.
Benennen Sie Ihre Vorlage, wählen Sie ESP32 als Hardware, WiFi als Verbindungstyp und klicken Sie dann auf Fertig.
Betreten Sie die Vorlage, wo Sie mit den nächsten Schritten aufgefordert werden. Klicken Sie auf Vorlage konfigurieren, um ein Titelbild hochzuladen, die Beschreibung zu verbessern und mehr. Folgen Sie den verbleibenden drei Schritten, um die Einrichtung abzuschließen.
2.3 Datenströme einrichten
Öffnen Sie die neu erstellte Vorlage und gehen Sie zur Seite zum Einrichten der Datenströme.
Klicken Sie auf Neuen Datenstrom, und wählen Sie im Popup Virtueller Pin.
Benennen Sie den Virtuellen Pin V0 als AwayMode und stellen Sie den DATENTYP auf Integer ein, mit MIN- und MAX-Werten als 0 und 1.
Erstellen Sie ähnlich einen weiteren Virtuellen Pin mit dem Namen Current Status und setzen Sie den DATENTYP auf String.
2.4 Das Web-Dashboard einrichten
Ziehen Sie sowohl das Schalter-Widget als auch das Label-Widget auf das Web-Dashboard.
Wenn Sie über ein Widget fahren, erscheinen drei Symbole. Verwenden Sie das Einstellungen-Symbol, um die Eigenschaften des Widgets zu konfigurieren.
Konfigurieren Sie das Schalter-Widget so, dass es mit dem Datenstrom AwayMode(V0) verknüpft ist. Stellen Sie ONLABEL und OFFLABEL so ein, dass sie „weg von zu Hause“ bzw. „zu Hause“ anzeigen.
Verknüpfen Sie in den Einstellungen des Label-Widget dieses mit dem Datenstrom Current Status(V1).
2.5 Ein Ereignis einrichten
Klicken Sie auf Ereignisse & Benachrichtigungen und dann auf Ereignis erstellen.
Benennen Sie das Ereignis und geben Sie dessen Code an. Wählen Sie Warnung für den TYP und geben Sie eine kurze Beschreibung für die Benachrichtigungs-E-Mail an. Stellen Sie die Benachrichtigungshäufigkeit nach Wunsch ein.
Bemerkung
Stellen Sie sicher, dass der EREIGNISCODE als
intrusion_detectedfestgelegt ist. Änderungen hier erfordern entsprechende Codeanpassungen.
Gehen Sie zum Abschnitt Benachrichtigungen, um Benachrichtigungen zu aktivieren und E-Mail-Einstellungen zu konfigurieren.
Definieren Sie unter Einstellungen, wie häufig ein Ereignis Benachrichtigungen auslöst und legen Sie Intervalle nach Ihren Vorlieben fest. Denken Sie daran, auf Erstellen zu klicken, um Ihre Einstellungen zu speichern.
2.6 Vorlage speichern
2.7 Ein Gerät erstellen
3. Codeausführung¶
Bevor Sie den Code ausführen, stellen Sie sicher, dass Sie die
Blynk-Bibliothek über den Library Manager in der Arduino IDE installiert haben.Öffnen Sie die Datei
iot_9_intrusion_alert_system.ino, die sich im Verzeichnisesp32-starter-kit-main\c\codes\iot_9_intrusion_alert_systembefindet. Sie können auch deren Inhalt in die Arduino IDE kopieren.Ersetzen Sie die Platzhalter für
BLYNK_TEMPLATE_ID,BLYNK_TEMPLATE_NAMEundBLYNK_AUTH_TOKENmit Ihren eigenen einzigartigen IDs.#define BLYNK_TEMPLATE_ID "TMPxxxxxxx" #define BLYNK_TEMPLATE_NAME "Intrusion Alert System" #define BLYNK_AUTH_TOKEN "xxxxxxxxxxxxx"
Geben Sie auch die
ssidund daspasswordIhres WLAN-Netzwerks ein.char ssid[] = "your_ssid"; char pass[] = "your_password";
Wählen Sie das richtige Board (ESP32 Dev Module) und den Port, und klicken Sie dann auf den Upload-Button.
Öffnen Sie den Seriellen Monitor (Baudrate auf 115200 einstellen) und warten Sie auf eine erfolgreiche Verbindungsmeldung.
Nach einer erfolgreichen Verbindung startet das Aktivieren des Schalters in Blynk die Überwachung des PIR-Moduls. Wenn eine Bewegung erkannt wird (Zustand 1), wird „Jemand ist hier!“ angezeigt und eine Warnung an Ihre E-Mail gesendet.
4. Code-Erklärung¶
Konfiguration & Bibliotheken
Hier richten Sie die Blynk-Konstanten und Zugangsdaten ein. Sie schließen auch die notwendigen Bibliotheken für den ESP32 und Blynk ein.
/* Comment this out to disable prints and save space */ #define BLYNK_PRINT Serial #define BLYNK_TEMPLATE_ID "xxxxxxxxxxx" #define BLYNK_TEMPLATE_NAME "Intrusion Alert System" #define BLYNK_AUTH_TOKEN "xxxxxxxxxxxxxxxxxxxxxxxxxxx" #include <WiFi.h> #include <WiFiClient.h> #include <BlynkSimpleEsp32.h>
WiFi-Einrichtung
Geben Sie Ihre WLAN-Zugangsdaten ein.
char ssid[] = "your_ssid"; char pass[] = "your_password";
PIR-Sensor-Konfiguration
Legen Sie den Pin fest, an dem der PIR-Sensor angeschlossen ist, und initialisieren Sie die Zustandsvariablen.
const int sensorPin = 14; int state = 0; int awayHomeMode = 0; BlynkTimer timer;
setup() Funktion
Diese Funktion initialisiert den PIR-Sensor als Eingang, richtet die serielle Kommunikation ein, verbindet sich mit WLAN und konfiguriert Blynk.
Wir verwenden
timer.setInterval(1000L, myTimerEvent)um das Timer-Intervall insetup()zu setzen. Hier legen wir fest, dass die FunktionmyTimerEvent()alle 1000ms ausgeführt wird. Sie können den ersten Parameter vontimer.setInterval(1000L, myTimerEvent)ändern, um das Intervall zwischen den Ausführungen vonmyTimerEventzu variieren.
void setup() { pinMode(sensorPin, INPUT); // Set PIR sensor pin as input Serial.begin(115200); // Start serial communication at 115200 baud rate for debugging // Configure Blynk and connect to WiFi Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass); timer.setInterval(1000L, myTimerEvent); // Setup a function to be called every second }
loop() Funktion
Die loop-Funktion führt kontinuierlich Blynk und die Blynk-Timer-Funktionen aus.
void loop() { Blynk.run(); timer.run(); }
Blynk-App-Interaktion
Diese Funktionen werden aufgerufen, wenn das Gerät sich mit Blynk verbindet und wenn sich der Zustand des virtuellen Pins V0 in der Blynk-App ändert.
Jedes Mal, wenn das Gerät sich mit dem Blynk-Server verbindet oder aufgrund schlechter Netzwerkbedingungen erneut verbindet, wird die Funktion
BLYNK_CONNECTED()aufgerufen. Der BefehlBlynk.syncVirtual()fordert einen einzelnen virtuellen Pinwert an. Der angegebene virtuelle Pin führt einenBLYNK_WRITE()-Aufruf durch.Immer wenn sich der Wert eines virtuellen Pins auf dem BLYNK-Server ändert, wird
BLYNK_WRITE()ausgelöst.
// This function is called every time the device is connected to the Blynk.Cloud BLYNK_CONNECTED() { Blynk.syncVirtual(V0); } // This function is called every time the Virtual Pin 0 state changes BLYNK_WRITE(V0) { awayHomeMode = param.asInt(); // additional logic }
Datenverarbeitung
Jede Sekunde ruft die Funktion
myTimerEvent()die FunktionsendData()auf. Wenn der Abwesenheitsmodus in Blynk aktiviert ist, überprüft sie den PIR-Sensor und sendet eine Benachrichtigung an Blynk, wenn eine Bewegung erkannt wird.Wir verwenden
Blynk.virtualWrite(V1, "Jemand in Ihrem Haus! Bitte überprüfen!");um den Text eines Labels zu ändern.Verwenden Sie
Blynk.logEvent("intrusion_detected");, um ein Ereignis in Blynk zu protokollieren.
void myTimerEvent() { sendData(); } void sendData() { if (awayHomeMode == 1) { state = digitalRead(sensorPin); // Read the state of the PIR sensor Serial.print("state:"); Serial.println(state); // If the sensor detects movement, send an alert to the Blynk app if (state == HIGH) { Serial.println("Somebody here!"); Blynk.virtualWrite(V1, "Somebody in your house! Please check!"); Blynk.logEvent("intrusion_detected"); } } }
Referenz










