Escrevendo o código para o ESPLORER
- 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