欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 制作自己的wifi開關 ESP8266 lua數據存儲 [打印本頁]

作者: 沙漠之痕    時間: 2018-11-6 23:12
標題: 制作自己的wifi開關 ESP8266 lua數據存儲
本帖最后由 沙漠之痕 于 2018-11-9 13:31 編輯

1. 上電延時2秒加載file.lua文件,file.lua文件中寫入數據到mode.lua文件,再延時5秒讀出數據通過串口打印數據
操作流程:
(1)手寫創建打開一個文件file.open("mode.lua", "w+")(寫方式打開)
(2)向文件中寫入數據file.writeline()
(3)讀取文件并打印內容
(4)關閉文件

Init.lua文件:
tmr.alarm(0,2000,0,function()
    dofile("file.lua")
end)
init.lua文件結束
file.lua文件:

file.lua文件結束
if  file.open("mode.lua", "w+") then
    file.writeline("abc")
    file.flush()
    file.writeline("222")
    file.flush()
    file.writeline("666")
    file.close()
else
    print("open mode.lua faild")   
end
tmr.alarm(1,5000,0,function()
    if file.open("mode.lua", "r") then
        s1= file.readline()
        print(s1)
        s1= file.readline()
        print(s1)
        s1= file.readline()
        print(s1)
        file.close()
    end
end)
file.lua文件結束

2. 通過串口發送指令控制繼電器, 掉電記憶繼電器狀態,再次上電恢復繼電器狀態。
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 string.find(RELAY_Stat,"RELAY=1",1) then
    gpio.write(RELAY_Pin,1)
elseif string.find(RELAY_Stat,"RELAY=0",1) then
    gpio.write(RELAY_Pin,0)
end
tmr.alarm(0,4000,0,function()
    dofile("file.lua")
end)
init.lua文件結束

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)
file.lua文件



用到的函數介紹:
1. file.open(filename, mode)  打開文件以進行訪問,可能會創建它(對于寫入模式)
參數: fliename 要打開的文件
mode:  r 讀模式(默認)
w 寫模式
a 附加模式
r+ 更新模式,保留所有先前的數據
w+ 更新模式,刪除所有先前的數據
a+ 追加更新模式,保留以前的數據,只允許在文件末尾寫入
返回:文件對象,如果文件打開確定。nil如果文件未打開或不存在(讀取模式)
2. file.writeline(string)  將字符串寫入打開的文件,并在末尾附加'\ n'
參數: string 要寫入文件的內容
返回:true如果寫得好,nil就出錯了
3. file.readline()  從打開的文件中讀取下一行。行被定義為以EOL'\ n')字節結尾的零個或多個字節。如果下一行超過1024,則此函數僅返回前1024個字節。
參數:
返回:文件內容以字符串形式逐行顯示,包括EOL'\ n')。nilEOF時返回
4. file.close()          關閉打開的文件(如果有)。
參數
返回: nil
5. file.flush()刷新對文件系統的任何掛起寫入,確保重啟時不會丟失任何數據
參數: 無
返回:  nil


lua源碼數據儲存.zip (830 Bytes, 下載次數: 17)

演示視頻:http://v.youku.com/v_show/id_XMzkxMTAyOTI0MA==.html?x&sharefrom=android&sharekey=c9e039f4aa34691fa4cca95cad2da02e2

交流QQ:1813763867
QQ群:235371864



作者: 沙漠之痕    時間: 2018-11-9 13:07
上電時判斷繼電器狀態重新優化.....更新
作者: 沙漠之痕    時間: 2018-11-9 13:31
添加演示視頻
作者: 快樂眼淚    時間: 2018-11-9 18:56
這個可以做成用手機APP控制電器的設備嗎?
作者: 沙漠之痕    時間: 2018-11-12 08:37
https://v.youku.com/v_show/id_XM ... 193b97c5e2278a1ca96
作者: 沙漠之痕    時間: 2018-11-12 08:41
快樂眼淚 發表于 2018-11-9 18:56
這個可以做成用手機APP控制電器的設備嗎?

可以啊,把其他的幾節連起來,就會知道 可以做成TCP服務器的模式
作者: 小港灣    時間: 2018-12-14 20:26
我是小港灣,方便告訴你的聯系方式嗎?




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1