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 51: Einbruchsalarm-System mit Blynk
Dieses Projekt demonstriert ein einfaches Home-Einbruchserkennungssystem unter Verwendung eines passiven Infrarotsensors (PIR) (HC-SR501). 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 und informiert den Benutzer über mögliche Eindringlinge.
Benötigte Komponenten
Für dieses Projekt benötigen wir folgende Komponenten.
Es ist definitiv bequem, ein ganzes 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 unten stehenden Links kaufen.
Component Introduction |
Purchase Link |
|---|---|
Arduino UNO R3 or R4 |
|
- |
|
- |
Verkabelung
Blynk konfigurieren
Bemerkung
Wenn Sie mit Blynk nicht vertraut sind, wird dringend empfohlen, dass Sie zunächst diese beiden Tutorials lesen. Erste Schritte mit Blynk ist eine Anleitung für Anfänger für Blynk, die erklärt, wie man ESP8266 konfiguriert und sich bei Blynk registriert. Und Lektion 50: Flammenwarnsystem mit Blynk ist ein einfaches Beispiel, aber die Beschreibung der Schritte wird detaillierter sein.
1 Vorlage erstellen
Zunächst müssen wir eine Vorlage auf Blynk erstellen. Befolgen Sie die unten stehenden Schritte, um eine „Einbruchsalarm-System“-Vorlage zu erstellen.
2 Datenstrom
Erstellen Sie Datenströme vom Typ Virtueller Pin auf der Seite Datenstrom, um Daten von ESP8266 und Uno R4 Board zu empfangen.
Erstellen Sie den virtuellen Pin V0 gemäß dem folgenden Diagramm:
Setzen Sie den Namen des virtuellen Pins V0 auf AwayMode. Setzen Sie den DATENTYP auf Integer und MIN und MAX auf 0 und 1.
Erstellen Sie den virtuellen Pin V1 gemäß dem folgenden Diagramm:
Setzen Sie den Namen des virtuellen Pins V1 auf Aktueller Status. Setzen Sie den DATENTYP auf String.
Stellen Sie sicher, dass Sie gemäß den oben genannten Schritten zwei virtuelle Pins eingerichtet haben.
3 Ereignis
Als nächstes werden wir ein Ereignis erstellen, das das Erkennen von Eindringlingen protokolliert und eine E-Mail-Benachrichtigung sendet.
Bemerkung
Es wird empfohlen, es konsistent mit meinen Einstellungen zu halten, da Sie andernfalls möglicherweise den Code anpassen müssen, um das Projekt auszuführen. Stellen Sie sicher, dass der EREIGNISCODE als intrusion_detected festgelegt ist.
Gehen Sie zur Benachrichtigungen-Seite und konfigurieren Sie die E-Mail-Einstellungen.
4 Web-Dashboard konfigurieren
Wir müssen auch das Web-Dashboard konfigurieren, um mit dem Einbruchsalarm-System interagieren zu können.
Ziehen Sie ein Schalter-Widget und ein Label-Widget auf die Seite des Web-Dashboards.
Auf der Einstellungsseite des Schalter-Widgets wählen Sie Datenstrom als AwayMode (V0) aus. Legen Sie ONLABEL und OFFLABEL fest, um „nicht zu Hause“ anzuzeigen, wenn der Schalter eingeschaltet ist, und „zu Hause“ wenn der Schalter ausgeschaltet ist.
Auf der Einstellungsseite des Label-Widgets wählen Sie Datenstrom als Aktueller Status (V1) aus.
5 Vorlage speichern
Zuletzt, denken Sie daran, die Vorlage zu speichern.
Code
Öffnen Sie die Datei
Lesson_51_Intrusion_alert_system.inoim Pfaduniversal-maker-sensor-kit\arduino_uno\Lesson_51_Intrusion_alert_system, oder kopieren Sie diesen Code in die Arduino IDE.Erstellen Sie ein Blynk-Gerät mit der Vorlage „Einbruchsalarm-System“. Ersetzen Sie dann
BLYNK_TEMPLATE_ID,BLYNK_TEMPLATE_NAMEundBLYNK_AUTH_TOKENdurch Ihre eigenen.#define BLYNK_TEMPLATE_ID "TMPxxxxxxx" #define BLYNK_TEMPLATE_NAME "Intrusion Alert System" #define BLYNK_AUTH_TOKEN "xxxxxxxxxxxxx"
Geben Sie auch die
ssidundpassworddes WLANs ein, das Sie verwenden.char ssid[] = "your_ssid"; char pass[] = "your_password";
Wählen Sie nach Auswahl des richtigen Boards und Ports die Schaltfläche Hochladen.
Öffnen Sie den Seriellen Monitor (Baudrate auf 115200 einstellen) und warten Sie auf eine Meldung, z. B. eine erfolgreiche Verbindung.
Bemerkung
Wenn die Meldung „ESP antwortet nicht“ angezeigt wird, wenn Sie eine Verbindung herstellen, befolgen Sie diese Schritte.
Make sure the 9V battery is plugged in.
Reset the ESP8266 module by connecting the pin RST to GND for 1 second, then unplug it.
Press the reset button on the R4 board.
Manchmal müssen Sie die oben genannten Operationen 3-5 Mal wiederholen, bitte haben Sie Geduld.
Code-Analyse
Konfiguration & Bibliotheken
Hier werden Konstanten und Anmeldeinformationen für Blynk eingerichtet. Erforderliche Bibliotheken für das ESP8266 WiFi-Modul und Blynk werden eingebunden.
#define BLYNK_TEMPLATE_ID "TMPxxxx" #define BLYNK_TEMPLATE_NAME "Intrusion Alert System" #define BLYNK_AUTH_TOKEN "xxxxxx-" #define BLYNK_PRINT Serial #include <ESP8266_Lib.h> #include <BlynkSimpleShieldEsp8266.h>
WiFi-Einrichtung
Konfigurieren Sie die WiFi-Anmeldeinformationen und richten Sie die Software-Serial-Kommunikation mit dem ESP01-Modul ein.
char ssid[] = "your_ssid"; char pass[] = "your_password"; SoftwareSerial EspSerial(2, 3); #define ESP8266_BAUD 115200 ESP8266 wifi(&EspSerial);
PIR-Sensor-Konfiguration
Definieren Sie den Pin, an dem der PIR-Sensor angeschlossen ist, und initialisieren Sie Zustandsvariablen.
const int sensorPin = 8; int state = 0; int awayHomeMode = 0; BlynkTimer timer;
setup() Funktion
Diese initialisiert den PIR-Sensor als Eingang, richtet die serielle Kommunikation ein, verbindet sich mit WiFi und konfiguriert Blynk.
Wir verwenden
timer.setInterval(1000L, myTimerEvent), um das Timerintervall in setup() festzulegen. Hier setzen wir die Ausführung der FunktionmyTimerEvent()alle 1000ms. 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); Serial.begin(115200); EspSerial.begin(ESP8266_BAUD); delay(10); Blynk.config(wifi, BLYNK_AUTH_TOKEN); Blynk.connectWiFi(ssid, pass); timer.setInterval(1000L, myTimerEvent); }
loop() Funktion
Die loop Funktion führt wiederholt Blynk und die Blynk Timer-Funktionen aus.
void loop() { Blynk.run(); timer.run(); }
Interaktion mit der Blynk-App
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 eine Verbindung zum Blynk-Server herstellt oder sich aufgrund schlechter Netzwerkbedingungen erneut verbindet, wird die Funktion
BLYNK_CONNECTED()aufgerufen. Der BefehlBlynk.syncVirtual()fordert einen einzigen Wert des virtuellen Pins an. Der angegebene virtuelle Pin wird den AufrufBLYNK_WRITE()durchführen. Bitte beachten Sie Blynk - State Syncing für weitere Details.Immer wenn sich der Wert eines virtuellen Pins auf dem BLYNK-Server ändert, wird
BLYNK_WRITE()ausgelöst. Weitere Details unter Blynk - BLYNK_WRITE() .
// 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 ist in Ihrem Haus! Bitte überprüfen!");um den Text eines Labels zu ändern.Verwenden Sie
Blynk.logEvent("Einbruch erkannt");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