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

Enviando Notificações por Email com Arduino

No mundo da automação e da Internet das Coisas (IoT), a capacidade de enviar notificações por email é uma funcionalidade extremamente útil. Imagine ser notificado por email quando a temperatura de um ambiente ultrapassa um determinado limite ou quando há uma intrusão em sua casa. Este artigo aborda como configurar um sistema de notificações por email utilizando a plataforma Arduino, proporcionando ao leitor uma ferramenta poderosa para monitoramento e alertas em tempo real. Vamos ajustar o ambiente Arduino para trabalhar com um módulo Wi-Fi, como o ESP8266, que permitirá a conexão à internet e o envio de emails.

Projeto: Neste projeto, vamos criar um sistema de monitoramento de temperatura que envia uma notificação por email quando a temperatura ultrapassa um valor predefinido. Utilizaremos um sensor de temperatura DHT11 e um módulo Wi-Fi ESP8266 para conectar o Arduino à internet. O objetivo é aprender a configurar o hardware e o software necessários para enviar emails automaticamente com base em leituras de sensores.

Lista de componentes:

  • 1 x Arduino Uno
  • 1 x Módulo Wi-Fi ESP8266
  • 1 x Sensor de Temperatura e Umidade DHT11
  • 1 x Protoboard
  • Jumpers (fios de conexão)
  • 1 x Resistor de 10kΩ

Exemplos:

#include <ESP8266WiFi.h>
#include <DHT.h>

// Definições do sensor DHT11
#define DHTPIN 2     // Pino digital onde o DHT11 está conectado
#define DHTTYPE DHT11   // Definindo o tipo de sensor DHT

DHT dht(DHTPIN, DHTTYPE);

// Definições da rede Wi-Fi
const char* ssid = "SEU_SSID";
const char* password = "SUA_SENHA";

// Definições do servidor SMTP
const char* smtp_server = "smtp.gmail.com";
const int smtp_port = 587;
const char* smtp_user = "seu_email@gmail.com";
const char* smtp_pass = "sua_senha";

// Função para enviar email
void sendEmail(String subject, String body) {
  WiFiClient client;
  if (!client.connect(smtp_server, smtp_port)) {
    Serial.println("Conexão ao servidor SMTP falhou");
    return;
  }

  client.println("EHLO smtp.gmail.com");
  client.println("AUTH LOGIN");
  client.println(base64::encode(smtp_user));
  client.println(base64::encode(smtp_pass));
  client.println("MAIL FROM:<" + String(smtp_user) + ">");
  client.println("RCPT TO:<destinatario@gmail.com>");
  client.println("DATA");
  client.println("Subject: " + subject);
  client.println(body);
  client.println(".");
  client.println("QUIT");
  client.stop();
}

void setup() {
  Serial.begin(115200);
  dht.begin();

  // Conectando ao Wi-Fi
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("Conectado ao WiFi");
}

void loop() {
  float h = dht.readHumidity();
  float t = dht.readTemperature();

  if (isnan(h) || isnan(t)) {
    Serial.println("Falha ao ler do sensor DHT");
    return;
  }

  Serial.print("Umidade: ");
  Serial.print(h);
  Serial.print(" %\t");
  Serial.print("Temperatura: ");
  Serial.print(t);
  Serial.println(" *C");

  if (t > 30) { // Limite de temperatura para enviar email
    sendEmail("Alerta de Temperatura", "A temperatura ultrapassou 30 graus Celsius!");
  }

  delay(60000); // Espera 1 minuto antes de ler novamente
}

No código acima, configuramos o sensor DHT11 para ler a temperatura e a umidade. Se a temperatura ultrapassar 30 graus Celsius, um email de alerta é enviado usando o servidor SMTP do Gmail. É necessário substituir as credenciais de rede e de email pelas suas próprias.

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.