WIFI路由连接主要功能代码如下:
wifi.setmode(wifi.STATION)//设置WIFI工作模式
wifi.sta.config("无线网名称","密码")//配置SSID和Password
wifi.sta.connect()//连接路由
tmr.alarm(0,1000,tmr.ALARM_AUTO,function()//开启定时器
if wifi.sta.getip()==nil then//连接路由失败
print("IPunavaiable,Waiting...")
else tmr.stop(0)//连接路由成功,关闭定时器
print("Configdone,IPis"..wifi.sta.getip())//获取IP地址
4.2 RGB三色灯的输出引脚控制功能程序设计
由于ESP8266模块所运行的NodeMCU固件中含有对GPIO的输入、输出和中断三种模式的设置选择[6],为了利用Lua脚本语言控制任意一个灯的开和关两个状态,这里需要在Lua编程中将ESP8266无线通信模块中的GPIO14、GPIO13和GPIO12三个物理引脚映射NodeMCU固件中LEDB(IO5)、LEDR(IO7)和LEDG(IO6)三个引脚,并选择为输出模式。另外,在系统启动初始化阶段,为了将RGB三色灯都处于关闭状态,根据前面的电路连接,需要将这三个引脚的IO口初始化为高电平输出,主要功能代码如下:
gpio.mode(LEDR,gpio.OUTPUT);//将红色灯所对应的NodeMCU引脚设置输出模式gpio.mode(LEDG,gpio.OUTPUT);//将绿色灯所对应的NodeMCU引脚设置输出模式
gpio.mode(LEDB,gpio.OUTPUT);//将蓝色灯所对应的NodeMCU引脚设置输出模式gpio.write(LEDR, gpio.HIGH);//将红色灯所对应NodeMCU引脚输出为高电平,代表不点亮
gpio.write(LEDG, gpio.HIGH);//将绿色灯所对应NodeMCU引脚输出为高电平,代表不点亮
gpio.write(LEDB, gpio.HIGH);//将蓝色灯所对应NodeMCU引脚输出为高电平,代表不点亮
4.3 WIFI模块网络数据通信功能程序设计
在物联网快速发展的时代,设备与平台服务器的连接交互的信息越来越多,为了将ESP8266无线通信模块连接RGB三色灯之后,通过TCP方式连接云平台服务器,并最终实现智能手机远程控制,这里需要使用带有cjson数据通信处理协议的NodeMCU固件实现数据信息传输与交互[7],固件中的cjson是在物联网领域数据传输中较为常用的协议,这里智能手机发出的控制命令通过云端服务器之后,云服务器以cjson格式将数据传输至ESP8266无线通信模块中,通过decode函数进行解码,转换成数字、字符串或者table数据类型的控制命令实现对设备的控制[8],然后将控制状态信息(如灯已打开或者关闭状态信息)通过encode()函数进行编码,将数字、字符串或者table数据类型转换成cjson格式传输至云端服务中,具体WIFI模块网络数据通信流程如图5所示。