野路子学习esp32(十) NodeMcu-WIFi@a.宏万
esp32的wifi连接与esp8266的有区别;
wifi
ESP8266 and ESP32 differ a lot:
ESP8266
- events are captured via
wifi.eventmon.*
:wifi.eventmon.register(event[, function(T)])
wifi.eventmon.STA_CONNECTED
wifi.eventmon.STA_DISCONNECTED
wifi.eventmon.STA_AUTHMODE_CHANGE
wifi.eventmon.STA_GOT_IP
wifi.eventmon.STA_DHCP_TIMEOUT
wifi.eventmon.AP_STACONNECTED
wifi.eventmon.AP_STADISCONNECTED
wifi.eventmon.AP_PROBEREQRECVED
ESP32:
- events are captured via
wifi.on()
wifi.ap.on(event, callback)
event
:start
: no additional infostop
: no additional infosta_connected
: information about the client that connected:mac
: the MAC addressid
: assigned station id (AID)disconnected
: information about disconnecting clientmac
: the MAC addressprobe_req
: information about the probing clientfrom
: MAC address of the probing clientrssi
: Received Signal Strength Indicator value
ESP32的WiFi函数
我只列出esp32的代码
print("系统启动了") gpio.config({ gpio=2, dir=gpio.OUT }) gpio.write(2,1) print("设置wifi工作模式 连接到WiFi路由器时") wifi.mode(wifi.STATION,true) print("启动wifi") wifi.start() print("连接访问点(将配置保存到flash中)") station_cfg={} station_cfg.ssid="xz220" station_cfg.pwd="www.kyhmy.com" wifi.sta.config(station_cfg, true) print("连接") wifi.sta.connect() print("获取MAC") print(wifi.sta.getmac())
比较有意思的是,我没有发现获取IP的方法,可能是官方取消了
只能登陆路由器查看板子获取到的ip地址了
我给板子绑定了固定ip这样就不会来回变了;
后续继续研究,还是发现了获取IP的方法;
并且还有很多有意思的;
可以设置回调函数
wifi.sta.on() 注册WiFi站状态事件回调。
可以设置几个状态的回调
"start" "stop" "connected" "disconnected" "authmode_changed" "got_ip"
--register callback wifi.sta.on("got_ip", function(ev, info) print("NodeMCU IP config:", info.ip, "netmask", info.netmask, "gw", info.gw) end) --unregister callback wifi.sta.on("got_ip", nil)
上面的代码完成了获取Ip地址的操作,如果连上网络并且获取到了IP会调用这函数打印当前信息
也可以写成这样的 如果连接成功就点亮LED
print("wifi状态打印") --register callback wifi.sta.on("connected", function(ev, info) print("WiFi已经连接") gpio.write(2,1) end) wifi.sta.on("disconnected", function(ev, info) print("wifi连接已经断开") gpio.write(2,0) end)