Arduino - Sécurisez vos affaires : détectez les vols et envoyez des alertes par e-mail

Dans ce guide, nous vous montrerons comment protéger vos objets en utilisant un Arduino et un capteur de force. Les étapes incluent la mise en place d'un système qui vous informe par email si quelqu'un essaie de prendre vos affaires. Nous expliquerons comment configurer l'Arduino, connecter le capteur de force et le programmer pour envoyer des alertes par email via Gmail. Vous apprendrez à tout faire étape par étape et verrez comment cela peut être utile dans des situations réelles.

Notification par e-mail de détection de vol Arduino

Préparation du matériel

1×Arduino UNO R4 WiFi
1×USB Cable Type-C
1×Force Sensor
1×10 kΩ resistor
1×Breadboard
1×Jumper Wires
1×(Optional) DC Power Jack
1×(Recommended) Screw Terminal Block Shield for Arduino UNO R4
1×(Recommended) Breadboard Shield For Arduino UNO R4
1×(Recommended) Enclosure For Arduino UNO R4
1×(Recommended) Power Splitter For Arduino UNO R4

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos du capteur de force et de Gmail

Nous proposons des tutoriels détaillés sur les capteurs de force et Gmail. Chaque guide fournit des détails complets et des instructions étape par étape sur la configuration matérielle, son fonctionnement et la connexion des fils à l'Arduino, y compris le codage pour Arduino. Pour plus d'informations, visitez ces liens :

Comment fonctionne le système de détection de vol

Le capteur de force vérifie le poids d'un objet lorsque vous le placez sur le capteur. Lorsque vous placez votre objet dessus, l'Arduino enregistre son poids. Si l'objet est retiré, le poids change. L'Arduino remarque ce changement et vous envoie un email pour vous informer que votre objet a été déplacé.

Schéma de câblage entre le capteur de force et l'Arduino

Diagramme de câblage du capteur de force Arduino

This image is created using Fritzing. Click to enlarge image

Code Arduino

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/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(); } }

Étapes rapides

  • Si c'est la première fois que vous utilisez l'Arduino Uno R4, consultez Comment démarrer avec Arduino Uno R4..
  • Connectez la carte Arduino au capteur de force.
  • Placez vos articles sur le capteur de force.
  • Connectez la carte Arduino à votre ordinateur à l'aide d'un câble USB.
  • Lancez Arduino IDE sur votre ordinateur.
  • Sélectionnez la carte Arduino appropriée (Arduino Uno R4 WiFi) et le port COM.
  • Ouvrez le Gestionnaire de Bibliothèques en cliquant sur l'icône Gestionnaire de Bibliothèques sur le côté gauche de l'Arduino IDE.
  • Recherchez ESP Mail Client et sélectionnez celui réalisé par Mobizt.
  • Appuyez sur le bouton Install pour ajouter la bibliothèque ESP Mail Client.
Bibliothèque Arduino ESP Mail Client
  • Copiez le code et ouvrez-le avec l'IDE Arduino.
  • Mettez à jour vos informations WiFi (nom et mot de passe) dans le code en modifiant WIFI_SSID et WIFI_PASSWORD.
  • Mettez à jour l'e-mail et le mot de passe de l'expéditeur dans le code en modifiant SENDER_EMAIL et SENDER_PASSWORD.
  • Changez l'e-mail du destinataire dans le code en modifiant RECIPIENT_EMAIL. L'e-mail du destinataire peut être le même que celui de l'expéditeur.

※ Note:

  • L'adresse e-mail de l'expéditeur doit être un compte Gmail.
  • Le mot de passe de l'expéditeur doit être le mot de passe d'application que vous avez obtenu à l'étape précédente.
  • L'adresse e-mail du destinataire peut provenir de n'importe quel fournisseur de messagerie.
  • Cliquez sur le bouton Upload dans l'IDE Arduino pour envoyer le code à l'Arduino.
  • Ouvrez le Moniteur Série.
  • Retirez les objets du capteur de force.
  • Regardez les résultats sur le Moniteur Série.
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  
  • Consultez la boîte de réception de votre destinataire. Vous recevrez un e-mail comme celui-ci :
Arduino détection de vol email

Vidéo

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!