野路子学习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 info
        • stop: no additional info
        • sta_connected: information about the client that connected:
        • mac: the MAC address
        • id: assigned station id (AID)
        • disconnected: information about disconnecting client
        • mac: the MAC address
        • probe_req: information about the probing client
        • from: MAC address of the probing client
        • rssi: Received Signal Strength Indicator value

 ESP32的WiFi函数

野路子学习esp32(十) NodeMcu-WIFi@a.宏万_第1张图片

 

我只列出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的方法,可能是官方取消了

野路子学习esp32(十) NodeMcu-WIFi@a.宏万_第2张图片

 

只能登陆路由器查看板子获取到的ip地址了

 

野路子学习esp32(十) NodeMcu-WIFi@a.宏万_第3张图片

 

我给板子绑定了固定ip这样就不会来回变了;

后续继续研究,还是发现了获取IP的方法;

并且还有很多有意思的;

可以设置回调函数

 

wifi.sta.on()    注册WiFi站状态事件回调。

野路子学习esp32(十) NodeMcu-WIFi@a.宏万_第4张图片

 

可以设置几个状态的回调

"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)

 

转载于:https://www.cnblogs.com/hongwans/p/9104956.html

你可能感兴趣的:(野路子学习esp32(十) NodeMcu-WIFi@a.宏万)