一 概要
Wi-Fi大家很早就接觸了,但是配網(wǎng)對(duì)很多人都比較陌生。因?yàn)樵缙诘腤i-Fi設(shè)備基本都是帶屏幕和輸入設(shè)備的(如筆記本/手機(jī)/PDA等),而配網(wǎng)只需要用戶直接輸入路由器的SSID/password即可,簡(jiǎn)單到被人忽略。
但是隨著物聯(lián)網(wǎng)的興起,Wi-Fi被大量應(yīng)用于沒(méi)有人機(jī)交互方式的設(shè)備中,如智能插座等物聯(lián)網(wǎng)終端產(chǎn)品中,而Wi-Fi(IEEE802.11)標(biāo)準(zhǔn)在設(shè)計(jì)之初是沒(méi)有考慮這種無(wú)人機(jī)交互方式的配網(wǎng)的,也就是沒(méi)有官方標(biāo)準(zhǔn)。配網(wǎng)成了一種類似于黑客找漏洞的技術(shù),這也就導(dǎo)致了市面上配網(wǎng)的方法多種多樣,且各家玩各家的,魚(yú)龍混雜,互不相通,整體體驗(yàn)偏低。
幾個(gè)概念:
狹義配網(wǎng):Wi-Fi設(shè)備獲取路由器信息(SSID,password等)并連接路由器的過(guò)程。
綁定:用戶手機(jī)APP賬號(hào)與被配網(wǎng)設(shè)備關(guān)聯(lián)的過(guò)程。
廣義配網(wǎng):狹義配網(wǎng)+綁定。
本文討論的配網(wǎng)如未注明都指狹義配網(wǎng),并省略云端參與流程。簡(jiǎn)化示意圖如下:

那么市面上的配網(wǎng)技術(shù)有哪幾種呢?按原理分商用的主要有:
- 一鍵配網(wǎng)(Smart Config)
1.1 廣播包長(zhǎng)方式
1.2 組播地址方式 - 設(shè)備熱點(diǎn)配網(wǎng)(AP)
- 藍(lán)牙配網(wǎng)(BLE)
- 手機(jī)熱點(diǎn)配網(wǎng)
- 路由器配網(wǎng)
- 零配
- 其他(如語(yǔ)音配網(wǎng)/攝像頭二維碼配網(wǎng)等)
二 詳細(xì)介紹
1 一鍵配網(wǎng)
流程
一鍵配網(wǎng)(Smart Config)主要原理為:
設(shè)備進(jìn)入sniffer模式(又叫混雜模式,即不過(guò)濾數(shù)據(jù)報(bào)文),監(jiān)聽(tīng)環(huán)境中所有的802.11報(bào)文;
設(shè)備需要在所支持的信道(通常1-13)上輪詢監(jiān)聽(tīng)(因?yàn)樵O(shè)備不知道用戶手機(jī)和目標(biāo)路由器的信道);
捕獲到符合配網(wǎng)規(guī)則的數(shù)據(jù)報(bào)文后停止信道輪詢,嘗試在在此信道上接收完成所有報(bào)文;
當(dāng)前信道接收失敗或超時(shí)重新回到步驟2;
-
數(shù)據(jù)報(bào)文接收完成則關(guān)閉sniffer模式,回到station模式并開(kāi)始嘗試連接路由器,狹義的配網(wǎng)過(guò)程完成。smart_config.png
優(yōu)點(diǎn):
用戶操作簡(jiǎn)單,體驗(yàn)好(成功時(shí))。
缺點(diǎn):
對(duì)手機(jī),路由器都有嚴(yán)格的兼容性要求,比如有些路由器默認(rèn)關(guān)閉廣播/組播報(bào)文轉(zhuǎn)發(fā)使得設(shè)備收不到路由器轉(zhuǎn)發(fā)的報(bào)文;手機(jī)以5G頻段連接到路由器,2.4G的設(shè)備壓根收不到包等,諸如此類不可控因素導(dǎo)致整體兼容性差,配網(wǎng)成功率低
總結(jié)
物聯(lián)網(wǎng)剛興起時(shí)大多數(shù)廠商的默認(rèn)選擇,在飽受用戶投訴之后慢慢被棄用。
2 設(shè)備熱點(diǎn)配網(wǎng)
設(shè)備熱點(diǎn)配網(wǎng)(AP配網(wǎng))很好理解:
設(shè)備端Wi-Fi進(jìn)入softAP模式,建立一個(gè)約定名稱的AP熱點(diǎn);
APP端提示用戶手動(dòng)將手機(jī)連接到1中設(shè)備建立的熱點(diǎn);
連接建立后,手機(jī)與設(shè)備建立局域網(wǎng);
手機(jī)通過(guò)UDP/TCP將配網(wǎng)信息直接傳給設(shè)備;
-
設(shè)備拿到配網(wǎng)信息后切換回station模式(STA模式),開(kāi)始連接路由器。
device_ap.png
優(yōu)點(diǎn):
成功率高,可靠。
缺點(diǎn):
用戶操作相對(duì)一鍵配網(wǎng)復(fù)雜度略高(iPhone用戶需要手動(dòng)跳轉(zhuǎn)到無(wú)線局域網(wǎng)設(shè)置界面連接app界面提示的設(shè)備熱點(diǎn))。
總結(jié)
中庸可靠是其取勝之道,在昔日霸主一鍵配網(wǎng)由于成功率不高被廣為吐槽后,設(shè)備熱點(diǎn)配網(wǎng)在市場(chǎng)上的占有率穩(wěn)定提升。
項(xiàng)目使用效果如下:

3 手機(jī)熱點(diǎn)配網(wǎng)
這是熱點(diǎn)配網(wǎng)(softAP)的一個(gè)變種,熱點(diǎn)不由設(shè)備創(chuàng)建而是由手機(jī)創(chuàng)建。
優(yōu)點(diǎn):
設(shè)備無(wú)需支持熱點(diǎn)模式,端上開(kāi)發(fā)工作量較低;可與一鍵配網(wǎng)共存(同時(shí)使能)
缺點(diǎn):
用戶體驗(yàn)不佳,尤其在iOS設(shè)備上APP無(wú)法自動(dòng)創(chuàng)建熱點(diǎn),需要用戶跳轉(zhuǎn)設(shè)置界面手動(dòng)改設(shè)備名并手動(dòng)打開(kāi)熱點(diǎn)。
總結(jié)
由于一鍵配網(wǎng)本身占比降低,這個(gè)替補(bǔ)方案的出場(chǎng)率也就更低了。
4 藍(lán)牙配網(wǎng)
藍(lán)牙配網(wǎng)整體流程跟設(shè)備熱點(diǎn)配網(wǎng)差不多。只不過(guò)用ble替換了設(shè)備端的熱點(diǎn),理論上還是一種基于點(diǎn)對(duì)點(diǎn)連接的配網(wǎng)方式。

優(yōu)點(diǎn):
兼容性較好,成功率高。
用戶體驗(yàn)好。
缺點(diǎn):
成本略高。相對(duì)與其他配網(wǎng)模式,需要額外增加藍(lán)牙硬件成本。
總結(jié)
適合與本身既有藍(lán)牙又有Wi-Fi的應(yīng)用場(chǎng)景的設(shè)備,或者模組成本相對(duì)不是那么敏感的土豪設(shè)備。隨著低成本BLE的推行,其占有率逐漸提升。
項(xiàng)目使用效果如下:

5 路由器配網(wǎng)
路由器配網(wǎng)的思路就是路由器在配網(wǎng)模式下開(kāi)啟一個(gè)特定的用于配網(wǎng)的SSID,設(shè)備發(fā)現(xiàn)了這個(gè)熱點(diǎn)后連接這個(gè)熱點(diǎn)以獲取配網(wǎng)信息,流程跟手機(jī)熱點(diǎn)配網(wǎng)相似。其簡(jiǎn)化流程圖如下:

優(yōu)點(diǎn):
用戶體驗(yàn)較好。
缺點(diǎn):
應(yīng)用面窄,需滿足設(shè)備跟路由器都為同一方案的場(chǎng)景。
總結(jié)
適合端上整套生態(tài)打法的廠商。
6 零配
這是一種充分利用待配設(shè)備/及主配設(shè)備的高權(quán)限優(yōu)勢(shì)的配網(wǎng),要求主配和待配設(shè)備的應(yīng)用程序都能發(fā)送和接收802.11管理幀。直接使用802.11 的管理幀(probe request/response)攜帶配網(wǎng)信息,從而實(shí)現(xiàn)高效配網(wǎng)。簡(jiǎn)化原理如下:

優(yōu)點(diǎn):
用戶體驗(yàn)好,成功率高,如智能音響對(duì)智能設(shè)備配網(wǎng)即可使用此方式。
缺點(diǎn):
應(yīng)用面窄,需要滿足路由器下存在已經(jīng)配網(wǎng)的同方案設(shè)備的要求。
總結(jié)
設(shè)計(jì)上本身高效可靠,但是由于手機(jī)APP權(quán)限問(wèn)題,無(wú)法通過(guò)第三方程序組裝或者接收Wi-Fi管理幀,限制了其在手機(jī)上的應(yīng)用(手機(jī)不能當(dāng)主配),也就使得其只能成為一種輔助或者特定領(lǐng)域的配網(wǎng)方式。
三 總結(jié)對(duì)比
通過(guò)一個(gè)表格對(duì)比各配網(wǎng)方式特點(diǎn):

四 發(fā)展方向
除了上面列出的配網(wǎng)方式外,還有其他一些方向供大家參考。
- Wi-Fi P2P。使用Wi-Fi Direct技術(shù)直接將配網(wǎng)信息通過(guò)手機(jī)傳給設(shè)備。
缺點(diǎn):無(wú)奈僅Android手機(jī)支持Wi-Fi Direct技術(shù),iOS尚不支持。而且不是所有的安卓手機(jī)都支持,導(dǎo)致手機(jī)兼容性差,一條腿走路注定了無(wú)法普及。
- 蘋(píng)果AWDL協(xié)議。AWDL可以認(rèn)為是蘋(píng)果私有的端上P2P協(xié)議,如Air Drop即基于這種協(xié)議。無(wú)奈協(xié)議不開(kāi)源,即使對(duì)協(xié)議進(jìn)行破解,使用起來(lái)也存在法務(wù)風(fēng)險(xiǎn)。不然可以跟1中方式配合使用,形成互補(bǔ)。
因此,上面兩種方式在通用配網(wǎng)中不會(huì)成大氣候。
- 針對(duì)特定場(chǎng)景的配網(wǎng):
語(yǔ)音配網(wǎng)(使用本地語(yǔ)音識(shí)別技術(shù)給帶語(yǔ)音識(shí)別模塊的設(shè)備如智能音響配網(wǎng))。
針對(duì)智能攝像頭的二維碼配網(wǎng)(攝像頭主動(dòng)掃手機(jī)APP生成的二維碼,二維碼里面包含SSID/password等信息,智能攝像頭獲取信息后就可以嘗試路由器)等,在本公司的項(xiàng)目中有用到此方式。
借助了自己獨(dú)特的軟硬件優(yōu)勢(shì)在相應(yīng)領(lǐng)域提供體驗(yàn)上佳的配網(wǎng)體驗(yàn),是物聯(lián)網(wǎng)發(fā)展對(duì)細(xì)分市場(chǎng)高度定制和優(yōu)化的表現(xiàn)。
- DPP(Device Provisioning Protocol)。Wi-Fi Easy Connect的重要組成部分,Wi-Fi Alliance官方制定。由4個(gè)步驟組成:
補(bǔ)充
經(jīng)過(guò)上面的步驟,智能設(shè)備已經(jīng)連接上路由器,下一步可能需要在局域網(wǎng)中,發(fā)現(xiàn)智能設(shè)備,以便手機(jī)與智能設(shè)備建立鏈接,做進(jìn)一步的交互;這個(gè)時(shí)候就需要用到局域網(wǎng)相互發(fā)現(xiàn)技術(shù)了,可以參考之前的文章
iOS Bonjour 客戶端基本使用及完美解決各種坑~
Android 安卓Bonjour(NSD服務(wù)) 客戶端基本使用-->填坑-->進(jìn)階使用
flutter udp multicast 組播
補(bǔ)充二:藍(lán)牙配網(wǎng)
模塊支持搜索附近WiF且支持藍(lán)牙:
這種方式需要設(shè)備內(nèi)置的聯(lián)網(wǎng)模塊本身支持搜索附近的WiFi熱點(diǎn),并且最好同時(shí)支持藍(lán)牙,可以方便通過(guò)藍(lán)牙連接把設(shè)備搜索到的WiFi信息發(fā)送給手機(jī)app,手機(jī)端可以選擇設(shè)置已經(jīng)發(fā)現(xiàn)WiFi熱點(diǎn),設(shè)置WiFI密碼后即可進(jìn)行對(duì)設(shè)備的配網(wǎng)。這種方式就不要求手機(jī)是否開(kāi)啟定位,甚至不需要手機(jī)連接了WiFi,而且不用考慮是否是5G頻段的WiFi,因?yàn)樵O(shè)備能搜索到的WiFi熱點(diǎn)肯定也支持連接WiFi熱點(diǎn)了;不過(guò)這種方式成本高,需要設(shè)備同時(shí)支持WiFi模塊和藍(lán)牙模塊。
結(jié)尾
今天的分享至此接近尾聲嘍,小伴們,覺(jué)得有點(diǎn)用的話,或者已經(jīng)看到這里面來(lái)的請(qǐng)點(diǎn)贊加關(guān)注吧~~ 后續(xù)分享更多iOS原生技術(shù)及物聯(lián)網(wǎng)技術(shù)相關(guān)文章。如果有疑問(wèn)的話,歡迎在下方留言~

