找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 4847|回復(fù): 6
打印 上一主題 下一主題
收起左側(cè)

制作自己的wifi開(kāi)關(guān) ESP8266 lua數(shù)據(jù)存儲(chǔ)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:81424 發(fā)表于 2018-11-6 23:12 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
本帖最后由 沙漠之痕 于 2018-11-9 13:31 編輯

1. 上電延時(shí)2秒加載file.lua文件,file.lua文件中寫(xiě)入數(shù)據(jù)到mode.lua文件,再延時(shí)5秒讀出數(shù)據(jù)通過(guò)串口打印數(shù)據(jù)
操作流程:
(1)手寫(xiě)創(chuàng)建打開(kāi)一個(gè)文件file.open("mode.lua", "w+")(寫(xiě)方式打開(kāi))
(2)向文件中寫(xiě)入數(shù)據(jù)file.writeline()
(3)讀取文件并打印內(nèi)容
(4)關(guān)閉文件

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

file.lua文件結(jié)束
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文件結(jié)束

2. 通過(guò)串口發(fā)送指令控制繼電器, 掉電記憶繼電器狀態(tài),再次上電恢復(fù)繼電器狀態(tài)。
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文件結(jié)束

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文件



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


lua源碼數(shù)據(jù)儲(chǔ)存.zip (830 Bytes, 下載次數(shù): 17)


交流QQ:1813763867
QQ群:235371864


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏4 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:81424 發(fā)表于 2018-11-9 13:07 | 只看該作者
上電時(shí)判斷繼電器狀態(tài)重新優(yōu)化.....更新
回復(fù)

使用道具 舉報(bào)

板凳
ID:81424 發(fā)表于 2018-11-9 13:31 | 只看該作者
添加演示視頻
回復(fù)

使用道具 舉報(bào)

地板
ID:399179 發(fā)表于 2018-11-9 18:56 來(lái)自手機(jī) | 只看該作者
這個(gè)可以做成用手機(jī)APP控制電器的設(shè)備嗎?
回復(fù)

使用道具 舉報(bào)

5#
ID:81424 發(fā)表于 2018-11-12 08:37 | 只看該作者
回復(fù)

使用道具 舉報(bào)

6#
ID:81424 發(fā)表于 2018-11-12 08:41 | 只看該作者
快樂(lè)眼淚 發(fā)表于 2018-11-9 18:56
這個(gè)可以做成用手機(jī)APP控制電器的設(shè)備嗎?

可以啊,把其他的幾節(jié)連起來(lái),就會(huì)知道 可以做成TCP服務(wù)器的模式
回復(fù)

使用道具 舉報(bào)

7#
ID:446530 發(fā)表于 2018-12-14 20:26 | 只看該作者
我是小港灣,方便告訴你的聯(lián)系方式嗎?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表