1. 程式人生 > >NodeMCU模組之WiFi

NodeMCU模組之WiFi

WIFI模組

重要:WiFi子系統由必須定期執行的後臺任務維護。任何超過15ms(毫秒)的功能或任務都可能導致WiFi子系統崩潰。為了避免這些潛在的崩潰,建議在執行任何超過15ms的任務或函式之前,使用wifi.suspend()掛起WiFi子系統。

esp8266連結WIFI(簡單)

wifi.setmode(wifi.STATION)
station_cfg = {}
station_cfg.ssid = WIFI名字
station_cfg.pwd = WIFI密碼
--這裡是把WIFI名字,密碼儲存到內部儲存中,斷電後也一直存在,好像,以後把上面的WIfi名字,密碼刪了都還儲存著
station_cfg.save = true
wifi.sta.config(station_cfg)
--連結wifi
--wifi.sta.connect()
--自動重連
wifi.sta.autoconnect(1)

wifi斷線後自動重連

1.通過wifi.sta.autoconnect(1)命令

這是最簡單的,就是把連結程式碼

wifi.sta.connect() 改為 wifi.sta.autoconnect(1)

這樣,在斷線後就能自動連結

2.通過監聽器獲知wifi連線狀態

註冊事件監聽器 wif.sta.eventMonReg() 開始監聽 wifi.sta.eventMonStart()

wifi.setmode(wifi.STATION)
wifi.sta.config('wifi賬號', 'wifi密碼')
wifi.sta.connect() 
status = nil 
wifi.sta.eventMonReg(wifi.STA_GOTIP, function()
    status = 'STA_GOTIP'
    print(status, wifi.sta.getip())
end)
--wifi.sta.eventMonStart(1000)函式表明檢測網路狀態的間隔是一秒 
wifi.sta.eventMonStart(1000)

一般8266用到的命令

1.設定wifi模式 wifi.setmode()

此命令引數:wifi.STATION 僅連結wifi模式 wifi.SOFTAP 僅作為熱點模式 wifi.STATIONAP 允許建立wifi熱點,並連結到其他wifi wifi.NULLMODE 關閉wifi 語法:

wifi.setmode(wifi.STATION)

2.設定wifi連結配置 wifi.sta.config()

引數:station_config 包含配置的表格 ,其中 ssid 小於32位元組的wifi名 pwd 0-64的字串wifi密碼 save 預設為true就把引數儲存到記憶體,false 不儲存 語法1:

station_cfg = {}
station_cfg.ssid = "wifi賬號"
station_cfg.pwd = "wifi密碼"
station_cfg.save = true
wifi.sta.config(station_cfg)

語法2(推薦):

wifi.sta.config("wifi賬號","wifi密碼")

WiFi modes 無線模式

連線到WiFi網路的裝置稱為工作站(STA)。連線到Wi-Fi由一個接入點(AP)提供,它充當一個或多個站點的集線器。另一端的接入點連線到有線網路。接入點通常與路由器整合在一起,提供從Wi-Fi網路到internet的訪問。每個接入點都由SSID(服務集識別符號)識別,該識別符號本質上是連線裝置(站點)到WiFi時選擇的網路名稱。 每個ESP8266模組都可以作為一個站執行,所以我們可以連線到WiFi網路。它還可以作為熱點(soft- ap),建立自己的WiFi網路。因此,我們可以將其他站點連線到這些模組。第三,ESP8266還可以同時在終端和熱點模式下執行。