往期
《ESP8266通信指南》13-Lua 简单入门(打印数据)-CSDN博客
《ESP8266通信指南》12-Lua 固件烧录-CSDN博客
《ESP8266通信指南》11-Lua开发环境配置-CSDN博客
《ESP8266通信指南》10-MQTT通信(Arduino开发)-CSDN博客
《ESP8266通信指南》9-TCP通信(Arudino开发)-CSDN博客
《ESP8266通信指南》8-连接WIFI(Arduino开发)(非常简单)-CSDN博客
《ESP8266通信指南》7-Arduino 开发8266的环境配置与示例代码烧录-CSDN博客
《ESP8266通信指南》6-创建TCP服务器(AT指令)-CSDN博客
《ESP8266通信指南》5-TCP通信透传模式(AT指令)-CSDN博客
《ESP8266通信指南》4-以Client进行TCP通信(AT指令)-CSDN博客
《ESP8266通信指南》3-常用AT指令详解-8266连WIFI-CSDN博客
《ESP8266通信指南》2-ESP8266 AT测试-CSDN博客
《ESP8266通信指南》1-ESP8266 简介-CSDN博客
1. 小节目标
使用 Lua 编写连接 WIFI 代码,烧录到 ESP8266 上,连接 WIFI 后打印 IP 地址。
2. 完整代码
在之前的小节中我们多次的提到电脑开移动热点的问题,这里就不在赘述,烧录代码可参考:《ESP8266通信指南》13-Lua 简单入门(打印数据)-CSDN博客
wificonf={}
wificonf.ssid="ct-iot"
wificonf.pwd="ctiot666"
wifi.setmode(wifi.STATION)
wifi.sta.config(wificonf)
wifi.sta.autoconnect(1)
wifi.sta.connect()wifi.eventmon.register(wifi.eventmon.STA_DISCONNECTED, function(T)printip = 0
end)wifi.eventmon.register(wifi.eventmon.STA_GOT_IP, function(T)if printip == 0 thenprint("+IP-"..T.IP)endprintip = 1
end)
3. 代码详解
- 初始化WiFi配置字典
wificonf={}
这里创建了一个空的Lua表(也称为字典)wificonf来存储WiFi的SSID和密码。
2. 设置WiFi的SSID和密码
wificonf.ssid="ct-iot"
wificonf.pwd="ctiot666"
这两行代码将WiFi的SSID设置为"ct-iot",密码设置为"ctiot666"。
3. 设置WiFi模式并连接
wifi.setmode(wifi.STATION)
设置WiFi模式为STA(Station),也就是客户端模式,它会连接到其他WiFi路由器。
wifi.sta.config(wificonf)
使用之前设置的wificonf字典来配置WiFi的SSID和密码。
wifi.sta.autoconnect(1)
设置自动连接WiFi。参数1表示启用自动连接。
wifi.sta.connect()
这行代码看起来有些冗余,因为当你设置autoconnect(1)后,WiFi应该会自动尝试连接。但在某些情况下,显式调用connect()可能有助于确保连接。
4. 注册WiFi事件处理程序
wifi.eventmon.register(wifi.eventmon.STA_DISCONNECTED, function(T) printip = 0
end)
当WiFi客户端断开连接时,这个函数将被调用。这里它设置了一个名为printip的变量(虽然这个变量没有在代码中明确定义,但我猜测它在代码的其他部分被定义或默认为0)为0。
wifi.eventmon.register(wifi.eventmon.STA_GOT_IP, function(T) if printip == 0 then print("+IP-"..T.IP) end printip = 1
end)
当WiFi客户端成功获取IP地址时,这个函数将被调用。如果printip是0(表示我们之前尚未打印IP地址),它将打印IP地址,并将printip设置为1,以确保我们不会再次打印相同的IP地址。
4. 结语
在本小节中介绍了 ESP8266 使用 Lua 编程连接 WIFI,并打印 ESP8266 的 IP 地址。
柴头物联网出品