2016-07-20 7 views
0

나는이 코드를 인터넷에서 제어하기 위해 만들고 있지만, 인터넷에 접속할 수 없으면 스위치를 켜고 끌 수있는 스위치를 추가하고 싶다. 그래서 내 문제는 코드를 업로드 할 때 정상적으로 작동하지만 ESP8266이 다시 시작되면 코드가 더 이상 작동하지 않는다는 것입니다. 코드의 모든 부분은 독립적으로 잘 작동하지만 함께 넣어 때 당신의 코드가 init.lua라는 파일에 투입 될 필요가 작업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

또한 0.9.6이 아닌 최근 NodeMCU 펌웨어를 사용하는 것이 좋습니다. 그리고 WIFI가 연결될 때까지 기다릴 수도 있습니다. http://stackoverflow.com/questions/33288026/the-wifi-sta-module-connects-if-a-loop-is-running/33309872# 33309872 – cranphin

+0

예, init.lua에 버그가있는 것 같습니다. 찾을 수 없습니다. –

답변

0

을 doesnot.

http://nodemcu.readthedocs.io/en/latest/en/upload/#initlua 당신은 볼 수

: 그 후 장치 부팅이 갓 번쩍 된 때 "루아가 열려 init.lua는 없다"직렬 콘솔 에 인쇄. NodeMCU 이 파일 시스템의 루트에 init.lua를 찾으면 부트 시퀀스의 일부인 (표준 루아 기능)으로 실행합니다. 따라서 응용 프로그램은 init.lua에서 초기화되고 트리거됩니다. 일반적으로 은 먼저 WiFi 연결을 설정하고 에 한 번만 계속합니다. 다음 init.lua로 파일 시스템에 파일을 로컬로 저장하는 것입니다이를 달성하기 ESPlorer 하나의 방법으로

는 '저장 ESP에 대한'버튼을 누르십시오.

+0

예. 파일을 init.lua로 저장 한 다음 ESP에 저장합니다. 처음에는 잘 작동하지만 전원이 꺼지면 ESP가 매번 재설정됩니다. –

+0

내 init.lua에 버그가 있다고 의심 되나 찾을 수 없습니다. –

+0

예. 파일을 init.lua로 저장 한 다음 ESP에 저장하라는 메시지가 나타납니다. 처음에는 제대로 작동하지만 꺼져있을 때는 작동하지 않습니다. ESP는 항상 매번 재설정됩니다. –