ESP8266 – Schützen Sie Ihre Habseligkeiten: Diebstahl erkennen und E-Mail-Benachrichtigungen senden

Dieser Leitfaden zeigt dir, wie du einen ESP8266 und einen Kraftsensor verwendest, um deine Gegenstände sicher zu verwahren. Wir zeigen dir, wie du ein System erstellst, das dir eine E-Mail-Benachrichtigung sendet, wenn jemand versucht, deine Besitztümer zu stehlen. Du lernst, wie du den ESP8266 vorbereitest, den Kraftsensor anschließt und ihn so einrichtest, dass er E-Mails über Gmail sendet. Wir liefern Schritt-für-Schritt-Anleitungen und erklären, wie dieses System in realen Alltagssituationen nützlich sein kann.

ESP8266 NodeMCU Diebstahlerkennung E-Mail-Benachrichtigung

Erforderliche Hardware

1×ESP8266 NodeMCU
1×USB-Kabel Typ-A zu Typ-C (für USB-A PC)
1×USB-Kabel Typ-C zu Typ-C (für USB-C PC)
1×Kraftsensor
1×10 kΩ Resistor
1×Breadboard
1×Verbindungskabel
1×(Optional) DC-Stromanschluss
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für ESP8266
1×(Empfohlen) Stromverteiler für ESP8266 Typ-C

Oder Sie können die folgenden Kits kaufen:

1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über Kraftsensor und Gmail

Wir bieten klare Anleitungen zu Kraftsensoren und Gmail. Jede Anleitung enthält vollständige Anweisungen zum Aufbau der Hardware, wie sie funktioniert, und zum Anschluss der Drähte an den ESP8266, einschließlich Codierungsschritten. Für weitere Details folgen Sie diesen Links.

Wie das Diebstahls-Erkennungssystem funktioniert

Wenn Sie einen Gegenstand auf den Kraftsensor legen, misst er das Gewicht. Das ESP8266-Gerät zeichnet dieses Gewicht auf. Wenn der Gegenstand entfernt wird, ändert sich das Gewicht. Das ESP8266 erkennt dieses geänderte Gewicht und sendet Ihnen eine E-Mail, um Sie darüber zu informieren, dass Ihr Gegenstand bewegt wurde.

Verdrahtungsdiagramm zwischen Kraftsensor und ESP8266

ESP8266 NodeMCU Kraftsensor-Schaltplan

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Weitere Informationen finden Sie unter ESP8266-Pinbelegung und wie man ESP8266 und andere Komponenten mit Strom versorgt.

ESP8266-Code

/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/esp8266/esp8266-secure-your-belongings-detect-theft-and-send-email-alerts */ #include <ESP8266WiFi.h> #include <ESP_Mail_Client.h> #define WIFI_SSID "YOUR_WIFI_SSID" // CHANGE IT #define WIFI_PASSWORD "YOUR_WIFI_PASSWORD" // CHANGE IT // the sender email credentials #define SENDER_EMAIL "xxxxxx@gmail.com" // CHANGE IT #define SENDER_PASSWORD "xxxx xxxx xxxx xxxx" // CHANGE IT to your Google App password #define RECIPIENT_EMAIL "xxxxxx@gmail.com" // CHANGE IT #define SMTP_HOST "smtp.gmail.com" #define SMTP_PORT 587 #define FORCE_SENSOR_PIN A0 // ESP8266 pin A0 connected to the FSR with 10K pull-down resistor #define THRESHOLD 100 // may need to callibrate this value SMTPSession smtp; void setup() { Serial.begin(9600); WiFi.begin(WIFI_SSID, WIFI_PASSWORD); Serial.print("Connecting to Wi-Fi"); while (WiFi.status() != WL_CONNECTED) { Serial.print("."); delay(300); } Serial.println(); Serial.print("Connected with IP: "); Serial.println(WiFi.localIP()); Serial.println(); pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP); // set ESP8266 pin to input pull-up mode door_state = digitalRead(DOOR_SENSOR_PIN); // read state } void loop() { int forceValue = analogRead(FORCE_SENSOR_PIN); if (forceValue < THRESHOLD) { Serial.println("Alert! Someone has stolen your stuff!"); String subject = "Email Notification from ESP8266"; String textMsg = "This is an email sent from ESP8266.\n"; textMsg += "Alert! Someone has stolen your stuff!"; gmail_send(subject, textMsg); } } void gmail_send(String subject, String textMsg) { // set the network reconnection option MailClient.networkReconnect(true); smtp.debug(1); smtp.callback(smtpCallback); Session_Config config; // set the session config config.server.host_name = SMTP_HOST; config.server.port = SMTP_PORT; config.login.email = SENDER_EMAIL; config.login.password = SENDER_PASSWORD; config.login.user_domain = F("127.0.0.1"); config.time.ntp_server = F("pool.ntp.org,time.nist.gov"); config.time.gmt_offset = 3; config.time.day_light_offset = 0; // declare the message class SMTP_Message message; // set the message headers message.sender.name = F("ESP8266"); message.sender.email = SENDER_EMAIL; message.subject = subject; message.addRecipient(F("To Whom It May Concern"), RECIPIENT_EMAIL); message.text.content = textMsg; message.text.transfer_encoding = "base64"; message.text.charSet = F("utf-8"); message.priority = esp_mail_smtp_priority::esp_mail_smtp_priority_low; // set the custom message header message.addHeader(F("Message-ID: <abcde.fghij@gmail.com>")); // connect to the server if (!smtp.connect(&config)) { Serial.printf("Connection error, Status Code: %d, Error Code: %d, Reason: %s\n", smtp.statusCode(), smtp.errorCode(), smtp.errorReason().c_str()); return; } if (!smtp.isLoggedIn()) { Serial.println("Not yet logged in."); } else { if (smtp.isAuthenticated()) Serial.println("Successfully logged in."); else Serial.println("Connected with no Auth."); } // start sending Email and close the session if (!MailClient.sendMail(&smtp, &message)) Serial.printf("Error, Status Code: %d, Error Code: %d, Reason: %s\n", smtp.statusCode(), smtp.errorCode(), smtp.errorReason().c_str()); } // callback function to get the Email sending status void smtpCallback(SMTP_Status status) { // print the current status Serial.println(status.info()); // print the sending result if (status.success()) { Serial.println("----------------"); Serial.printf("Email sent success: %d\n", status.completedCount()); Serial.printf("Email sent failed: %d\n", status.failedCount()); Serial.println("----------------\n"); for (size_t i = 0; i < smtp.sendingResult.size(); i++) { // get the result item SMTP_Result result = smtp.sendingResult.getItem(i); Serial.printf("Message No: %d\n", i + 1); Serial.printf("Status: %s\n", result.completed ? "success" : "failed"); Serial.printf("Date/Time: %s\n", MailClient.Time.getDateTimeString(result.timestamp, "%B %d, %Y %H:%M:%S").c_str()); Serial.printf("Recipient: %s\n", result.recipients.c_str()); Serial.printf("Subject: %s\n", result.subject.c_str()); } Serial.println("----------------\n"); // free the memory smtp.sendingResult.clear(); } }

Schnelle Schritte

Um mit dem ESP8266 in der Arduino-IDE zu beginnen, befolgen Sie diese Schritte:

  • Schau dir das Tutorial zur Einrichtung der Umgebung für ESP8266 in der Arduino IDE an, falls dies dein erster Einsatz von ESP8266 ist.
  • Schließe dein ESP8266-Board an den Kraftsensor an, wie im Diagramm gezeigt.
  • Schließe das ESP8266-Board mit einem USB-Kabel an deinen Computer an.
  • Platziere die Gegenstände, die du sichern möchtest, auf dem Kraftsensor.
  • Öffne die Arduino IDE auf deinem Computer.
  • Wähle das richtige ESP8266-Board aus, z. B. (NodeMCU 1.0 (ESP-12E Modul)), und seinen jeweiligen COM-Port.
  • Klicke auf das Bibliotheks-Manager-Symbol auf der linken Seite der Arduino IDE, um den Bibliotheks-Manager zu öffnen.
  • Suche nach ESP Mail Client und wähle die Bibliothek aus, die von Mobizt erstellt wurde.
  • Klicke auf die Install-Schaltfläche, um die ESP Mail Client-Bibliothek zu installieren.
ESP8266 NodeMCU ESP Mail Client-Bibliothek
  • Kopieren Sie den Code und öffnen Sie ihn in der Arduino IDE-Software.
  • Geben Sie den Namen Ihres WLANs und das Passwort in den Code ein, indem Sie WIFI_SSID und WIFI_PASSWORD ändern.
  • Geben Sie die E-Mail-Adresse und das Passwort des Absenders in den Code ein, indem Sie SENDER_EMAIL und SENDER_PASSWORD ändern.
  • Ersetzen Sie die E-Mail-Adresse des Empfängers im Code, indem Sie RECIPIENT_EMAIL ändern. Die E-Mail-Adresse des Empfängers kann dieselbe sein wie die des Absenders.

※ Notiz:

  • Die E-Mail-Adresse der Person, die die E-Mail sendet, sollte von Gmail stammen.
  • Das Passwort des Absenders sollte das App-Passwort sein, das Sie zuvor erhalten haben.
  • Die E-Mail-Adresse der Person, die die E-Mail erhält, kann von jedem E-Mail-Dienst stammen.
  • Drücken Sie die Hochladen-Schaltfläche in der Arduino IDE, um den Code auf den ESP8266 zu übertragen.
  • Öffnen Sie den seriellen Monitor.
  • Entfernen Sie Ihren Gegenstand vom Kraftsensor.
  • Überprüfen Sie die Ergebnisse im seriellen Monitor.
COM6
Send
Alert! Someone has stolen your stuff! #### Email sent successfully > C: Email sent successfully ---------------- Message sent success: 1 Message sent failed: 0 ---------------- Message No: 1 Status: success Date/Time: May 27, 2024 04:42:50 Recipient: xxxxxx@gmail.com Subject: Email Notification from ESP8266 ----------------
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Überprüfen Sie Ihren E-Mail-Posteingang. Sie werden eine E-Mail wie diese finden:
ESP8266 NodeMCU Diebstahlerkennung-E-Mail

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!