1. 程式人生 > >ESP8266學習之路 十二 (讀寫檔案)

ESP8266學習之路 十二 (讀寫檔案)

  1. 通過串列埠傳送指令控制繼電器, 掉電記憶繼電器狀態,再次上電恢復繼電器狀態。

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)