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!
Lektion 49: Blynk-basiertes Einbruchmeldesystem
Dieses Projekt demonstriert ein einfaches Einbruchmeldesystem für zu Hause unter Verwendung eines PIR-Bewegungssensors (HC-SR501). Wenn das System über die Blynk-App auf den „Abwesenheitsmodus“ eingestellt ist, überwacht der PIR-Sensor Bewegungen. Jede erkannte Bewegung löst eine Benachrichtigung in der Blynk-App aus, die den Benutzer auf einen möglichen Einbruch aufmerksam macht.
Benötigte Komponenten
In diesem Projekt benötigen wir die folgenden Komponenten.
Es ist definitiv praktisch, ein komplettes Kit zu kaufen, hier ist der Link:
Name |
ITEMS IN THIS KIT |
LINK |
|---|---|---|
Universal Maker Sensor Kit |
94 |
Sie können sie auch separat über die folgenden Links kaufen.
COMPONENT INTRODUCTION |
PURCHASE LINK |
|---|---|
ESP32 & Development Board |
|
- |
1. Schaltungsaufbau
2. Blynk Konfiguration
2.1 Initialisierung von Blynk
Navigieren Sie zur Blynk und wählen Sie START FREE.
Geben Sie Ihre E-Mail-Adresse ein, um den Registrierungsprozess zu starten.
Bestätigen Sie Ihre Registrierung über Ihre E-Mail.
Nach der Bestätigung erscheint der Blynk-Tour. Es wird empfohlen, „Überspringen“ auszuwählen. Wenn auch Schnellstart angezeigt wird, sollten Sie diesen ebenfalls überspringen.
2.2 Erstellen einer Vorlage
Erstellen Sie zuerst eine Vorlage in Blynk. Befolgen Sie die folgenden Anweisungen, um die Vorlage Intrusion Alert System zu erstellen.
Weisen Sie der Vorlage einen Namen zu, wählen Sie ESP32 Hardware aus und wählen Sie als Verbindungstyp WiFi. Klicken Sie dann auf Fertig.
2.3 Erstellen eines Datenstroms
Öffnen Sie die gerade eingerichtete Vorlage, und erstellen Sie zwei Datenströme.
Klicken Sie auf Neuer Datenstrom.
Wählen Sie im Popup Virtueller Pin.
Benennen Sie den Virtuellen Pin V0 als AwayMode. Setzen Sie den DATENTYP auf Integer mit MIN und MAX Werten von 0 und 1.
Erstellen Sie auf ähnliche Weise einen weiteren Virtuellen Pin Datenstrom. Benennen Sie ihn Current Status und setzen Sie den DATENTYP auf String.
2.4 Einrichten eines Ereignisses
Als nächstes richten wir ein Ereignis ein, das eine E-Mail-Benachrichtigung sendet, wenn ein Einbruch erkannt wird.
Klicken Sie auf Neues Ereignis hinzufügen.
Definieren Sie den Namen des Ereignisses und seinen spezifischen Code. Wählen Sie für TYP Warnung und schreiben Sie eine kurze Beschreibung für die zu sendende E-Mail, wenn das Ereignis eintritt. Sie können auch einstellen, wie oft Sie benachrichtigt werden möchten.
Gehen Sie zum Abschnitt Benachrichtigungen, um Benachrichtigungen zu aktivieren und E-Mail-Details einzurichten.
2.5 Feinabstimmung des Web-Dashboards
Stellen Sie sicher, dass das Web-Dashboard perfekt mit dem Einbruchmeldesystem interagiert.
Ziehen Sie einfach sowohl das Schalter-Widget als auch das Beschriftungs-Widget auf das Web-Dashboard.
Wenn Sie über ein Widget fahren, erscheinen drei Symbole. Verwenden Sie das Einstellungssymbol, um die Eigenschaften des Widgets anzupassen.
Wählen Sie in den Einstellungen des Schalter-Widgets Datenstrom als AwayMode(V0). Setzen Sie ONLABEL und OFFLABEL auf „away“ bzw. „home“.
Wählen Sie in den Einstellungen des Beschriftungs-Widgets Datenstrom als Current Status(V1).
2.6 Speichern der Vorlage
Vergessen Sie zuletzt nicht, Ihre Vorlage zu speichern.
2.7 Erstellung eines Geräts
Jetzt ist es an der Zeit, ein neues Gerät zu erstellen.
Klicken Sie auf Aus Vorlage, um eine neue Einrichtung zu starten.
Wählen Sie dann die Vorlage Intrusion Alert System und klicken Sie auf Erstellen.
Hier sehen Sie die
Template ID, denGerätenamenund dasAuthToken. Diese müssen Sie in Ihren Code einfügen, damit das ESP32 mit Blynk arbeiten kann.
3. Code-Ausführung
Bevor Sie den Code ausführen, stellen Sie sicher, dass Sie die
Blynk-Bibliothek aus dem Bibliotheks-Manager der Arduino IDE installiert haben.Öffnen Sie die Datei
Lesson_49_Blynk_based_intrusion_system.ino, die sich im Verzeichnisuniversal-maker-sensor-kit\esp32\Lesson_49_Blynk_based_intrusion_systembefindet. Sie können den Inhalt auch in die Arduino IDE kopieren.Ersetzen Sie die Platzhalter für
BLYNK_TEMPLATE_ID,BLYNK_TEMPLATE_NAMEundBLYNK_AUTH_TOKENdurch Ihre eigenen eindeutigen IDs.#define BLYNK_TEMPLATE_ID "TMPxxxxxxx" #define BLYNK_TEMPLATE_NAME "Intrusion Alert System" #define BLYNK_AUTH_TOKEN "xxxxxxxxxxxxx"
Sie müssen auch die
ssidund daspasswordIhres WiFi-Netzwerks eingeben.char ssid[] = "your_ssid"; char pass[] = "your_password";
Wählen Sie das richtige Board (ESP32 Dev Module) und den richtigen Port aus und klicken Sie dann auf die Schaltfläche Hochladen.
Öffnen Sie den Serial Monitor (stellen Sie die Baudrate auf 115200 ein) und warten Sie auf eine erfolgreiche Verbindungsnachricht.
Nach einer erfolgreichen Verbindung wird durch Aktivieren des Schalters in Blynk das Überwachungsmodul des PIR-Sensors gestartet. Wenn eine Bewegung erkannt wird (Status 1), erscheint die Nachricht „Somebody here!“ und es wird eine Warnung an Ihre E-Mail gesendet.
4. Code-Erklärung
Konfiguration & Bibliotheken
Hier richten Sie die Blynk-Konstanten und Anmeldeinformationen ein. Außerdem binden Sie 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 WiFi-Anmeldeinformationen 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, stellt die Verbindung zum WiFi her und konfiguriert Blynk.
Wir verwenden
timer.setInterval(1000L, myTimerEvent), um das Timer-Intervall insetup()festzulegen. Hier stellen wir ein, 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 ändern.
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 Blynk-Timer-Funktionen aus.
void loop() { Blynk.run(); timer.run(); }
Interaktion mit der Blynk-App
Diese Funktionen werden aufgerufen, wenn das Gerät eine Verbindung zu Blynk herstellt und wenn sich der Zustand des virtuellen Pins V0 in der Blynk-App ändert.
Jedes Mal, wenn das Gerät eine Verbindung zum Blynk-Server herstellt oder aufgrund schlechter Netzwerkbedingungen neu verbindet, wird die Funktion
BLYNK_CONNECTED()aufgerufen. Der BefehlBlynk.syncVirtual()fordert einen einzelnen Wert des virtuellen Pins an. Der angegebene virtuelle Pin wird den AufrufBLYNK_WRITE()durchführen.Jedes Mal, 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, "Somebody in your house! Please check!");, 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"); } } }
Referenzen