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

Neste guia, vamos ensinar como manter seus itens seguros usando um Arduino Nano ESP32 e um sensor de força. Vamos mostrar os passos para montar um sistema que envia um e-mail para você se alguém tentar mover seus pertences. Você vai aprender a preparar o Arduino Nano ESP32, conectar o nó de força e configurá-lo para enviar e-mails para você pelo Gmail. Vamos fornecer instruções detalhadas e mostrar como esse sistema pode ser útil.

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

Hardware Necessário

1×Arduino Nano ESP32
1×Cabo USB Tipo-A para Tipo-C (para PC com USB-A)
1×Cabo USB Tipo-C para Tipo-C (para PC com USB-C)
1×Sensor de Força
1×10 kΩ Resistor
1×Protoboard
1×Fios Jumper
1×(Opcional) Conector de Alimentação DC
1×(Recomendado) Placa de Expansão com Bornes de Parafuso para Arduino Nano
1×(Recomendado) Placa de Expansão Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentação para Arduino Nano ESP32

Or you can buy the following kits:

1×DIYables Sensor Kit (18 sensors/displays)
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.

Sobre o Sensor de Força e o Gmail

Oferecemos guias detalhados sobre Sensores de Força e Gmail. Cada tutorial traz instruções passo a passo para configurar o hardware, entender como ele funciona e ligar os fios ao Arduino Nano ESP32, incluindo como programar o Arduino Nano ESP32. Para mais detalhes, visite estes links:

Como funciona o sistema de detecção de furto

O sensor de força mede o peso de um item colocado sobre ele. Quando você coloca seu item no sensor, o Arduino Nano ESP32 registra o peso. Se o item for retirado, o peso vai mudar. O Arduino Nano ESP32 detecta 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 Nano ESP32

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

This image is created using Fritzing. Click to enlarge image

Código Arduino Nano ESP32

/* * Este código de Arduino Nano ESP32 foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano ESP32 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-secure-your-belongings-detect-theft-and-send-email-alerts */ #include <WiFi.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 // The Arduino Nano ESP32 pin A0 are connected to the FSR with 10K pulldown resistor #define THRESHOLD 100 // may need to callibrate this value SMTPSession smtp; void setup() { Serial.begin(9600); // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); 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 ESP32 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 ESP32"; String textMsg = "This is an email sent from ESP32.\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("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.printf("Connection error, Status Code: %d, Error Code: %d, Reason: %s\n", smtp.statusCode(), smtp.errorCode(), 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.printf("Error, Status Code: %d, Error Code: %d, Reason: %s\n", smtp.statusCode(), smtp.errorCode(), 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()) { Serial.println("----------------"); Serial.printf("Email sent success: %d\n", status.completedCount()); Serial.printf("Email sent failed: %d\n", status.failedCount()); Serial.println("----------------\n"); for (size_t i = 0; i < smtp.sendingResult.size(); i++) { // get the result item SMTP_Result result = smtp.sendingResult.getItem(i); Serial.printf("Message No: %d\n", i + 1); Serial.printf("Status: %s\n", result.completed ? "success" : "failed"); Serial.printf("Date/Time: %s\n", MailClient.Time.getDateTimeString(result.timestamp, "%B %d, %Y %H:%M:%S").c_str()); Serial.printf("Recipient: %s\n", result.recipients.c_str()); Serial.printf("Subject: %s\n", result.subject.c_str()); } Serial.println("----------------\n"); // free the memory smtp.sendingResult.clear(); } }

Passos Rápidos

Para começar com o Arduino Nano ESP32, siga estes passos:

  • Se você é novo no Arduino Nano ESP32, consulte o tutorial sobre como configurar o ambiente para o Arduino Nano ESP32 na Arduino IDE.
  • Conecte a placa Arduino Nano ESP32 ao sensor de força de acordo com o diagrama fornecido.
  • Conecte a placa Arduino Nano ESP32 ao seu computador usando um cabo USB.
  • Abra a Arduino IDE no seu computador.
  • Selecione a placa Arduino Nano ESP32 e a porta COM correspondente.
  • Coloque seus itens sobre o sensor de força.
  • Abra o Library Manager clicando no ícone Library Manager no lado esquerdo da Arduino IDE.
  • Pesquise por ESP Mail Client e escolha a biblioteca de Mobizt.
  • Clique no botão Install para adicionar a biblioteca ESP Mail Client.
Biblioteca ESP Mail Client para Arduino Nano ESP32
  • Copie o código e abra-o usando a Arduino IDE.
  • Insira os dados do seu WiFi (nome e senha) no código, alterando WIFI_SSID e WIFI_PASSWORD.
  • Insira no código o e-mail e a senha de quem envia o e-mail, alterando SENDER_EMAIL e SENDER_PASSWORD.
  • Insira no código o endereço de e-mail de quem recebe o e-mail, alterando RECIPIENT_EMAIL. Esse e-mail pode ser o mesmo do remetente.

※ Nota:

  • O endereço de e-mail do remetente precisa ser uma conta do Gmail.
  • Use a senha de app que você obteve anteriormente como a senha do remetente.
  • Qualquer provedor de e-mail pode ser usado para o endereço de e-mail do destinatário.
  • Pressione o botão Upload na Arduino IDE para transferir o código para o Arduino Nano ESP32.
  • Abra o Serial Monitor.
  • Retire os itens do sensor de força.
  • Verifique os resultados no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano ESP32
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' 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 Nano ESP32 ----------------
Ln 11, Col 1
Arduino Nano ESP32 on COM15
2
  • Verifique a caixa de entrada de e-mail da pessoa para quem você está enviando. Ela receberá um e-mail parecido com este:
E-mail de detecção de furto do Arduino Nano ESP32

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!