野路子學習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的代碼

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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM