Craindo uma pagina com esp8266
- Alexandre Leonardo Romero
- 25 de jul. de 2018
- 2 min de leitura
Atualizado: 5 de set. de 2018
A partir do ESP8266 é possível criar uma pagina web para enviar dados e receber

Neste tópico mostraremos como criar um servidor para nossa pagina, para podermos
enviar os dados e receber via post para assim estar processando as informações.
Crie o design com facilidade
A seguir, esta o código para conectar com uma `WIFI` e criar um servidor com a pagina html.
wifi.setmode(wifi.STATION)
wifi.sta.config {ssid="xxxxxxxx", pwd="xxxxxxx", save=true}
tmr.alarm(1, 1000, 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)
val=string.match(payload, "?valormax=(.+)&smtp")
email=string.match(payload, "smtp=(.+) HTTP")
if file.open("teste.cfg", "r") then
val =file.read('\n')
file.close()
end
conn:send("<h1> WEB </h1> <br><form action='' method='GET'><p>Valor maximo</p><input type='text' name='valormax' value='"..val.."'> </input> <button type='submit'>OK</button><br><p>SMTP</p> <input type='text' name='smtp'> </input></form>")
enviaEmail( "ESP8266",[[Hi, How are your IoT projects coming along? Best Wishes, ESP8266]])
if val ~= nil then
dest = file.open("teste.cfg", "w")
if dest then
dest:write(val)
dest:write(email)
dest:close()
end
end
end)
end)
end
end)
Explicarei cada trecho de código a seguir.
Criando conexão com WIFI.
Para criar uma conexão com wifi é preciso usar a biblioteca do ESP8266 para lua, é uma lib chamada WIFI, com ela é criado a conexão com o wifi.
Colocando o wifi no modo STATION
wifi.setmode(wifi.STATION)
Configurando para acessar a wifi
wifi.sta.config {ssid="xxxxxxx", pwd="xxxxxxx", save=true}
Após este processo, você já estará conectado a WIFI, então só basta criar o servidor e colocar nossa pagina nela.
Criando o servidor para colocar a pagina html
Com nossa conexão de pé, é preciso criar o servidor:
srv=net.createServer(net.TCP)
e neste momento estamos dizendo que o servidor esta escutando a porta 80:
srv=net.createServer(net.TCP)
srv:listen(80,function(conn)
neste momento, toda vez que receber um evento ele executa a função:
conn:on("receive",function(conn,payload)
Recebendo os valores por GET e usando uma expressão para pegar os valores de cada campo:
val=string.match(payload, "?valormax=(.+)&smtp")
email=string.match(payload, "smtp=(.+) HTTP")
Enviando para o servidor o codigo html que será renderizado na página
conn:send("<h1> WEB </h1> <br><form action='' method='GET'><p>Valor maximo</p><input type='text' name='valormax' value='"..val.."'> </input> <button type='submit'>OK</button><br><p>SMTP</p> <input type='text' name='smtp'> </input></form>")
Verifica se o valor foi recebido e não esta nulo:
if val ~= nil then
Abre um arquivo no FLASH do ESP8266 e escreve no arquivo para salvar o valor máximo e o email:
dest = file.open("teste.cfg", "w")
if dest then
dest:write(val)
dest:write(email)
dest:close()
end
end
end)
end)
Fluxograma do funcionamento do projeto

Comments