Medidor de temperatura que envia um e-mail de alerta - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)2024-03-28T19:20:53Zhttps://labdegaragem.com/forum/topics/medidor-de-temperatura-que-envia-um-e-mail-de-alerta?commentId=6223006%3AComment%3A675018&x=1&feed=yes&xn_auth=noResolvido o projeto, segue o…tag:labdegaragem.com,2018-06-14:6223006:Comment:6750182018-06-14T17:22:51.961ZJefferson Armando da Silvahttps://labdegaragem.com/profile/JeffersonArmandodaSilva
<p>Resolvido o projeto, segue o código.</p>
<p></p>
<p>//******************************************************************************<br></br>// INCLUÇÃO DAS BIBLIOTECAS NECESSARIAS<br></br>//******************************************************************************</p>
<p>#include <SPI.h><br></br>#include <Ethernet.h><br></br>#include <EthernetClient.h><br></br>#define time 1000<br></br> <br></br>//******************************************************************************<br></br>// DECLARAÇÃO E…</p>
<p>Resolvido o projeto, segue o código.</p>
<p></p>
<p>//******************************************************************************<br/>// INCLUÇÃO DAS BIBLIOTECAS NECESSARIAS<br/>//******************************************************************************</p>
<p>#include <SPI.h><br/>#include <Ethernet.h><br/>#include <EthernetClient.h><br/>#define time 1000<br/> <br/>//******************************************************************************<br/>// DECLARAÇÃO E ATRIBUIÇÃO PARA ACESSO A WEB/ SENSORES / LED/SIRENE & VARIÁVEIS<br/>//******************************************************************************</p>
<p>byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};<br/>IPAddress ip(10, 50, 1, 95);<br/>IPAddress myDns(8, 8, 8, 8);<br/>IPAddress gateway(10, 0, 0, 65);<br/>IPAddress subnet(255, 0, 0, 0);<br/>byte server[] = {200,147,99,132};<br/>EthernetClient client;<br/>EthernetServer webserver(8080);<br/>const int LM35 = A0;<br/>float temperatura; <br/>const int pinLed1 = 9;<br/>const int pinLed2 = 7;<br/>const int pinSirene = 8;</p>
<p>//*******************************************************************************<br/>// DECLARAÇÃO DOS PINOS LED/BUZ EM OUT & INICIO DE CONEXÃO COM A SERIAL E WEB.<br/>//*******************************************************************************</p>
<p>void setup(){</p>
<p>pinMode(pinLed2,OUTPUT);<br/>pinMode(pinLed1,OUTPUT);</p>
<p>//if(Ethernet.begin(mac) == 0) {<br/> //Serial.println("falha ao configurar Ethernet usando DHCP");<br/> Ethernet.begin(mac, ip, myDns, gateway, subnet);</p>
<p>Serial.begin(9600);<br/> delay(time);<br/> Serial.println("MONITORAMENTO DE TEMPERATURA.");<br/>}<br/> <br/>//******************************************************************************<br/>// INICIO DO LOOP DE VERIFICAÇÃO DO SENSOR E CONDIÇÃO DESEJADA <br/>//******************************************************************************</p>
<p>void loop(){<br/> <br/> temperatura = (float(analogRead(LM35)) * 5 / (1023)) / 0.01;<br/> <br/> if (temperatura > 28.00){<br/> Serial.println(temperatura);<br/> ligarAlarme();<br/> envia();<br/> // delay(6000);<br/> }<br/> else{<br/> Serial.println(temperatura);<br/> desligarAlarme();<br/> // delay(3000);<br/> }</p>
<p><br/>//******************************************************************************<br/>// SERVIDOR WEB E PÁGINA EM HTML<br/>//******************************************************************************</p>
<p>EthernetClient client = webserver.available();<br/> if (client) {<br/> Serial.println("new client");<br/>//an http request ends with a blank line<br/> boolean currentLineIsBlank = true;<br/> while (client.connected()) {<br/> if (client.available()) {<br/> char c = client.read();<br/> Serial.write(c);<br/> if (c == '\n' && currentLineIsBlank) {<br/>// ENVIO DE CABEÇALHO DE RESPOSTA HTTP PADÃO<br/> client.println("HTTP/1.1 200 OK");<br/> client.println("Content-Type: text/html");<br/> client.println("Connection: close");//A CONEXÃO SERÁ FECHADA APÓS RESPOSTA<br/> client.println("Refresh: 2"); // ATUALIZADA A PÁGINA A CADA 2 SEGUNDOS<br/> client.println();<br/> client.println("<!DOCTYPE HTML>");<br/> client.println("<html>"); // INICIO A PÁGINA EM HTML<br/> //client.println("<meta http-equiv=\"refresh\" content=\"2\">");//ATUALIZADA <br/> client.println("<head>");<br/> client.println("<title>Medidior de temperatura</title>");<br/> client.println("<head>");<br/> client.println("<body>");<br/> client.println("<h1>Monitoramento de Temperatura</h1>");<br/> client.println("<h2>Temperatura.:</h2>");<br/> client.print(temperatura);// IMPRIMINDO O VALOR DA VARIÁVEL <br/> client.print("&deg;"); // REFERÊNCIA DO CARACTER (GRAUS °)<br/> client.println("C");// EXIBE °"C"<br/> client.println("</body>");<br/> client.println("</head>");<br/> client.println("</html>"); // FIM DO HTML<br/> break;<br/> }<br/> <br/> if (c == '\n') {<br/> // VOCÊ ESTÁ COMEÇANDO UMA NOVA LINHA<br/> currentLineIsBlank = true;<br/> } else if (c != '\r') {<br/> currentLineIsBlank = false;<br/> <br/> }<br/> }<br/> }<br/> // DANDO TEMPO AO NAVEGADOR PARA RECEBER DADOS<br/> delay(1);<br/> // FECHA A CONEXÃO:<br/> client.stop();<br/> Serial.println("client disconnected");<br/> <br/> }<br/>}</p>
<p>//******************************************************************************<br/>// FUNÇÃO DE ENVIO DO EMAIL DE ALERTA<br/>//******************************************************************************</p>
<p>void envia()<br/>{<br/>delay(time);<br/>Serial.println("conectando...");<br/>if (client.connect(server,587)){ // PORTA DE CONEXÃO DO SERVIDOR DE EMAIL.<br/>Serial.println("conectado!");<br/>Serial.println("enviando email...");<br/>Serial.println();<br/>client.println("EHLO localhost");<br/>recebe();<br/>delay(time);<br/>client.println("AUTH LOGIN");<br/>recebe();<br/>delay(time);<br/>client.println("xxxxxxxxxxxxxxxxxxxxx");//EMAIL DE LOG/B 64 <br/>recebe();<br/>delay(time);<br/>client.println("xxxxxxxxxxxxxxxxxx"); // SENHA DO EMAIL EM BASE 64 <br/>recebe();<br/>delay(time);<br/>client.println("mail from: <monitoramento.tempe@bol.com.br>");//EMAIL REMETENTE<br/>recebe();<br/>delay(time);<br/>client.println("rcpt to: <jefferson.as18@gmail.com>"); // EMAIL DESTINATÁRIO<br/>recebe();<br/>delay(time);<br/>client.println("data");<br/>recebe();<br/>delay(time);<br/>client.println("Subject: Alerta de temperatura!!!!"); // ASSUNTO<br/>recebe();<br/>delay(time);<br/>client.println("Temperatura muito alta"); // CORPO DO EMAIL<br/>recebe();<br/>delay(time);<br/>client.println("."); // INDICA FIM DO EMAIL.<br/>recebe();<br/>delay(time);<br/>client.println();<br/>recebe();<br/>delay(time);<br/>Serial.println("email enviado!");<br/>delay(time);<br/>if (client.connected()) // DESCONECTA PARA DEIXAR PRONTO PARA NOVO ENVIO.<br/>{<br/>// FECHA A CONEXÃO: <br/>Serial.println();<br/>Serial.println("desconectando...");<br/>client.stop();<br/>Serial.println();<br/>Serial.println();<br/>}<br/>}<br/>else<br/>{<br/>Serial.println("connection failed");<br/>}<br/>}<br/>void recebe()<br/>{<br/>while (client.available())<br/>{<br/>char c = client.read();<br/>Serial.print(c);<br/>}<br/>}</p>
<p>//*****************************************************************************<br/>// FUNÇÃO DE ACIONAMENTO E DESLIGAMENTO LED/SIRENE<br/>//*****************************************************************************</p>
<p>void ligarAlarme() {<br/> //LIGANDO LED VERMELHO E SIRENE DESLIGANDO LED VERD<br/> tone(pinSirene,1500);<br/> digitalWrite(pinLed2, HIGH);//led vermelho<br/> digitalWrite(pinLed1, LOW); // led verde</p>
<p>}<br/> <br/>void desligarAlarme() {<br/> //DESLIGANDO O LED VERMELHO E SIRENE LIGA LED VERDE<br/> digitalWrite(pinLed1, HIGH); // led verde<br/> digitalWrite(pinLed2, LOW);<br/> noTone(pinSirene);<br/>}</p> Fala pessaol!!
consegui envia…tag:labdegaragem.com,2018-06-11:6223006:Comment:6747212018-06-11T21:17:59.079ZJefferson Armando da Silvahttps://labdegaragem.com/profile/JeffersonArmandodaSilva
<p>Fala pessaol!!</p>
<p>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.</p>
<p>#define time 1000<br></br>#include <SPI.h><br></br>#include <Ethernet.h><br></br>#include <EthernetClient.h></p>
<p>byte mac[] = {<br></br> 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED<br></br>};<br></br>IPAddress…</p>
<p>Fala pessaol!!</p>
<p>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.</p>
<p>#define time 1000<br/>#include <SPI.h><br/>#include <Ethernet.h><br/>#include <EthernetClient.h></p>
<p>byte mac[] = {<br/> 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED<br/>};<br/>IPAddress ip(10, 50, 1, 95);<br/>IPAddress myDns(10, 50, 1, 29);<br/>IPAddress gateway(10, 0, 0, 65);<br/>IPAddress subnet(255, 0, 0, 0);<br/>const int LM35 = A0;<br/>float temperatura;<br/>char emaserver[] = { 200, 147, 99, 132 }; //Mailserver<br/>EthernetServer server(8080);<br/>EthernetClient client;</p>
<p>void setup() {<br/> // Open serial communications and wait for port to open:<br/> Serial.begin(9600);<br/> while (!Serial) {<br/> ; // wait for serial port to connect. Needed for native USB port only<br/> }</p>
<p><br/> // start the Ethernet connection and the server:<br/> Ethernet.begin(mac, ip, myDns, gateway, subnet);<br/> server.begin();<br/> Serial.print("server is at ");<br/> Serial.println(Ethernet.localIP());<br/>}</p>
<p><br/>void loop() {<br/> temperatura = (float(analogRead(LM35)) * 5 / (1023)) / 0.01;<br/> <br/> EthernetClient client = server.available();<br/> if (client) {<br/> Serial.println("new client");<br/> <br/> boolean currentLineIsBlank = true;<br/> while (client.connected()) {<br/> if (client.available()) {<br/> char c = client.read();<br/> Serial.write(c);<br/> <br/> if (c == '\n' && currentLineIsBlank) {<br/> // send a standard http response header<br/> client.println("HTTP/1.1 200 OK");<br/> client.println("Content-Type: text/html");<br/> client.println("Connection: close"); // the connection will be closed after completion of the response<br/> client.println("Refresh: 5"); // refresh the page automatically every 5 sec<br/> client.println();<br/> client.println("<!DOCTYPE HTML>");<br/> client.println("<html>");<br/> client.println("<meta http-equiv=\"refresh\" content=\"2\">");<br/> // output the value of each analog input pin<br/> client.println("<head>");<br/> client.println("<title>Medidior de temperatura</title>");<br/> client.println("<head>");<br/> client.println("<body>");<br/> client.println("<h1>Monitoramento de Temperatura</h1>");<br/> client.println("<h2>Temperatura.:</h2>");<br/> client.print(temperatura);<br/> client.print("&deg;"); // Referência do caratere(graus º)<br/> client.println("C");// Exibe o "C"<br/> client.println("</body>");<br/> client.println("</head>");<br/> client.println("</html>");<br/> break;<br/> delay(1000);<br/> <br/> }<br/> <br/> if (c == '\n') {<br/> // you're starting a new line<br/> currentLineIsBlank = true;<br/> } else if (c != '\r') {<br/> // you've gotten a character on the current line<br/> currentLineIsBlank = false;<br/> <br/> }<br/> }<br/> }<br/> // give the web browser time to receive the data<br/> delay(1);<br/> // close the connection:<br/> client.stop();<br/> Serial.println("client disconnected");<br/> <br/> }<br/> if (temperatura > 28.00){<br/> envia();<br/> <br/> //Serial.println (temperatura);<br/> }</p>
<p>}</p>
<p>void envia()<br/>{<br/>delay(time);<br/>Serial.println("conectando...");<br/>if (client.connect(emaserver,587)) // Porta de conexao do servidor do email.<br/>{<br/>Serial.println("conectado!");<br/>Serial.println("enviando email...");<br/>Serial.println();<br/>client.println( "EHLO localhost" );<br/>recebe();<br/>delay(time);<br/>client.println("AUTH LOGIN");<br/>recebe();<br/>delay(time);<br/>client.println("xxxxxxxxxxxxxxxxxxxxxxxxxx"); // Email de login em base de 64: <a href="http://base64-encoder-online.waraxe.us/" target="_blank">http://base64-encoder-online.waraxe.us/</a><br/>recebe();<br/>delay(time);<br/>client.println("xxxxxxxxxxxxxxx"); // Senha do email em base de 64: <a href="http://base64-encoder-online.waraxe.us/" target="_blank">http://base64-encoder-online.waraxe.us/</a><br/>recebe();<br/>delay(time);<br/>client.println("mail from: <monitoramento.tempe@bol.com.br>"); //Email remetente<br/>recebe();<br/>delay(time);<br/>client.println("rcpt to: <jefferson.as18@gmail.com>"); // Email destinatário<br/>recebe();<br/>delay(time);<br/>client.println("data");<br/>recebe();<br/>delay(time);<br/>client.println("Subject: Alerta!"); // Assunto<br/>recebe();<br/>delay(time);<br/>client.println("Alerta sua temperatura esta muita alta !!!!!!!!"); // Corpo<br/>recebe();<br/>delay(time);<br/>client.println("."); // Indica fim do email.<br/>recebe();<br/>delay(time);<br/>client.println();<br/>recebe();<br/>delay(time);<br/>Serial.println("email enviado!");<br/>delay(time);<br/>if (client.connected()) // Desconecta pra deixar pronto para novo envio.<br/>{<br/>Serial.println();<br/>Serial.println("desconectando...");<br/>client.stop();<br/>Serial.println();<br/>Serial.println();<br/>}<br/>}<br/>else<br/>{<br/>Serial.println("connection failed");<br/>}<br/>//Serial.println("Ready. Press 'e' to connect.");<br/>}</p>
<p><br/>void recebe()<br/>{<br/>while (client.available())<br/>{<br/>char c = client.read();<br/>Serial.print(c);<br/>}<br/>}</p> Teria que testar seu code, ma…tag:labdegaragem.com,2018-05-16:6223006:Comment:6710782018-05-16T18:12:08.265ZCarlos kwiekhttps://labdegaragem.com/profile/Carloskwiek
<p>Teria que testar seu code, mas estou em Brasilia por um tempo sem acesso a minha bancada.</p>
<p>Mas você poderia facilitar as coisas e usar ferramentas de ioT como Blink por exemplo, veja este exemplo.</p>
<p></p>
<p><a href="https://examples.blynk.cc/?board=ESP8266&shield=ESP8266%20WiFi&example=Widgets%2FEmail" target="_blank">https://examples.blynk.cc/?board=ESP8266&shield=ESP8266%20WiFi&example=Widgets%2FEmail</a> </p>
<p></p>
<p>Abs.</p>
<p></p>
<p>CK</p>
<p>Teria que testar seu code, mas estou em Brasilia por um tempo sem acesso a minha bancada.</p>
<p>Mas você poderia facilitar as coisas e usar ferramentas de ioT como Blink por exemplo, veja este exemplo.</p>
<p></p>
<p><a href="https://examples.blynk.cc/?board=ESP8266&shield=ESP8266%20WiFi&example=Widgets%2FEmail" target="_blank">https://examples.blynk.cc/?board=ESP8266&shield=ESP8266%20WiFi&example=Widgets%2FEmail</a> </p>
<p></p>
<p>Abs.</p>
<p></p>
<p>CK</p> Então Carlos, estou usando o…tag:labdegaragem.com,2018-05-16:6223006:Comment:6712202018-05-16T16:51:01.123ZJefferson Armando da Silvahttps://labdegaragem.com/profile/JeffersonArmandodaSilva
<p>Então Carlos, estou usando o servidor de email da bol e la ta liberada, mas mesmo assim não vai o email.</p>
<p>Então Carlos, estou usando o servidor de email da bol e la ta liberada, mas mesmo assim não vai o email.</p> Se tudo esta funcionando, e…tag:labdegaragem.com,2018-05-16:6223006:Comment:6709812018-05-16T14:12:52.637ZCarlos kwiekhttps://labdegaragem.com/profile/Carloskwiek
<p></p>
<p>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.</p>
<p>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: …</p>
<p></p>
<p>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.</p>
<p>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: <a href="https://support.google.com/accounts/answer/6010255?hl=pt-BR" target="_blank" rel="noopener">CLIQUE AQUI</a></p>
<p></p>
<p>Meu canal: <a href="https://www.youtube.com/channel/UCLZ2cga6-yqz5jtI-XvE7PA?view_as=subscriber" target="_blank" rel="noopener">CLIQUE AQUI</a></p>
<p></p>
<p>Abs.</p>
<p></p>
<p>CK</p>