Arduino - E-mailmelding bij deur openen

In deze handleiding leert u hoe u een Arduino gebruikt om e-mails te versturen zodra een deur wordt geopend. We leggen uit hoe u dit opzet, welke onderdelen u nodig heeft en geven gedetailleerde stappen om uw Arduino te verbinden met een deursensor en een e-mailservice. Dit helpt uw huis te beveiligen door direct e-mailmeldingen te ontvangen wanneer de deur opengaat.

Arduino Door Open Email Notification

Overzicht over Door Sensor and Gmail

Wij bieden uitgebreide tutorials over Deursensoren en Gmail. Elke gids bevat gedetailleerde informatie en heldere, stapsgewijze instructies over hardware-opstelling, werkingsprincipes en hoe u de Arduino aansluit en programmeert. Meer informatie vindt u via deze links:

Wiring Diagram between Door Sensor and Arduino

Arduino Door Sensor Wiring Diagram

This image is created using Fritzing. Click to enlarge image

Arduino Code

/* * Deze Arduino code is ontwikkeld door newbiely.nl * Deze Arduino code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino/arduino-door-open-email-notification */ #include <WiFiS3.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 DOOR_SENSOR_PIN 13 // Arduino pin connected to door sensor's pin int door_state; // current state of door sensor int prev_door_state; // previous state of door sensor 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 Arduino pin to input pull-up mode door_state = digitalRead(DOOR_SENSOR_PIN); // read state } void loop() { prev_door_state = door_state; // save the last state door_state = digitalRead(DOOR_SENSOR_PIN); // read new state if (prev_door_state == LOW && door_state == HIGH) { // state change: LOW -> HIGH Serial.println("The door is opened"); String subject = "Email Notification from Arduino"; String textMsg = "This is an email sent from Arduino.\n"; textMsg += "Your door is opened"; gmail_send(subject, textMsg); } else if (prev_door_state == HIGH && door_state == LOW) { // state change: HIGH -> LOW Serial.println("The door is closed"); } } 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("Arduino"); 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.println("Connection error: "); Serial.print("- Status Code: "); Serial.println(smtp.statusCode()); Serial.print("- Error Code: "); Serial.println(smtp.errorCode()); Serial.print("- Reason: "); Serial.println(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.println("Connection error: "); Serial.print("- Status Code: "); Serial.println(smtp.statusCode()); Serial.print("- Error Code: "); Serial.println(smtp.errorCode()); Serial.print("- Reason: "); Serial.println(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()) { for (size_t i = 0; i < smtp.sendingResult.size(); i++) { // get the result item SMTP_Result result = smtp.sendingResult.getItem(i); Serial.print("Status: "); if (result.completed) Serial.println("success"); else Serial.println("failed"); Serial.print("Recipient: "); Serial.println(result.recipients.c_str()); Serial.print("Subject: "); Serial.println(result.subject.c_str()); } Serial.println("----------------\n"); // free the memory smtp.sendingResult.clear(); } }

Quick Steps

  • Als dit de eerste keer is dat u de Arduino Uno R4 gebruikt, bekijk dan hoe u de omgeving instelt voor Arduino Uno R4 in Arduino IDE.
  • Bevestig de deursensor op uw deur.
  • Verbind de Arduino met de deursensor.
  • Sluit de Arduino via een micro USB-kabel aan op uw computer.
  • Start de Arduino IDE op uw computer.
  • Selecteer het juiste Arduino-bord (Arduino Uno R4 WiFi) en de juiste COM-poort.
  • Klik in de Arduino IDE op het "Library Manager"-icoon in het linkermenu om deze te openen.
  • Typ ESP Mail Client in de zoekbalk en zoek naar ESP Mail Client door Mobizt.
  • Druk op de Installeren-knop om de ESP Mail Client-bibliotheek toe te voegen.
Arduino ESP Mail Client library
  • Kopieer de meegeleverde code en open deze met Arduino IDE.
  • Werk uw WiFi-gegevens bij in de code. Pas de waarden van WIFI_SSID en WIFI_PASSWORD aan naar uw eigen netwerknaam en wachtwoord.
  • Pas het e-mailadres van de afzender en het wachtwoord aan in de code. Wijzig SENDER_EMAIL en SENDER_PASSWORD.

※ Notiz:

Zorg dat het e-mailadres van de afzender een Gmail-adres is. Gebruik het App-wachtwoord van de vorige stap als het wachtwoord van de afzender. Het e-mailadres van de ontvanger kan elk type e-mail zijn.

  • Druk op de Uploaden-knop in de Arduino IDE om de code naar de Arduino te uploaden.
  • Open de Seriële Monitor.
  • Open de deur.
  • Bekijk de resultaten op de Seriële Monitor.
COM6
Send
The door is opened #### 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 ----------------
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Controleer de inbox van de ontvanger. U ontvangt een e-mail vergelijkbaar met het volgende:
Arduino door sensor email

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

Bekijk onze video-tutorial voor een visuele begeleiding bij dit project! De video biedt extra inzichten, duidelijkere uitleg en helpt u obstakels te overwinnen terwijl u leert hoe u een Arduino koppelt aan een deursensor en e-mailmelding verstuurt.

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!