我使这个代码通过互联网来控制LED,但我也想添加一个开关打开和关闭,以防万一我没有访问互联网。所以我的问题是,当我上传代码时,它正常工作,但是当ESP8266重新启动时,代码不再工作。代码的每一部分都工作正常,独立,但是当我把它们放在一起是亘古不变的工作Esp8266无限重置
wifi.setmode(wifi.STATION)
wifi.sta.config("BELL", "BLACKST")
print(wifi.sta.getip())
led1 = 3
led2 = 4
gpio.mode(led2, gpio.OUTPUT)
srv=net.createServer(net.TCP)
srv:listen(80,function(conn)
conn:on("receive", function(client,request)
local buf = "";
local _, _, method, path, vars = string.find(request, "([A-Z]+) (.+)? (.+) HTTP");
if(method == nil)then
_, _, method, path = string.find(request, "([A-Z]+) (.+) HTTP");
end
local _GET = {}
if (vars ~= nil)then
for k, v in string.gmatch(vars, "(%w+)=(%w+)&*") do
_GET[k] = v
end
end
buf = buf.."<h1> LIGHTS CONTROL </h1>";
buf = buf.."<p>Aldo's Room <a href=\"?pin=ON1\"><button>ON</button> </a> <a href=\"?pin=OFF1\"><button>OFF</button></a></p>";
local _on,_off = "",""
if(_GET.pin == "ON1")then
gpio.write(led2, gpio.HIGH) ;
elseif(_GET.pin == "OFF1")then
gpio.write(led2, gpio.LOW) ;
end
client:send(buf);
client:close();
collectgarbage();
end)
end)
gpio.mode(led1, gpio.INT)
gpio.trig(led1, "both", function(level)
gpio.write(led2, level)
end)
希望有一个愚蠢的问题,但是你把这个放在init.lua中吗? – cranphin
另外,我建议使用最新的NodeMCU固件,而不是0.9.6。您可能会尝试等待WIFI连接,有点像:http://stackoverflow.com/questions/33288026/the-wifi-sta-module-connects-if-a-loop-is-running/33309872# 33309872 – cranphin
是的我做到了,我怀疑我的init.lua中有一个bug,但是我找不到它 –