1. 程式人生 > >物聯網 WIFI 一鍵配置原理(smartconfig) ESP8266/QCA4004 參考

物聯網 WIFI 一鍵配置原理(smartconfig) ESP8266/QCA4004 參考

物聯網 WIFI 一鍵配置原理(smartconfig) ESP8266/QCA4004

物聯網WIFI

嵌入式愛好者(小子圖) · 2015-09-05 11:07

物聯網 WIFI 一鍵配置原理(smartconfig) ESP8266/QCA4004


自從物聯網問世以來,如何使得物能夠聯網有了很多的方式,目前運用非常廣的WIFI,今天就總結下自這個方面,也對於有需要的盆友也希望有拋磚引玉之效果。

來看個知乎上的提問,很有意思!

問題:

買了BroadLink的智慧插座,發現有一個很神奇的一鍵配置功能。簡單的說就是:當智慧插座還沒有連上WiFi的時候,此時通過手機App可以將WiFiSSID及密碼一鍵配置到智慧插座上去。




知乎有人回答,看到比較好的解答是:

解析一鍵配置,其大體工作原理如下

1.裝置進入初始化狀態,開始收聽附近的 WiFi 資料包。

2.手機/平板設定 WiFi 名字和密碼後,傳送 UDP 廣播包。

3.裝置通過 UDP 包(長度)獲取配置資訊,切換網路模式,連線上家裡 WiFi,配置完成。

Broadlink最新的插座SP2 RM2e-Air等用的是Marvell Easy-Connect方案

提到的 Broadlink,第一代智慧插座產品 Sp1 使用的是 TI 的方案:430 微控制器+ CC3000 WiFi 晶片(具體晶片 MSP430F5309 +CC3000MOD)。

到了第二代插座產品 Sp2 使用的是 Marvell 的方案:Cortex-M3 

微控制器 + 低功耗 Wifi 晶片(具體晶片 88MC200 + 88W8782)。

接下來我們來分析一下原理

物聯網智慧單品路線:智慧硬體+APP+

APP將要配置上的路由的wifi使用者名稱、密碼進入智慧硬體,目前各個WIFI晶片廠家基本採用以下幾種方式

1TI smartconfig 

2)AP模式: APP 配置 手機連線到 智慧硬體(WIFI晶片 的AP),構建成一個區域網,當然該區域網是不能上網的,但是區域網內的各個裝置的通訊是OK

此時 該區域網內一般有三個裝置(WIFI晶片工作在AP模式 或者是AP+STATION模式)手機和智慧硬工作在STATION模式。

smartconfig

也就是所謂的一鍵配置,速度比AP模式快,為什麼呢?請看下面分解。

所謂的smartconfig就是:

l手機APP端傳送包含WIFI 使用者名稱 WIFI密碼的 UDP廣播包或者組播包;

l智慧終端的WIFI晶片可以接收到該UDP包,只要知道UDP的組織形式,就可以通過接收到的UDP包解密 出WIFI 使用者名稱、密碼;

l然後智慧硬體配置到指定的WIFI AP 上。

AP模式比較不好的就是配置時間比smartconfig要長,手機連線的WIFI接入點會變化,如果配置不成功,手機就無法上網,需要在手動配置WIFI,手機才能上網。

ESP8266 晶片:SDK提供兩種連線方式,

1)smartconfig

採用UDP廣播模式(UDP接收IP地址是255.255.255.255)esp8266先scan 下AP ,得到AP的相關資訊,如工作的channel,然後配置wifi晶片工作在剛才scan到的channel上去接收UDP包,如果沒有接收到,繼續配置ESP8266工作在另外的channel上,如此迴圈,直到收到UDP包為止,為什麼要提前進行SCAN 下WIFI AP呢?就是為了提高配置效率。假設當前網路中只有兩個AP,一個AP工作在CHANEL1,另外個 ap工作在channel13,我們現在需要配置智慧硬體連線到AP2 ,就是channel13上,如果不提前scan就需要從1--13掃描浪費時間。就是需要從channel1-chane2---...channnel13一直掃描了,如果掃描了AP,晶片馬上從AP CHANNNEL1 到channel13加快獲取到UDP包;




2) AP接入

AP 是 (Wireless) AccessPoint 的縮寫,即 (無線) 訪問接入點。簡單來講就像是無線路由器一樣,裝置開啟後進入 AP 模式,在手機的網路列表裡面,可以搜尋到類似 TPLINK_XXX 的名字(SSID)。



QCA4004 跟ESP8266不同,它不進行行前期AP掃描,直接從通道1-2--。。13 迴圈配置區接收UDP包,並且UDP包採用組播。

PS:

這些看似不同的方案實質上思路是一致的,如剛才提到的 Broadlink,第一代智慧插座產品 Sp1 使用的是 TI 的方案:430微控制器+ CC3000 WiFi 晶片(具體晶片MSP430F5309 + CC3000MOD)。
到了第二代插座產品 Sp2 使用的是 Marvell 的方案:Cortex-M3 微控制器 + 低功耗 Wifi 晶片(具體晶片88MC200 + 88W8782)。


至於 Broadlink 要換方案的原因,拋開價格,功耗因素,WiFi 相容性這塊也值得去考慮。對比這 2 個方案還會發現 Marvell 的晶片相容性要勝出一些(Marvell 的 88W8782 支援 IEEE 802.11 a/b/g/n,TI 的 CC3000 只支援 IEEE802.11 b/g)。

隨著無線路由器雙頻 WiFi(可以有兩個WiFi 名字,其中一個 5G,一個 2.4G)的越來越多,也許下一次智慧硬體公司更換 WiFi 方案時,裝置支援 5G 也會是個選擇因素了(換個支援 5G 的晶片方案)。

再往下暢想,對於手機廠商來講,可以進一步的優化基於一鍵配置的連線 WiFi 方式:藉助於手機共享自身連入的 wifi(SSID)給裝置,直接給使用者提供免配置體驗(實際是後臺替你做了一鍵配置的流程)。