Arduino UNO R4 - E-mail
Este tutorial ensina você a programar o Arduino UNO R4 para enviar um e-mail a partir da sua conta do Gmail.

Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables STEM V4 IoT Starter Kit (Arduino included) | |
| 1 | × | DIYables STEM V4B IoT Starter Kit (Arduino included) | |
| 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.
Pré-Preparação
Para usar o código, você precisa de uma conta do Gmail e de uma senha especial. Aqui estão os detalhes principais para lembrar:
- Crie uma nova conta do Gmail somente para testes. Não use sua conta pessoal, para proteger sua conta contra problemas de segurança.
- A senha no código do Arduino UNO R4 não é a mesma que a senha de login do seu Gmail. Você precisa gerar uma "Senha de app" na sua Conta do Google.
Você pode gerar uma "Senha de app" na sua Conta do Google seguindo os passos abaixo:
- Crie uma nova conta do Gmail.
- Entre na conta que você acabou de criar.
- Acesse sua Conta do Google.
- Navegue até a área "Segurança".

- Ative a Verificação em duas etapas (é necessário ativar a Verificação em duas etapas para criar senhas de app).
- Visite a página Senhas de app do Google e crie uma senha de app. Você pode dar o nome que quiser.

- Clique no botão Criar para receber uma senha de 16 dígitos exibida assim:

- Guarde e salve este número de 16 dígitos. Você vai precisar dele para o código do Arduino UNO R4 no próximo passo.
※ Nota:
A interface do Google pode ser atualizada. Se você não encontrar "Senhas de app" como descrito, pesquise na internet por "Como obter senhas de app do Google" para achar as instruções mais recentes.
Código Arduino UNO R4
/*
* Este código de Arduino UNO R4 foi desenvolvido por pt.newbiely.com
* Este código de Arduino UNO R4 é disponibilizado ao público sem nenhuma restrição.
* Para tutoriais completos e diagramas de ligação, visite:
* https://pt.newbiely.com/tutorials/arduino-uno-r4/arduino-uno-r4-email
*/
#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
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();
String subject = "Email Notification from Arduino";
String textMsg = "This is an email sent from Arduino.\n";
textMsg += "Sensor value: ";
textMsg += "15"; // OR replace this value read from a sensor
gmail_send(subject, textMsg);
}
void loop() {
// YOUR OTHER CODE HERE
}
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
Siga estas instruções passo a passo:
- Se esta é a sua primeira vez usando o Arduino Uno R4 WiFi/Minima, consulte o tutorial sobre como configurar o ambiente para o Arduino Uno R4 WiFi/Minima no Arduino IDE.
- Conecte a placa Arduino Uno R4 ao seu computador usando um cabo USB.
- Abra o Arduino IDE no seu computador.
- Escolha a placa Arduino UNO R4 correta (Arduino UNO R4 R4 WiFi) e a porta COM.
- Abra o Library Manager clicando no ícone Library Manager no lado esquerdo da tela do Arduino IDE.
- Pesquise por ESP Mail Client para encontrar o ESP Mail Client, de Mobizt.
- Clique no botão Install para adicionar a biblioteca ESP Mail Client.

- Copie o código acima e abra-o no Arduino IDE.
- Atualize o nome e a senha da sua rede WiFi onde está escrito WIFI_SSID e WIFI_PASSWORD.
- Atualize seu e-mail e sua senha nas constantes: SENDER_EMAIL e SENDER_PASSWORD.
- Atualize RECIPIENT_EMAIL com o endereço de e-mail onde você quer receber as mensagens. Pode ser o mesmo e-mail do remetente.
※ Nota:
- O e-mail do remetente deve ser do Gmail.
- Use como senha do remetente a senha de app gerada antes.
- Qualquer tipo de e-mail pode ser o e-mail do destinatário.
- Pressione o botão Upload no Arduino IDE para carregar o código no Arduino UNO R4.
- Abra o Serial Monitor.
- Veja a saída no Serial Monitor.
8
Serial.println("Hello World!");
Message (Enter to send message to 'Arduino Uno R4 WiFi' on 'COM15')
New Line
9600 baud
#### Message sent successfully
> C: message 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
----------------
- Olhe a caixa de entrada do destinatário. Você vai encontrar um e-mail parecido com este:
