Arduino - Proteja Seus Pertences: Detecte Furtos e Envie Alertas por E-mail

Neste guia, vamos mostrar como proteger seus itens usando um Arduino e um sensor de força. Os passos incluem como montar um sistema que avisa você por e-mail se alguém tentar pegar seus pertences. Vamos explicar como configurar o Arduino, conectar o sensor de força e programá-lo para enviar alertas por e-mail pelo Gmail. Você vai aprender a fazer tudo passo a passo e ver como isso pode ser útil em situações reais.

Arduino Notificação por E-mail de Detecção de Furto

Sobre o Sensor de Força e o Gmail

Oferecemos tutoriais detalhados sobre Sensores de Força e Gmail. Cada guia traz informações completas e instruções passo a passo sobre a configuração do hardware, como ele funciona e como ligar os fios ao Arduino, incluindo a programação do Arduino. Para mais informações, acesse estes links:

Como funciona o sistema de detecção de furto

O sensor de força verifica o peso de um item quando você o coloca sobre o sensor. Quando você coloca seu item sobre ele, o Arduino registra o peso. Se o item for removido, o peso muda. O Arduino percebe essa mudança e envia um e-mail para avisar que seu item foi movido.

Diagrama de Ligação entre o Sensor de Força e o Arduino

Diagrama de Ligação do Sensor de Força com Arduino

This image is created using Fritzing. Click to enlarge image

Código Arduino

/* * Este código de Arduino foi desenvolvido por pt.newbiely.com * Este código de Arduino é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.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(); } }

Passos Rápidos

  • Se esta é a primeira vez que você usa o Arduino Uno R4, veja como configurar o ambiente para o Arduino Uno R4 na Arduino IDE.
  • Conecte a placa Arduino ao sensor de força.
  • Coloque seus itens sobre o sensor de força.
  • Conecte a placa Arduino ao seu computador usando um cabo USB.
  • Abra a Arduino IDE no seu computador.
  • Selecione a placa Arduino correta (Arduino Uno R4 WiFi) e a porta COM.
  • Abra o Library Manager clicando no ícone Library Manager no lado esquerdo da Arduino IDE.
  • Procure por ESP Mail Client e selecione o que foi feito pela Mobizt.
  • Pressione o botão Install para adicionar a biblioteca ESP Mail Client.
Biblioteca ESP Mail Client para Arduino
  • Copie o código e abra-o na Arduino IDE.
  • Atualize os dados do seu WiFi (nome e senha) no código, editando WIFI_SSID e WIFI_PASSWORD.
  • Atualize o e-mail e a senha do remetente no código, editando SENDER_EMAIL e SENDER_PASSWORD.
  • Altere o e-mail do destinatário no código, editando RECIPIENT_EMAIL. O e-mail do destinatário pode ser o mesmo do remetente.

※ Nota:

  • O endereço de e-mail do remetente deve ser uma conta do Gmail.
  • A senha do remetente deve ser a Senha de app que você obteve no passo anterior.
  • O endereço de e-mail do destinatário pode ser de qualquer provedor de e-mail.
  • Clique no botão Upload na Arduino IDE para enviar o código para o Arduino.
  • Abra o Serial Monitor.
  • Retire os itens de cima do sensor de força.
  • Veja os resultados no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' on 'COM15')
New Line
9600 baud
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 ----------------
Ln 11, Col 1
Arduino Uno on COM15
2
  • Verifique a caixa de entrada do e-mail do destinatário. Você receberá um e-mail como este:
E-mail de detecção de furto com Arduino

Vídeo

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!