Arduino - Beveilig uw eigendommen: diefstal detecteren en e-mailwaarschuwingen versturen

In deze gids tonen we u hoe u uw spullen beschermt met een Arduino en een krachtensensor. We leggen uit hoe u een systeem opzet dat u via e-mail waarschuwt als iemand probeert uw eigendommen te pakken. U leert hoe u de Arduino installeert, de krachtensensor aansluit en programmeert om e-mailalerts te versturen via Gmail. Alles wordt stap voor stap uitgelegd en u ziet hoe dit in de praktijk handig kan zijn.

Arduino Theft detection Email Notification

Over de Krachtensensor en Gmail

We bieden uitgebreide tutorials over Krachtensensoren en Gmail. Elke handleiding bevat gedetailleerde instructies stap voor stap over het aansluiten van hardware, de werking, en hoe u de draden op de Arduino aansluit, inclusief de Arduino code. Voor meer informatie, zie deze links:

Hoe het diefstaldetectiesysteem werkt

De krachtensensor meet het gewicht van een object wanneer u het erop plaatst. Zodra uw eigendom op de sensor ligt, registreert de Arduino dit gewicht. Als het object wordt verwijderd, verandert het gewicht. De Arduino detecteert deze verandering en stuurt u een e-mail om te melden dat uw eigendom is verplaatst.

Aansluitschema tussen Krachtensensor en Arduino

Arduino Force 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-secure-your-belongings-detect-theft-and-send-email-alerts */ #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 FORCE_SENSOR_PIN A0 // Arduino pin connected to the FSR and 10K pulldown #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 Arduino 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 Arduino"; String textMsg = "This is an email sent from Arduino.\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("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(); } }

Snelle stappen

  • Als u voor het eerst werkt met Arduino Uno R4, bekijk dan hoe u de omgeving instelt voor Arduino Uno R4 in Arduino IDE.
  • Verbind de Arduino met de krachtensensor.
  • Plaats uw spullen op de krachtensensor.
  • Sluit de Arduino aan op uw computer met een USB-kabel.
  • Start de Arduino IDE op uw computer.
  • Kies de juiste Arduino board (Arduino Uno R4 WiFi) en COM-poort.
  • Open de Library Manager door te klikken op het Library Manager icoon links in de Arduino IDE.
  • Zoek op ESP Mail Client en kies de versie van Mobizt.
  • Druk op de knop Install om de ESP Mail Client bibliotheek toe te voegen.
Arduino ESP Mail Client library
  • Kopieer de code en open deze met de Arduino IDE.
  • Pas in de code de WiFi-gegevens aan (naam en wachtwoord) door WIFI_SSID en WIFI_PASSWORD te wijzigen.
  • Werk het e-mailadres en wachtwoord van de afzender bij in de code door SENDER_EMAIL en SENDER_PASSWORD te bewerken.
  • Pas het e-mailadres van de ontvanger aan in de code door RECIPIENT_EMAIL te bewerken. Het e-mailadres van de ontvanger kan gelijk zijn aan dat van de afzender.

※ Notiz:

  • Het e-mailadres van de afzender moet een Gmail-account zijn.
  • Het wachtwoord van de afzender moet het App-wachtwoord zijn dat u in een eerdere stap hebt aangemaakt.
  • Het e-mailadres van de ontvanger kan van elke provider zijn.
  • Klik op de knop Upload in de Arduino IDE om de code naar de Arduino te verzenden.
  • Open de Seriële Monitor.
  • Verwijder spullen van de krachtensensor.
  • Bekijk de resultaten op de Seriële 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 Arduino ----------------
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Kijk in de inbox van de ontvanger. U ontvangt een e-mail zoals deze:
Arduino theft detection 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 in het aansluiten van de krachtensensor en het programmeren van de Arduino om e-mailalerts te versturen.

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