nodeMcu API说明

version 0.1 2014-10-11

概述

    nodeMcu 基于Lua 5.1.4,使用者需了解最简单的Lua语法。

    nodeMcu 尽量采用事件驱动的编程模型。

    nodeMcu 内置 timer,pwm,i2c,net,gpio,wifi module。

    nodeMcu对模块的引脚进行编号,gpio,i2c,pwm等模块需要使用引脚编号进行索引。

目前的编号对应表格:

    IO索引编号  ESP8266实际IO IO索引编号  ESP8266实际IO
    0           GPIO12          8           GPIO0
    1           GPIO13          9           GPIO2
    2           GPIO14          10          GPIO4
    3           GPIO15          11          GPIO5
    4           GPIO3       
    5           GPIO1       
    6           GPIO9       
    7           GPIO10

串口波特率

74880

固件烧写地址:

    eagle.app.v6.flash.bin:0x00000
    eagle.app.v6.irom0text.bin:0x10000
    esp_init_data_default.bin:0x7c000
    blank.bin:0x7e000

node module

node.restart()

    描述:重新启动

node.dsleep( us )

    描述:深度睡眠 us 微秒,时间到之后将重新启动
    us:时间,单位微秒

node.chipid()

    描述:返回芯片id
    返回:number

node.heap()

    描述:返回可用内存 in bytes
    返回:系统heap剩余

node.format()

    描述:格式化用户flash区

node.startlog( filename, noparse)

    描述:开始记录输入
    filename:log所保存的文件名,不支持目录
    noparse:1表示lua虚拟机不对输入进行解析,0表示lua虚拟机对输入进行解析

node.stoplog()

    描述:结束log

例子:录制log到init.lua文件,可以在系统启动之后自动调用该文件。

    node.format()
    node.startlog(“init.lua”, 1)
    print(“hello world”)
    node.stoplog()

此时,文件init.lua内部将含有内容,重启之后,系统执行print(“hello world”)

node.readlog( filename)

    描述:读取文件
    filename:log文件名,不支持目录
    返回:读取的内容,字符串形式

node.list()

    描述:返回所有文件
    返回:一个包含 <文件名:文件大小> pair 的map

wifi module

常量:wifi. STATION, wifi.SOFTAP, wifi.STATIONAP

wifi.setmode(mode)

    描述:设置wifi的工作模式
    mode:取值:wifi. STATION, wifi.SOFTAP或wifi.STATIONAP
    返回设置之后的当前mode

wifi.getmode()

    描述:获取wifi的工作模式
    返回:wifi. STATION, wifi.SOFTAP或wifi.STATIONAP

wifi.startconfig( channel, function succeed_callback )

    描述:开始智能配置,若成功自动设置ssid和pwd并退出
    channel:1~13,起始搜索信道。若不指定,默认为6,每个信道搜索20秒
    succeed_callback:配置成功后的回调函数,将在获取密码正确并连接上ap之后调用

wifi.stopconfig()

    描述:中断智能配置

wifi.station module

wifi.station.setconfig(ssid, password)

    描述:设置station模式下的ssid和password
    ssid:字符串形式,长度小于32
    password:字符串形式,长度小于64

wifi.station.connect()

    描述:station模式下连接至ap

wifi.station.disconnect()

    描述:station模式下断开与ap的连接

wifi.station.autoconnect(auto)

    描述:station模式下设置自动连接至ap
    auto:0表示设置为不自动连,1表示设置为自动连接

wifi.station.getip()

    描述:station模式下获取ip
    返回:字符串形式的ip,如“192.168.0.2”

wifi.station.getmac()

    描述:station模式下获取mac
    返回:字符串形式的mac,如“18-33-44-FE-55-BB”

wifi.ap module

wifi.ap.setconfig(cfg)

    描述:设置station模式下的ssid和password
    cfg:设置需要的map

例子:

    cfg={}
    cfg.ssid=”myssid”
    cfg.pwd=”mypwd”
    wifi.ap.setconfig(cfg)

wifi.ap.getip()

    描述:ap模式下获取ip
    返回:字符串形式的ip,如“192.168.0.2”

wifi. ap.getmac()

    描述:ap模式下获取mac
    返回:字符串形式的mac,如“1A-33-44-FE-55-BB”

gpio module

常量:gpio.OUTPUT, gpio.INPUT, gpio.HIGH, gpio.LOW

gpio.mode( pin, mode)

    描述:设置对应pin的输入输出模式,将该pin初始化为gpio模式。
    pin:0~11,IO索引编号
    mode:gpio.OUTPUT或者gpio.INPUT

gpio.read(pin)

    描述:读取对应pin的值
    pin:0~11,IO索引编号
    返回:0表示低,1表示高

gpio.write(pin, level)

    描述:设置对应pin的值
    pin:0~11,IO索引编号
    level:gpio.HIGH或者gpio.LOW

例子:

    pin=1
    gpio.mode(pin, gpio.OUTPUT)
    gpio.write(pin, gpio.HIGH)

将索引1的pin设置为GPIO模式,并设置为高电平。

net module

常量:net.TCP, net.UDP

net.createServer(type, secure)

    描述:建立一个服务器
    type:net.TCP或 net.UDP
    secure:true 或者 false,表示是否为安全连接
    返回:net.server子模块

net.createConnection(type, secure)

    描述:建立一个客户端
    type:net.TCP或 net.UDP
    secure:true 或者 false,表示是否为安全连接
    返回:net. socket子模块

net.server module

listen(port,[ip])

    描述:监听某端口
    port:端口号
    ip:可忽略,ip字符串

例子:

    sv=net.createServer(net.TCP, false)
    sv:listen(80)

send( string, function(sent) )

    描述:向连接的客户端发送数据
    string:需要发送的数据字符串

on(event, function cb())

    描述:注册事件的回调函数
    event:字符串,可为:”connection”,”reconnection”,”disconnection”,”receive”,”sent”
    function cb(net.server sv, [string]):回调函数。第一个参数为服务器本身。
    若event为”receive”, 第二个参数为接收到数据,字符串形式。

例子:

    sv=net.createServer(net.TCP, false)
    sv:listen(80)
    sv:on(“receive”, function(s,c) s:send(“Hello, world.”) print(c) end )

close()

    描述:关闭服务器

net.socket module

connect(port, ip)

    描述:连接到某ip和端口
    port:端口号
    ip:ip字符串

send( string, function(sent) )

    描述:向连接发送数据
    string:需要发送的数据字符串

on(event, function cb())

    描述:注册事件的回调函数
    event:字符串,可为:”connection”,”reconnection”,”disconnection”,”receive”,”sent”
    function cb(net.socket, [string]):回调函数。第一个参数为socket连接本身。
    若event为”receive”, 第二个参数为接收到数据,字符串形式。

例子:

    sk=net.createConnection(net.TCP, false)
    sk:on(“receive”, function(sck, c) print(c) end )
    sk:connect(80,”192.168.0.66”) 
    sk:send(“GET / HTTP/1.1\r\nHost: 192.168.0.66\r\nConnection: keep-alive\r\nAccept: */*\r\n\r\n”)

close()

    描述:关闭socket