По мотивам: http://sompi.me/esp8266-webserver-with-ajax-gpio-toggle/
набросал своё безобразие, сделал 2 кнопки - вкл и выкл для управления GPIO4, относительно больших размеров что бы легко попасть по ним со смартфона
init.lua
page.htm
набросал своё безобразие, сделал 2 кнопки - вкл и выкл для управления GPIO4, относительно больших размеров что бы легко попасть по ним со смартфона
init.lua
Код:
gpio.mode(4, gpio.OUTPUT);
gpio.write(4,gpio.LOW);
gpio2_state=0;
wifi.setmode(wifi.STATION);
wifi.sta.config("HomeWIFI","");
wifi.sta.autoconnect(1);
tmr.alarm(0, 1000, 1, function()
ip = wifi.sta.getip();
if ip~=nil then
print(ip);
tmr.stop(0);
httpserver();
else
print("no connect");
end
end)
sendFileContents = function(conn, filename)
if file.open(filename, "r") then
--conn:send(responseHeader("200 OK","text/html"));
repeat
local line=file.readline();
if line then
conn:send(line);
end
until not line
file.close();
else
conn:send(responseHeader("404 Not Found","text/html"));
conn:send("Page not found");
end
end
responseHeader = function(code, type)
return "HTTP/1.1 " .. code .. "\r\nConnection: close\r\nServer: nunu-Luaweb\r\nContent-Type: " .. type .. "\r\n\r\n";
end
httpserver = function ()
srv=net.createServer(net.TCP);
srv:listen(80, function(conn)
conn:on("receive", function(conn,request)
print(request);
conn:send(responseHeader("200 OK", "text/html"));
if string.find(request,"load=1") then
gpio.write(4,gpio.HIGH);
elseif string.find(request,"load=0") then
gpio.write(4,gpio.LOW);
else
sendFileContents(conn, "page.htm");
conn:send("ok");
end
end)
conn:on("sent", function(conn)
conn:close();
conn = nil;
end)
end)
end
HTML:
<html>
<head>
<title>Wi-Fi Button</title>
<style>
body {
font-family: sans-serif;
color: #555;
background-color: #eee;
width:100%;
}
</style>
<script language="javascript">
function loadXMLDoc(stat) {
var xmlhttp;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
xmlhttp.open("GET","load=" + stat + ".pht",true);
xmlhttp.send();
}
</script>
</head>
<body>
<button onclick="loadXMLDoc('1')" style="width:40%; height:150px; background-color:#0f0;">ON</button>
<button onclick="loadXMLDoc('0')" style="width:40%; height:150px; background-color:#f00;">OFF</button>
</body>
</html>