Arduino Nano ESP32 - E-Mail-Benachrichtigung bei Wasserleck
Dieser Leitfaden zeigt Ihnen, wie Sie den Arduino Nano ESP32 verwenden, um Wasserlecks zu erkennen und sofort E-Mail-Benachrichtigungen zu senden. Wir erklären, wie man den Sensor einrichtet, geben Codebeispiele und demonstrieren, wie man ihn mit E-Mail-Diensten verbindet. Dies ist nützlich, um Ihr Zuhause oder Ihr Büro vor Wasserschäden zu schützen, und eignet sich ideal für diejenigen, die gern DIY-Projekte machen und ihre Wasserleck-Erkennungssysteme verbessern möchten.
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 Wassersensor und Gmail
Wir bieten klare Anleitungen zu Wassersensoren und Gmail. Jede Anleitung enthält detaillierte Anweisungen und einfache Schritte zum Einrichten der Hardware, zum Verständnis ihrer Funktionsweise sowie zum Verbinden und Programmieren des Arduino Nano ESP32. Um mehr zu erfahren, klicken Sie bitte auf diese Links.
Schaltplan zwischen Wassersensor und Arduino Nano ESP32
Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Arduino Nano ESP32 Quellcode
/* * Dieser Arduino Nano ESP32 Code wurde von newbiely.de entwickelt * Dieser Arduino Nano ESP32 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/arduino-nano-esp32/arduino-nano-esp32-water-leak-email-notification*/#include <WiFi.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 WATER_SENSOR_PIN D4 // The Arduino Nano ESP32 pin D4 connected to water sensor's pinint water_state; // current state of water sensorint prev_water_state; // previous state of water sensorSMTPSessionsmtp;voidsetup() {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(WATER_SENSOR_PIN, INPUT_PULLUP); // set ESP32 pin to input pull-up mode water_state = digitalRead(WATER_SENSOR_PIN); // read state}voidloop() { prev_water_state = water_state; // save the last state water_state = digitalRead(WATER_SENSOR_PIN); // read new stateif (prev_water_state == HIGH && water_state == LOW) {Serial.println("Water leakage is detected!");String subject = "Email Notification from ESP32";String textMsg = "This is an email sent from ESP32.\n"; textMsg += "Water leakage is detected"; gmail_send(subject, textMsg); }}void gmail_send(String subject, String textMsg) {// set the network reconnection optionMailClient.networkReconnect(true);smtp.debug(1);smtp.callback(smtpCallback); Session_Config config;// set the session configconfig.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("ESP32"); 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 serverif (!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.");elseSerial.println("Connected with no Auth."); }// start sending Email and close the sessionif (!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 statusvoid smtpCallback(SMTP_Status status) {// print the current statusSerial.println(status.info());// print the sending resultif (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 memorysmtp.sendingResult.clear(); }}
Schnelle Schritte
Um mit dem Arduino Nano ESP32 zu beginnen, befolgen Sie diese Schritte:
Schließen Sie den Wassersensor gemäß dem bereitgestellten Diagramm an das Arduino Nano ESP32-Board an.
Schließen Sie das Arduino Nano ESP32-Board mit einem USB-Kabel an Ihren Computer an.
Starten Sie die Arduino IDE auf Ihrem Computer.
Wählen Sie das Arduino Nano ESP32-Board und den entsprechenden COM-Port aus.
Öffnen Sie den Library Manager, indem Sie auf das Library Manager-Symbol auf der linken Seite der Arduino IDE klicken.
Suchen Sie nach dem ESP Mail Client und finden Sie den ESP Mail Client von Mobizt.
Klicken Sie auf die Install-Schaltfläche, um die ESP Mail Client-Bibliothek zu erhalten.
Kopieren Sie den bereitgestellten Code und fügen Sie ihn in die Arduino-IDE ein.
Ändern Sie Ihre WiFi-Zugangsdaten, indem Sie WIFI_SSID und WIFI_PASSWORD im Code bearbeiten.
Geben Sie Ihre E-Mail-Adresse und Ihr Passwort anstelle der Absenderadresse ein, indem Sie SENDER_EMAIL und SENDER_PASSWORD aktualisieren.
Bearbeiten Sie die E-Mail-Adresse des Empfängers im Code, indem Sie RECIPIENT_EMAIL ändern. Sie kann dieselbe sein wie die des Absenders.
※ Notiz:
Die E-Mail des Absenders muss ein Gmail-Konto sein.
Verwenden Sie das App-Passwort aus dem vorherigen Schritt als das Passwort des Absenders.
Die E-Mail-Adresse des Empfängers kann jede Art von E-Mail sein.
Klicken Sie in der Arduino IDE auf die Hochladen-Schaltfläche, um den Code an den Arduino Nano ESP32 zu senden.
Öffnen Sie den seriellen Monitor.
Gießen Sie Wasser auf den Wassersensor.
Überprüfen Sie den seriellen Monitor, um das Ergebnis zu sehen.
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano ESP32
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
Water leakage is detected
#### 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 Arduino Nano ESP32
----------------
Ln 11, Col 1
Arduino Nano ESP32 on COM15
2
Schau in deinen E-Mail-Posteingang. Du solltest eine E-Mail erhalten, die ungefähr so aussieht:
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.
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!