Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade

Notificações por Email com Arduino

As notificações por email são uma funcionalidade poderosa que pode ser integrada em projetos de Arduino para alertar os usuários sobre eventos específicos, como a ativação de sensores ou mudanças no ambiente. Isso é particularmente útil em sistemas de automação residencial, monitoramento remoto e projetos de segurança. Este artigo aborda como configurar um sistema de notificações por email usando um Arduino e um módulo Wi-Fi ESP8266.

Project: Neste projeto, criaremos um sistema que envia notificações por email quando um sensor de movimento (PIR) detecta movimento. O objetivo é demonstrar como integrar a funcionalidade de envio de emails em um projeto de Arduino, utilizando o módulo Wi-Fi ESP8266 para se conectar à internet e um serviço de email SMTP para enviar as notificações.

Components List:

  1. Arduino Uno - 1 unidade
  2. Módulo Wi-Fi ESP8266 - 1 unidade
  3. Sensor de Movimento PIR - 1 unidade
  4. Protoboard - 1 unidade
  5. Jumpers - vários

Examples:

#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>

// Defina as credenciais da rede Wi-Fi
const char* ssid = "SEU_SSID";
const char* password = "SUA_SENHA";

// Defina as credenciais do email
const char* smtpServer = "smtp.example.com";
const int smtpPort = 587;
const char* emailUser = "seuemail@example.com";
const char* emailPassword = "suasenha";
const char* recipient = "destinatario@example.com";

// Defina o pino do sensor PIR
const int pirPin = 2;

void setup() {
  Serial.begin(115200);
  pinMode(pirPin, INPUT);

  // Conecte-se à rede Wi-Fi
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Conectando ao Wi-Fi...");
  }
  Serial.println("Conectado ao Wi-Fi");
}

void loop() {
  int pirState = digitalRead(pirPin);

  if (pirState == HIGH) {
    sendEmail();
    delay(10000); // Aguarde 10 segundos para evitar múltiplos emails
  }
}

void sendEmail() {
  if (WiFi.status() == WL_CONNECTED) {
    HTTPClient http;

    String url = String("http://") + smtpServer + ":" + smtpPort + "/send";
    http.begin(url);

    http.addHeader("Content-Type", "application/x-www-form-urlencoded");

    String postData = "user=" + String(emailUser) + "&pass=" + String(emailPassword) + "&to=" + String(recipient) + "&subject=Alerta de Movimento&body=Movimento detectado pelo sensor PIR.";

    int httpResponseCode = http.POST(postData);

    if (httpResponseCode > 0) {
      String response = http.getString();
      Serial.println(httpResponseCode);
      Serial.println(response);
    } else {
      Serial.print("Erro ao enviar o email: ");
      Serial.println(httpResponseCode);
    }

    http.end();
  } else {
    Serial.println("Erro na conexão Wi-Fi");
  }
}

Explicação do código:

  1. Inclusão de Bibliotecas: As bibliotecas ESP8266WiFi e ESP8266HTTPClient são usadas para gerenciar a conexão Wi-Fi e realizar solicitações HTTP.
  2. Credenciais de Rede e Email: Defina as credenciais da rede Wi-Fi e do serviço de email SMTP.
  3. Configuração do Sensor PIR: O pino do sensor PIR é configurado como entrada.
  4. Conexão Wi-Fi: O Arduino tenta se conectar à rede Wi-Fi especificada.
  5. Loop Principal: Verifica o estado do sensor PIR e, se movimento for detectado, chama a função sendEmail().
  6. Função sendEmail(): Constrói a solicitação HTTP para enviar o email e trata a resposta do servidor SMTP.

To share Download PDF

Gostou do artigo? Deixe sua avaliação!
Sua opinião é muito importante para nós. Clique em um dos botões abaixo para nos dizer o que achou deste conteúdo.