2016-07-20 36 views
0

我使这个代码通过互联网来控制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>&nbsp;<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) 
+0

希望有一个愚蠢的问题,但是你把这个放在init.lua中吗? – cranphin

+0

另外,我建议使用最新的NodeMCU固件,而不是0.9.6。您可能会尝试等待WIFI连接,有点像:http://stackoverflow.com/questions/33288026/the-wifi-sta-module-connects-if-a-loop-is-running/33309872# 33309872 – cranphin

+0

是的我做到了,我怀疑我的init.lua中有一个bug,但是我找不到它 –

回答

0

需要被放入一个叫做init.lua文件您的代码。

http://nodemcu.readthedocs.io/en/latest/en/upload/#initlua

你会看到“LUA:无法打开init.lua”打印到串行控制台 时后,设备启动一直闪现新鲜。如果NodeMCU 在文件系统的根目录中找到init.lua,它将执行它作为引导序列(标准Lua功能)的一部分的 。因此,你的 应用程序被初始化并从init.lua触发。通常您首先设置WiFi连接并且只有在 成功时才会继续。

有了实现,这将是存储在本地文件系统为init.lua上的文件,然后ESPlorer一种方式打“保存到ESP”按钮。

+0

是的,我将文件保存为init.lua,然后我点击保存到ESP,它第一次工作正常,但是当它关闭时,ESP每次都会重置。 –

+0

我怀疑在我的init.lua中有一个错误,但我找不到它 –

+0

是的,我将文件保存为init.lua然后我点击保存到ESP,第一次它工作正常,但是当它关​​闭时ESP每次都会重置 –