1.系統與檔案功能
###node 模块
node.restart() 重新启动
node.dsleep() 进入睡眠模式,计时时间之后唤醒
node.info() 返回NodeMCU版本信息, 包括:chipid, flashid, flash size, flash mode, flash speed.
node.chipid() 返回芯片ID
node.flashid() 返回flashid
node.heap() 返回当前系统剩余内存大小,单位:字节
node.key() 定义按键的功能函数, 按键与GPIO16相连。
node.readvdd33() --deprecated, moved to adc.readvdd33()
node.restore() --Added on 07/04/2015
###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.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.close()
####描述 关闭文件。
####语法 file.close()
####参数 nil
####返回值 nil
####示例
-- 打开'init.lua',并打印文件的第一行,然后关闭文件。 file.open("init.lua", "r") print(file.readline()) file.close()
####参见 - file.open()
file.readline()
####描述 读取文件的一行。
####语法 file.readline()
####参数 nil
####返回值 逐行返回文件内容。返回值末尾包含EOL('\n')
如果读到EOF返回nil。
####示例
-- 打开'init.lua',读取并打印文件的第一行,然后关闭文件。 file.open("init.lua", "r") print(file.readline()) file.close()
####参见 - file.open()
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(string)
####参数 string: 需要写入的字符串
####返回值 true: 写入成功
nil: 写入失败
####示例
-- 以'a+'的模式打开'init.lua' file.open("init.lua", "a+") -- 将'foo bar'写到文件的末尾 file.writeline('foo bar') file.close()
####参见 - file.open()
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.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.list()
####描述 显示所有文件。
####语法 file.list()
####参数 nil
####返回值 返回包含{文件名:文件大小}的lua table
####示例
l = file.list(); for k,v in pairs(l) do print("name:"..k..", size:"..v) end
####参见 - file.remove()