ESP8266學習之路 十二 (讀寫檔案)
阿新 • • 發佈:2018-12-18
- 通過串列埠傳送指令控制繼電器, 掉電記憶繼電器狀態,再次上電恢復繼電器狀態。
init.lua檔案
RELAY_Stat = "" RELAY_Pin = 1 gpio.mode(RELAY_Pin, gpio.OUTPUT) if file.open("mode.lua", "r") then RELAY_Stat = file.readline() print(RELAY_Stat) file.close() end if RELAY_Stat=="RELAY=1\n\r" then gpio.write(RELAY_Pin,1) elseif RELAY_Stat == "RELAY=0\n\r" then gpio.write(RELAY_Pin,0) end tmr.alarm(0,4000,0,function() dofile("file.lua") end)
file.lua檔案
UartReceCnt = 0 UartReceTempCnt = 0 UartReceData = "" uart.on("data",0,function(data) UartReceData = UartReceData..data UartReceCnt = UartReceCnt + 1 end,0) tmr.alarm(1,10,1,function() if UartReceCnt ~= 0 then if UartReceTempCnt == UartReceCnt then UartReceCnt = 0 UartReceTempCnt = 0 if UartReceData == "open" then gpio.write(RELAY_Pin,1) if file.open("mode.lua", "w+") then file.writeline("RELAY=1") file.flush() else print("open mode.lua faild") end file.close() elseif UartReceData == "close" then gpio.write(RELAY_Pin,0) if file.open("mode.lua", "w+") then file.writeline("RELAY=0") file.flush() else print("open mode.lua faild") end file.close() elseif UartReceData == "rest" then node.restart() end uart.write(0,UartReceData) UartReceData = "" UartReceCnt = 0 else UartReceTempCnt = UartReceCnt end end end)