Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade
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:
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:
sendEmail()
.sendEmail()
: Constrói a solicitação HTTP para enviar o email e trata a resposta do servidor SMTP.