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_CONNECTEDwifi.eventmon.STA_DISCONNECTEDwifi.eventmon.STA_AUTHMODE_CHANGEwifi.eventmon.STA_GOT_IPwifi.eventmon.STA_DHCP_TIMEOUTwifi.eventmon.AP_STACONNECTEDwifi.eventmon.AP_STADISCONNECTEDwifi.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)
