日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ESP8266学习笔记6:ESP8266规范wifi连接操作

發(fā)布時間:2023/12/2 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ESP8266学习笔记6:ESP8266规范wifi连接操作 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、前言

我整理了從2015年至今關(guān)于ESP8266的學(xué)習(xí)筆記,梳理出來了開發(fā)環(huán)境、基礎(chǔ)功能、進(jìn)階學(xué)習(xí)三大部分。方便自己和他人。可點(diǎn)此查看,歡迎交流。

之前在筆記4《ESP8266的SmartConfig》http://blog.csdn.net/iotisan/article/details/54849410中,做了smartconfig例程的測試。

這個例程是因為DEMO演示的,離商用還有段距離。

幾周前,有網(wǎng)友就問我esp8266又一次上電無法自己主動連接之前配置的路由器。這確實是眼下DEMO最缺的一個功能。當(dāng)首次將設(shè)備接入wifi之后,設(shè)備應(yīng)該保存住SSID和PWD,在興許上電時能自己去連接wifi,而不是例程中每次上電都來一次。

當(dāng)時忙別的事情沒做。今天抽時間做了下處理。

事實上處理還挺簡單,寫篇筆記總結(jié)下,規(guī)范wifi連接操作。

本文作者twowinter,轉(zhuǎn)載請注明作者:http://blog.csdn.net/iotisan/

二、編程思路

1. 路由器參數(shù)的保存和查詢

在DEMO中,設(shè)置完STATION模式后,就直接smartconfig。我們應(yīng)當(dāng)在smartconfig之前做一個參數(shù)推斷,推斷是否有保存的路由器信息。有保存,就連接路由器。沒保存,才smartconfig。

void user_init(void) {os_printf("SDK version:%s\n", system_get_sdk_version());wifi_set_opmode(STATION_MODE);smartconfig_start(smartconfig_done); }

關(guān)于這個路由器參數(shù)存儲,查了下官方手冊。發(fā)現(xiàn)SDK還是非常貼心的。已經(jīng)有API能夠直接保存和查詢了。而不須要我們再去做flash參數(shù)存儲。

兩個關(guān)鍵API擺出來。

保存

wifi_station_set_config 功能:設(shè)置 WiFi station 接口的配置參數(shù)。并保存到 flash

查詢

wifi_station_get_config_default 功能:查詢 WiFi station 接口保存在 flash 中的配置參數(shù)。

2. 已有路由器參數(shù)時的處理

沒有路由器參數(shù)時的處理非常easy,直接smartconfig。

而當(dāng)有路由器參數(shù)時,還須要做些處理。
我的思路是。以當(dāng)前的參數(shù)去搜索下環(huán)境中是否存在這個AP。沒有的話再啟動smartconfig。有的話就直接connect。

wifi_station_scan 功能:獲取AP的信息

三、代碼操作

1.初始化時推斷FLASH中是否存有有效的路由器參數(shù)。

void user_init(void) {wifi_set_opmode(STATION_MODE);wifi_station_get_config_default(&s_staconf);if (os_strlen(s_staconf.ssid) != 0) {os_printf("user_scan\n");system_init_done_cb(user_scan);} else {os_printf("smartcfg\n");smartconfig_start(smartconfig_done);} }

2.已存有路由器參數(shù),去搜索看看AP當(dāng)前是否存在。

void ICACHE_FLASH_ATTR user_scan(void) {struct scan_config config;os_memset(&config, 0, sizeof(config));config.ssid = s_staconf.ssid;wifi_station_scan(&config, user_scan_done);}

3.之后的操作就看個人處理了。

規(guī)范的處理是要開啟一個線程,周期性檢測AP的連接狀態(tài),處理不同的錯誤狀態(tài)。

我就不展開了。

四、測試效果

首次啟動時,進(jìn)行SmartCfg。

<Time:2015-08-21 10:52:37:703 Len:0001>:<Time:2015-08-21 10:52:52:687 Len:0315>:rl<Time:2015-08-21 10:52:52:906 Len:0078>:dsdSSDK version:1.2.0 smartcfg mode : sta(18:fe:34:f8:8f:cf) add if0 f 0, <Time:2015-08-21 10:52:55:000 Len:0015>:scandone f 0, <Time:2015-08-21 10:52:57:187 Len:0034>:scandone SC_STATUS_FIND_CHANNEL<Time:2015-08-21 10:53:08:296 Len:0106>: TYPE: ESPTOUCH V2.4 T|PHONE MAC: T|AP MAC : SC_STATUS_GETTING_SSID_PSWD SC_TYPE:SC_TYPE_ESPTOUCH<Time:2015-08-21 10:53:11:250 Len:0026>:T|SCAN SSID: Xiaomi_5BAB<Time:2015-08-21 10:53:11:578 Len:0086>:T|pswd: 1234567890 T|ssid: Xiaomi_5BAB T|bssid: 8c be be 28 5b ac SC_STATUS_LINK<Time:2015-08-21 10:53:11:656 Len:0008>:f -240, <Time:2015-08-21 10:53:13:906 Len:0068>:scandone no Xiaomi_5BAB found, reconnect after 1s reconnect f 0, <Time:2015-08-21 10:53:16:031 Len:0010>:scandone<Time:2015-08-21 10:53:17:031 Len:0109>:add 0 aid 4 pm open phy_2,type:2 0 0 cnt connected with Xiaomi_5BAB, channel 3 dhcp client start...<Time:2015-08-21 10:53:19:562 Len:0054>:ip:192.168.31.232,mask:255.255.255.0,gw:192.168.31.1<Time:2015-08-21 10:53:22:515 Len:0047>:SC_STATUS_LINK_OVER Phone ip: 192.168.31.199

第二次上電。自己主動獲取AP進(jìn)行連接。

<Time:2015-08-21 10:53:52:078 Len:0001>:<Time:2015-08-21 10:53:58:171 Len:0315>:l<Time:2015-08-21 10:53:58:390 Len:0094>:d;lSSDK version:1.2.0 user_scan mode : sta(18:fe:34:f8:8f:cf) add if0 f 0, scandone f 0, <Time:2015-08-21 10:54:00:531 Len:0063>:scandone (4,"Xiaomi_5BAB",-45,"8c:be:be:28:5b:ac",3) f -240, <Time:2015-08-21 10:54:00:578 Len:0026>:reconnect scandone f 0, <Time:2015-08-21 10:54:02:703 Len:0010>:scandone<Time:2015-08-21 10:54:03:656 Len:0109>:add 0 aid 4 pm open phy_2,type:2 0 0 cnt connected with Xiaomi_5BAB, channel 3 dhcp client start...<Time:2015-08-21 10:54:06:421 Len:0054>:ip:192.168.31.232,mask:255.255.255.0,gw:192.168.31.1

五、總結(jié)

that’s all.


轉(zhuǎn)載于:https://www.cnblogs.com/gccbuaa/p/7289198.html

總結(jié)

以上是生活随笔為你收集整理的ESP8266学习笔记6:ESP8266规范wifi连接操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。