Arduino - Bewegingssensor E-mailmelding

In deze gids laten we u zien hoe u een Arduino en een bewegingssensor gebruikt om e-mails te sturen zodra iemand zonder toestemming uw kamer binnenkomt. We behandelen het opzetten van de hardware, wat u nodig heeft, en gedetailleerde instructies voor het verbinden van een Arduino en bewegingssensor met een e-mailsysteem. Verbeter uw thuisbeveiliging door directe e-mailmeldingen te ontvangen via Arduino.

Arduino bewegingssensor e-mailmelding

Over Bewegingssensor en Gmail

We bieden gedetailleerde handleidingen over de Bewegingssensor en Gmail. Elke gids bevat complete informatie en eenvoudig te volgen stappen over de hardware-setup, werking en het verbinden en programmeren met Arduino. Meer informatie vindt u via de volgende links:

Aansluitschema tussen Bewegingssensor en Arduino

Arduino Bewegingssensor Aansluitschema

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-motion-sensor-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 MOTION_SENSOR_PIN 2 // Arduino pin connected to motion sensor's pin int motion_state; // current state of motion sensor int prev_motion_state; // previous state of motion 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(MOTION_SENSOR_PIN, INPUT); motion_state = digitalRead(MOTION_SENSOR_PIN); // read state } void loop() { prev_motion_state = motion_state; // save the last state motion_state = digitalRead(MOTION_SENSOR_PIN); // read new state if (prev_motion_state == LOW && motion_state == HIGH) { // state change: LOW -> HIGH Serial.println("Motion detected! Someone is in your room!"); String subject = "Email Notification from ESP32"; String textMsg = "This is an email sent from ESP32.\n"; textMsg += "Motion detected! Someone is in your room!"; 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("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 server if (!smtp.connect(&config)) { Serial.println("Connection error"); 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(); } }

Snelle Stappen

  • Gebruikt u Arduino voor het eerst? Leer hoe u het instelt met de Arduino IDE hier: Hoe u de omgeving voor Arduino instelt in Arduino IDE.
  • Sluit de Arduino aan op de bewegingssensor.
  • Verbind de Arduino met uw computer via een micro USB-kabel.
  • Start de Arduino IDE op uw computer.
  • Kies het juiste Arduino board, bijvoorbeeld Arduino Dev Module, en selecteer de bijbehorende COM-poort.
  • Open de Library Manager door te klikken op het Library Manager icoon aan de linkerzijde van de Arduino IDE.
  • Zoek naar "ESP Mail Client" en selecteer de versie van Mobizt.
  • Klik op de Install-knop om de ESP Mail Client bibliotheek toe te voegen.
Arduino ESP Mail Client bibliotheek
  • Kopieer de meegeleverde code en open deze in de Arduino IDE.
  • Pas in de code de WiFi-gegevens aan door WIFI_SSID en WIFI_PASSWORD te wijzigen naar uw netwerkinformatie.
  • Wijzig in de code het verzendadres en wachtwoord door SENDER_EMAIL en SENDER_PASSWORD aan te passen met uw e-mailgegevens.
  • Wijzig het ontvangstadres door RECIPIENT_EMAIL aan te passen met het e-mailadres waar u de berichten naartoe wilt sturen. Dit kan hetzelfde e-mailadres zijn als van de verzender.

※ Notiz:

  • Het e-mailadres dat u gebruikt voor het verzenden moet een Gmail-adres zijn.
  • Gebruik het app-wachtwoord dat u in de vorige stap heeft ontvangen als wachtwoord van de afzender.
  • Het e-mailadres waar u naartoe stuurt, kan elk e-mailadres zijn.
  • Druk op de Upload knop in de Arduino IDE om de code naar de Arduino te sturen.
  • Open de Seriële Monitor.
  • Beweeg voor de bewegingssensor.
  • Bekijk de Seriële Monitor om de resultaten te zien.
COM6
Send
Motion detected! Someone is in your room! #### 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  
  • Kijk in de inbox van het e-mailadres waar u het naar gestuurd heeft. Ze ontvangen een e-mail vergelijkbaar met de volgende:
Arduino bewegingssensor e-mail

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 en helpt u elke stap beter te begrijpen.

※ 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!