1.系統與檔案功能

###node 模块

###file 模块

#node模块

node.restart()

####描述 重新启动

####语法

node.restart()

####参数 nil

####返回值 nil

####示例

node.restart();

node.dsleep()

####描述

进入睡眠模式,计时时间之后唤醒

####语法

node.dsleep(us)

-注意: 如需使用此功能,需要将esp8266的PIN32(RST)和PIN8(XPD_DCDC)短接。

####参数 us: 睡眠时间,单位:us

####返回值 nil

####示例

node.dsleep(us);

node.info()

####描述 返回NodeMCU版本信息, 包括:chipid, flashid, flash size, flash mode, flash speed.

####语法 node.info()

####参数

  • nil

####返回值

    • majorVer (number)

    • minorVer (number)

    • devVer (number)

    • chipid (number)

    • flashid (number)

    • flashsize (number)

    • flashmode (number)

    • flashspeed (number)

####示例

majorVer, minorVer, devVer, chipid, flashid, flashsize, flashmode, flashspeed = node.info(); print("NodeMCU "..majorVer.."."..minorVer.."."..devVer)

node.chipid()

####描述 返回芯片ID

####语法 node.chipid()

####参数 nil

####返回值 number:芯片ID

####示例

id = node.chipid();

node.flashid()

####描述 返回flashid

####语法 node.flashid()

####参数 nil

####返回值 number:flash ID

####示例

flashid = node.flashid();

node.heap()

####描述 返回当前系统剩余内存大小,单位:字节

####语法 node.heap()

####参数 nil

####返回值 number: 系统剩余内存字节数

####示例

heap_size = node.heap();

####参见 -

node.key()

####描述 定义按键的功能函数, 按键与GPIO16相连。

####语法 node.key(type, function())

####参数 type: type取字符串"long"或者"short". long:按下按键持续3s以上, short: 短按按键(时间短于3s)

function(): 用户自定义的按键回调函数。 如果为nil, 则取消用户定义的回调函数。

默认函数:long:改变LED闪烁频率,short:重新启动。

####返回值 nil

####示例

node.key("long", function() print('hello world') end)

####参见 -

node.led()

####描述 设置LED的亮/暗时间, LED连接到GPIO16, 与node.key()复用。

####语法 node.led(low, high)

####参数 Low: LED关闭时间,如设置为0,则LED处于常亮状态。单位:毫秒,时间分辨率:80100ms

High: LED打开时间,单位:毫秒,时间分辨率:80100ms

####返回值 nil

####示例

-- LED常亮. node.led(0);

####参见 -

node.input()

####描述 接收字符串并将字符串传入lua解释器。

功能同pcall(loadstring(str)),增加了支持多行输入的功能。

####语法 node.input(str)

####参数 str: Lua代码段

####返回值 nil

####示例

-- 注意:该函数不支持在命令行中使用。 sk:on("receive", function(conn, payload) node.input(payload) end)

####参见 -

node.output()

####描述 将lua解释器输出重定向于回调函数。

####语法 node.output(function(str), serial_debug)

####参数 function(str): 接收lua解释器输出的str作为输入,可以将该输出通过socket发送。

serial_debug: 1:将输出送至串口; 0:输出不送至串口

####返回值 nil

####示例

function tonet(str) sk:send(str) -- print(str) 错误!!! 千万不要在此函数中再使用print函数 -- 因为这样会导致函数的嵌套调用!! end node.ouput(tonet, 1) -- serial also get the lua output.

####参见 -

node.readvdd33()

####描述 读取vdd33管脚电压.

####语法 node.readvdd33()

####参数 nil

####返回值 电压数值,单位:毫伏.

####示例

print(node.readvdd33())

output

3345

v = node.readvdd33() / 1000 print(v) v=nil

output

3.315

####参见 -

node.compile()

####描述 将.lua文本文件编译为字节码文件,并保存为.lc文件.

####语法 node.compile("file.lua")

####参数 字符串:lua文件名.

####返回值 nil

####示例

file.open("hello.lua","w+") file.writeline([[print("hello nodemcu")]]) file.writeline([[print(node.heap())]]) file.close() node.compile("hello.lua") dofile("hello.lua") dofile("hello.lc")

####参见 -

#file 模块

file.remove()

####描述 删除文件。

####语法 file.remove(filename)

####参数 filename: 需要删除的文件。

####返回值 nil

####示例

-- 删除foo.lua文件 file.remove("foo.lua")

####参见 - file.open()

- file.close()

file.open()

####描述 打开文件。

####语法 file.open(filename, mode)

####参数 filename: 需要打开的文件,不支持文件夹。

mode:

"r": read mode (the default)

"w": write mode

"a": append mode

"r+": update mode, 文件内的数据保留

"w+": update mode, 文件内的数据清除

"a+": append update mode, 文件内的数据保留,要写入的数据仅能增加在文件最后。

####返回值 nil: 文件打开失败,不存在 true: 文件打开成功

####示例

-- 打开'init.lua',并打印文件的第一行。 file.open("init.lua", "r") print(file.readline()) file.close()

####参见 - file.close()

- file.readline()

file.close()

####描述 关闭文件。

####语法 file.close()

####参数 nil

####返回值 nil

####示例

-- 打开'init.lua',并打印文件的第一行,然后关闭文件。 file.open("init.lua", "r") print(file.readline()) file.close()

####参见 - file.open()

- file.readline()

file.readline()

####描述 读取文件的一行。

####语法 file.readline()

####参数 nil

####返回值 逐行返回文件内容。返回值末尾包含EOL('\n')

如果读到EOF返回nil。

####示例

-- 打开'init.lua',读取并打印文件的第一行,然后关闭文件。 file.open("init.lua", "r") print(file.readline()) file.close()

####参见 - file.open()

- file.close()

file.writeline()

####描述 向文件写入一行,行末尾增加'\n'。

####语法 file.writeline(string)

####参数 string: 需要写入的字符串

####返回值 true: 写入成功

nil: 写入失败

####示例

-- 以'a+'的模式打开'init.lua' file.open("init.lua", "a+") -- 将'foo bar'写到文件的末尾 file.writeline('foo bar') file.close()

####参见 - file.open()

- file.write()

file.write()

####描述 向文件写入字符串。

####语法 file.write(string)

####参数 string: 需要写入的字符串

####返回值 true: 写入成功

nil: 写入失败

####示例

-- 以'a+'的模式打开'init.lua' file.open("init.lua", "a+") -- 将'foo bar'写到文件的末尾 file.writeline('foo bar') file.close()

####参见 - file.open()

- file.writeline()

file.flush()

####描述 清空缓存写入文件。

####语法 file.flush()

####参数 nil

####返回值 nil

####示例

-- 以'a+'的模式打开'init.lua' file.open("init.lua", "a+") -- 将'foo bar'写到文件的末尾 file.write('foo bar') file.flush() file.close()

####参见 - file.open()

- file.writeline()

file.seek()

####描述 设置或者读取文件的读写位置,位置等于whence加上offset的值。

####语法 file.seek(whence, offset)

####参数 whence:

"set": base is position 0 (beginning of the file);

"cur": base is current position;(default value)

"end": base is end of file;

offset: default 0

####返回值 成功: 返回当前的文件读写位置

失败: 返回nil

####示例

-- 以'a+'的模式打开'init.lua' file.open("init.lua", "a+") -- 将'foo bar'写到文件的末尾 file.write('foo bar') file.flush() --将文件读写位置设置在文件开始 file.seek("set") --读取并打印文件的第一行 print(file.readline()) file.close()

####参见 - file.open()

- file.writeline()

file.list()

####描述 显示所有文件。

####语法 file.list()

####参数 nil

####返回值 返回包含{文件名:文件大小}的lua table

####示例

l = file.list(); for k,v in pairs(l) do print("name:"..k..", size:"..v) end

####参见 - file.remove()