top of page
Buscar

Escrevendo o código para o ESPLORER

  • Foto do escritor: Alexandre Leonardo Romero
    Alexandre Leonardo Romero
  • 25 de jul. de 2018
  • 2 min de leitura

Atualizado: 26 de ago. de 2018

Neste artigo será mostrado como fazer o código


Iremos mostrar trechos de código que é necessário para rodar um webservice que coleta temperatura, posta no o site deve coletar o e-mail que deve ser enviado o e-mail caso o valor da temperatura seja maior que o do input também no site.


wifi.setmode(wifi.STATION)

wifi.sta.config {ssid="GL-iNet-866", pwd="goodlife", save=true}

local max = ''

local email = ''

require("base64")

local MY_EMAIL = "xxxxxx@gmail.com"

local EMAIL_PASSWORD = "xxxxxxxxx"

local mail_to = "xxxxxx@gmail.com"

local email_subject = ""

local email_body = " teste "

local count = 0

local smtp_socket = nil 


No trecho acima estamos configurando a estação de "Wifi" e setando as configurações de email.


No trecho abaixo, esta a funçãio para escrever no arquivo os valores dos campos preenchidos no site

function EscreverArquivo()

  if file.open("teste.cfg", "w+") then  

     file.writeline(max)

     file.writeline(email)

     print('escreveu')

     file.close()

  end

end


e em seguida o codigo para leitura dos valores sdalvos no arquivo de txt

function lerArquivo()

  fd = file.open("teste.cfg", "r")

  if fd then

    max = fd:readline()

    email = fd:readline()

  end

  if max == nil then

     max = '0'

     email = ' '

     print('verificou é null')

  end

end





em seguida o código para verificar a temperatura atual, e se for maior que o que foi estipulado no input, envia um e-mail alertando

function verificaTemp()

      val = adc.read(0)

      max = tonumber(max)

      --print(max)

      if (max == nil) or (val == nil) then

          print('não enviou porque max é nulo')

      else

        print(val)

        print(max)

        if val >= max then

           tmr.stop(3)

           print('Enviando email...')

           mail_to = email

           send_email("ESP8266",'Temperatura atual: '..val)

        end

      end

end





e o codigo para envio do email que foi configurado no inicio desta pagina.

function send_email(subject,body)

     count = 0

     email_subject = subject 

     email_body = body

     smtp_socket = net.createConnection(net.TCP,0)

     smtp_socket:on("connection",connected)    

     smtp_socket:on("receive",display)

     smtp_socket:connect(2525,"mail.smtp2go.com")

     print('conectou')

end



E em seguida o código principal para execução de todo o processo

tmr.alarm(1, 5000, 1, function()

    if wifi.sta.getip() == nil then

        print("IP unavailable, Waiting...")

    else

        tmr.stop(1)

        print("ESP8266 mode is: " .. wifi.getmode())

        print("The module MAC address is: " .. wifi.ap.getmac())

        print("Config done, IP is "..wifi.sta.getip())

        srv=net.createServer(net.TCP) 

        srv:listen(80,function(conn) 

        conn:on("receive",function(conn,payload) 

        lerArquivo()

       conn:send("<html> <head> <title>Minha pagina</title> <meta http-equiv='Content-Type' content='text/html; charset=utf-8'>")

        conn:send("<h1> WEB </h1> <br><form action='' method='GET'><p>Valor maximo</p><input type='text' name='valormax' value='"..max.."'> ")

        conn:send("</input> <button type='submit'>OK</button><br><p>SMTP</p> <input type='text' name='smtp' value='"..email.."'> </input></form>")

        max=string.match(payload, "?valormax=(.+)&smtp")

        email=string.match(payload, "smtp=(.+) HTTP")

        if max ~= nil and email ~= nil then

           email = email:gsub("%\%40", "@")

           print(email)

           EscreverArquivo()

           email_body = email

           email_subject = "  teste   "

        end

        vertempo()

       end)

      end) 

   end

end)




link completo do código


 
 
 

Bình luận


© 2018 criado por Alexandre Leonardo, Leonardo Pereira e Bruno Gibicoski

bottom of page