Olá, bom dia!!!!

Gostaria da ajuda de vocês nesse código, ele faz a verificação da temperatura, consigo acessar via rede o servidor web para acompanhar a temperatura em tempo real mas, quando e para mandar o e-mail ele não manda, fica so mostrando a temperatura no browser.

Exibições: 109

Anexos

As respostas para este tópico estão encerradas.

Respostas a este tópico

Se tudo esta funcionando, e o problema é só de não envio do e-mail, você deveria receber alguma mensagem de erro, por outra parte eu sugiro que verifique junto a seu provedor de e-mail se você precisa habilitar alguma coisa para poder receber e-mail de aplicativos mesnos seguros.

Se tiver conta no Gmail, tente enviar para seu endereço do Gmail, mas antes habilite a permissão para receber e-mail de aplicativos menos seguros desta forma. veja este link: CLIQUE AQUI

Meu canal: CLIQUE AQUI

Abs.

CK

Então Carlos, estou usando o servidor de email da bol e la ta liberada, mas mesmo assim não vai o email.

Teria que testar seu code, mas estou em Brasilia por um tempo sem acesso a minha bancada.

Mas você poderia facilitar as coisas e usar ferramentas de ioT como Blink por exemplo, veja este exemplo.

https://examples.blynk.cc/?board=ESP8266&shield=ESP8266%20WiFi&... 

Abs.

CK

Fala pessaol!!

consegui enviar com parte desse código, porem a ideia seria um server e um client no mesmo arduino, com esse código ele faz o papel de server perfeitamente so que quando vai enviar o email ele fica no enviando... e depois diz que foi enviado só que o email não chega.

#define time 1000
#include <SPI.h>
#include <Ethernet.h>
#include <EthernetClient.h>

byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
};
IPAddress ip(10, 50, 1, 95);
IPAddress myDns(10, 50, 1, 29);
IPAddress gateway(10, 0, 0, 65);
IPAddress subnet(255, 0, 0, 0);
const int LM35 = A0;
float temperatura;
char emaserver[] = { 200, 147, 99, 132 }; //Mailserver
EthernetServer server(8080);
EthernetClient client;

void setup() {
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}


// start the Ethernet connection and the server:
Ethernet.begin(mac, ip, myDns, gateway, subnet);
server.begin();
Serial.print("server is at ");
Serial.println(Ethernet.localIP());
}


void loop() {
temperatura = (float(analogRead(LM35)) * 5 / (1023)) / 0.01;

EthernetClient client = server.available();
if (client) {
Serial.println("new client");

boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);

if (c == '\n' && currentLineIsBlank) {
// send a standard http response header
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close"); // the connection will be closed after completion of the response
client.println("Refresh: 5"); // refresh the page automatically every 5 sec
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.println("<meta http-equiv=\"refresh\" content=\"2\">");
// output the value of each analog input pin
client.println("<head>");
client.println("<title>Medidior de temperatura</title>");
client.println("<head>");
client.println("<body>");
client.println("<h1>Monitoramento de Temperatura</h1>");
client.println("<h2>Temperatura.:</h2>");
client.print(temperatura);
client.print("&deg;"); // Referência do caratere(graus º)
client.println("C");// Exibe o "C"
client.println("</body>");
client.println("</head>");
client.println("</html>");
break;
delay(1000);

}

if (c == '\n') {
// you're starting a new line
currentLineIsBlank = true;
} else if (c != '\r') {
// you've gotten a character on the current line
currentLineIsBlank = false;

}
}
}
// give the web browser time to receive the data
delay(1);
// close the connection:
client.stop();
Serial.println("client disconnected");

}
if (temperatura > 28.00){
envia();

//Serial.println (temperatura);
}

}

void envia()
{
delay(time);
Serial.println("conectando...");
if (client.connect(emaserver,587)) // Porta de conexao do servidor do email.
{
Serial.println("conectado!");
Serial.println("enviando email...");
Serial.println();
client.println( "EHLO localhost" );
recebe();
delay(time);
client.println("AUTH LOGIN");
recebe();
delay(time);
client.println("xxxxxxxxxxxxxxxxxxxxxxxxxx"); // Email de login em base de 64: http://base64-encoder-online.waraxe.us/
recebe();
delay(time);
client.println("xxxxxxxxxxxxxxx"); // Senha do email em base de 64: http://base64-encoder-online.waraxe.us/
recebe();
delay(time);
client.println("mail from: <monitoramento.tempe@bol.com.br>"); //Email remetente
recebe();
delay(time);
client.println("rcpt to: <jefferson.as18@gmail.com>"); // Email destinatário
recebe();
delay(time);
client.println("data");
recebe();
delay(time);
client.println("Subject: Alerta!"); // Assunto
recebe();
delay(time);
client.println("Alerta sua temperatura esta muita alta !!!!!!!!"); // Corpo
recebe();
delay(time);
client.println("."); // Indica fim do email.
recebe();
delay(time);
client.println();
recebe();
delay(time);
Serial.println("email enviado!");
delay(time);
if (client.connected()) // Desconecta pra deixar pronto para novo envio.
{
Serial.println();
Serial.println("desconectando...");
client.stop();
Serial.println();
Serial.println();
}
}
else
{
Serial.println("connection failed");
}
//Serial.println("Ready. Press 'e' to connect.");
}


void recebe()
{
while (client.available())
{
char c = client.read();
Serial.print(c);
}
}

Resolvido o projeto, segue o código.

//******************************************************************************
// INCLUÇÃO DAS BIBLIOTECAS NECESSARIAS
//******************************************************************************

#include <SPI.h>
#include <Ethernet.h>
#include <EthernetClient.h>
#define time 1000

//******************************************************************************
// DECLARAÇÃO E ATRIBUIÇÃO PARA ACESSO A WEB/ SENSORES / LED/SIRENE & VARIÁVEIS
//******************************************************************************

byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
IPAddress ip(10, 50, 1, 95);
IPAddress myDns(8, 8, 8, 8);
IPAddress gateway(10, 0, 0, 65);
IPAddress subnet(255, 0, 0, 0);
byte server[] = {200,147,99,132};
EthernetClient client;
EthernetServer webserver(8080);
const int LM35 = A0;
float temperatura;
const int pinLed1 = 9;
const int pinLed2 = 7;
const int pinSirene = 8;

//*******************************************************************************
// DECLARAÇÃO DOS PINOS LED/BUZ EM OUT & INICIO DE CONEXÃO COM A SERIAL E WEB.
//*******************************************************************************

void setup(){

pinMode(pinLed2,OUTPUT);
pinMode(pinLed1,OUTPUT);

//if(Ethernet.begin(mac) == 0) {
//Serial.println("falha ao configurar Ethernet usando DHCP");
Ethernet.begin(mac, ip, myDns, gateway, subnet);

Serial.begin(9600);
delay(time);
Serial.println("MONITORAMENTO DE TEMPERATURA.");
}

//******************************************************************************
// INICIO DO LOOP DE VERIFICAÇÃO DO SENSOR E CONDIÇÃO DESEJADA
//******************************************************************************

void loop(){

temperatura = (float(analogRead(LM35)) * 5 / (1023)) / 0.01;

if (temperatura > 28.00){
Serial.println(temperatura);
ligarAlarme();
envia();
// delay(6000);
}
else{
Serial.println(temperatura);
desligarAlarme();
// delay(3000);
}


//******************************************************************************
// SERVIDOR WEB E PÁGINA EM HTML
//******************************************************************************

EthernetClient client = webserver.available();
if (client) {
Serial.println("new client");
//an http request ends with a blank line
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);
if (c == '\n' && currentLineIsBlank) {
// ENVIO DE CABEÇALHO DE RESPOSTA HTTP PADÃO
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close");//A CONEXÃO SERÁ FECHADA APÓS RESPOSTA
client.println("Refresh: 2"); // ATUALIZADA A PÁGINA A CADA 2 SEGUNDOS
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html>"); // INICIO A PÁGINA EM HTML
//client.println("<meta http-equiv=\"refresh\" content=\"2\">");//ATUALIZADA
client.println("<head>");
client.println("<title>Medidior de temperatura</title>");
client.println("<head>");
client.println("<body>");
client.println("<h1>Monitoramento de Temperatura</h1>");
client.println("<h2>Temperatura.:</h2>");
client.print(temperatura);// IMPRIMINDO O VALOR DA VARIÁVEL
client.print("&deg;"); // REFERÊNCIA DO CARACTER (GRAUS °)
client.println("C");// EXIBE °"C"
client.println("</body>");
client.println("</head>");
client.println("</html>"); // FIM DO HTML
break;
}

if (c == '\n') {
// VOCÊ ESTÁ COMEÇANDO UMA NOVA LINHA
currentLineIsBlank = true;
} else if (c != '\r') {
currentLineIsBlank = false;

}
}
}
// DANDO TEMPO AO NAVEGADOR PARA RECEBER DADOS
delay(1);
// FECHA A CONEXÃO:
client.stop();
Serial.println("client disconnected");

}
}

//******************************************************************************
// FUNÇÃO DE ENVIO DO EMAIL DE ALERTA
//******************************************************************************

void envia()
{
delay(time);
Serial.println("conectando...");
if (client.connect(server,587)){ // PORTA DE CONEXÃO DO SERVIDOR DE EMAIL.
Serial.println("conectado!");
Serial.println("enviando email...");
Serial.println();
client.println("EHLO localhost");
recebe();
delay(time);
client.println("AUTH LOGIN");
recebe();
delay(time);
client.println("xxxxxxxxxxxxxxxxxxxxx");//EMAIL DE LOG/B 64
recebe();
delay(time);
client.println("xxxxxxxxxxxxxxxxxx"); // SENHA DO EMAIL EM BASE 64
recebe();
delay(time);
client.println("mail from: <monitoramento.tempe@bol.com.br>");//EMAIL REMETENTE
recebe();
delay(time);
client.println("rcpt to: <jefferson.as18@gmail.com>"); // EMAIL DESTINATÁRIO
recebe();
delay(time);
client.println("data");
recebe();
delay(time);
client.println("Subject: Alerta de temperatura!!!!"); // ASSUNTO
recebe();
delay(time);
client.println("Temperatura muito alta"); // CORPO DO EMAIL
recebe();
delay(time);
client.println("."); // INDICA FIM DO EMAIL.
recebe();
delay(time);
client.println();
recebe();
delay(time);
Serial.println("email enviado!");
delay(time);
if (client.connected()) // DESCONECTA PARA DEIXAR PRONTO PARA NOVO ENVIO.
{
// FECHA A CONEXÃO:
Serial.println();
Serial.println("desconectando...");
client.stop();
Serial.println();
Serial.println();
}
}
else
{
Serial.println("connection failed");
}
}
void recebe()
{
while (client.available())
{
char c = client.read();
Serial.print(c);
}
}

//*****************************************************************************
// FUNÇÃO DE ACIONAMENTO E DESLIGAMENTO LED/SIRENE
//*****************************************************************************

void ligarAlarme() {
//LIGANDO LED VERMELHO E SIRENE DESLIGANDO LED VERD
tone(pinSirene,1500);
digitalWrite(pinLed2, HIGH);//led vermelho
digitalWrite(pinLed1, LOW); // led verde

}

void desligarAlarme() {
//DESLIGANDO O LED VERMELHO E SIRENE LIGA LED VERDE
digitalWrite(pinLed1, HIGH); // led verde
digitalWrite(pinLed2, LOW);
noTone(pinSirene);
}

RSS

Destaques

Registre-se no
Lab de Garagem
Clicando aqui

Convide um
amigo para fazer
parte

curso gratis de arduino

© 2018   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço