Arduino - Protege tus pertenencias: Detecta robos y envía alertas por correo electrónico

En esta guía, te mostraremos cómo proteger tus pertenencias usando un Arduino y un sensor de fuerza. Los pasos incluyen cómo configurar un sistema que te avise por correo electrónico si alguien intenta tomar tus pertenencias. Explicaremos cómo configurar el Arduino, conectar el sensor de fuerza y programarlo para enviar alertas por correo electrónico a través de Gmail. Aprenderás a hacer todo paso a paso y verás cómo puede ser útil en situaciones reales.

Notificación por correo electrónico de detección de robo con Arduino

Acerca del Sensor de Fuerza y Gmail

Ofrecemos tutoriales detallados sobre sensores de fuerza y Gmail. Cada guía ofrece detalles exhaustivos e instrucciones paso a paso sobre la configuración de hardware, cómo funciona y cómo conectar los cables a Arduino, incluyendo programación para Arduino. Para obtener más información, visita estos enlaces:

Cómo funciona el sistema de detección de robos

El sensor de fuerza verifica el peso de un objeto cuando lo colocas en el sensor. Cuando lo colocas sobre él, el Arduino registra su peso. Si se retira el objeto, el peso cambia. El Arduino detecta este cambio y te envía un correo electrónico para informarte de que tu objeto ha sido movido.

Diagrama de cableado entre el sensor de fuerza y Arduino

Diagrama de cableado del sensor de fuerza Arduino

This image is created using Fritzing. Click to enlarge image

Código de Arduino

/* * Este código de Arduino fue desarrollado por es.newbiely.com * Este código de Arduino se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/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(); } }

Pasos R\u00e1pidos

  • Si es la primera vez que usas Arduino Uno R4, consulta cómo configurar el entorno para Arduino Uno R4 en Arduino IDE.
  • Conecta la placa Arduino al sensor de fuerza.
  • Coloca tus objetos sobre el sensor de fuerza.
  • Conecta la placa Arduino a tu computadora usando un cable USB.
  • Abre el Arduino IDE en tu computadora.
  • Selecciona la placa Arduino correcta (Arduino Uno R4 WiFi) y el puerto COM.
  • Abre el Administrador de bibliotecas haciendo clic en el icono Administrador de bibliotecas en el lado izquierdo del IDE de Arduino.
  • Busca ESP Mail Client y selecciona la que es de Mobizt.
  • Presiona el botón Instalar para agregar la biblioteca ESP Mail Client.
Biblioteca de cliente de correo ESP para Arduino
  • Copie el código y ábralo con el IDE de Arduino.
  • Actualice los detalles de su WiFi (nombre y contraseña) en el código editando WIFI_SSID y WIFI_PASSWORD.
  • Actualice el correo electrónico y la contraseña del remitente en el código editando SENDER_EMAIL y SENDER_PASSWORD.
  • Cambie el correo electrónico del destinatario en el código editando RECIPIENT_EMAIL. El correo electrónico del destinatario puede ser el mismo que el del remitente.

※ Nota:

  • La dirección de correo electrónico del remitente debe ser una cuenta de Gmail.
  • La contraseña del remitente debe ser la contraseña de la aplicación que obtuviste en el paso anterior.
  • La dirección de correo electrónico del destinatario puede ser de cualquier proveedor de correo.
  • Haz clic en el botón Subir en el IDE de Arduino para enviar código al Arduino.
  • Abre el Monitor Serial.
  • Elimina elementos del sensor de fuerza.
  • Observa los resultados en el Monitor Serial.
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  
  • Revisa la bandeja de entrada del correo de tu destinatario. Recibirás un correo como este:
Correo electrónico de detección de robos de Arduino.

Video Tutorial

Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!