自從物聯網 問世以來,如何使得物 能夠聯網 有了很多的方式,目前運用非常廣的WIFI,今天就總結下自這個方面,也對於有需要的盆友 也希望有拋磚引玉之效果。
物聯網: 智能硬件+APP+雲
APP 需要配置wifi用戶名 密碼進入智能硬件,目前各個WIFI芯片廠家基本采用以下幾種方式
1)TI 的smartconfig
2)AP模式: APP 配置 手機連接到 智能硬件(WIFI芯片 的AP),構建成一個局域網,當然該局域網是不能上網的,但是局域網內的各個設備的通信是OK
此時 該局域網內一般有三個設備(WIFI芯片工作在AP模式 或者是AP+STATION模式) 手機 智能硬件STATION模式---智能硬件的AP
先來說smartconfig吧 也就是所謂的一鍵配置,速度比AP模式快,為什么呢?請看下面分解。
所謂的smartconfig就是
手機APP端發送包含WIFI 用戶名 WIFI密碼的 UDP 廣播包或者組播包,
智能終端的WIFI芯片可以接收到該UDP包,只要知道UDP的組織形式,就可以通過接收到的UDP包解密 出WIFI 用戶名 密碼,
然后智能硬件 配置受到的WIFI 用戶名 密碼到指定的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接入
QCA4004芯片:kuaifi 連接也就是smartconfig 采用UDP組播模式( IP地址是組播即可,如239.0.0.254)
UDP廣播模式跟組播的差異就不用說了,這是基本的TCP/IP東西,如果從安全角度看 UDP組播會安全點,當然目前 這方面還不需要考慮。
4004 跟ESP8266不同,它不行前期AP掃描,直接從1-2--。。13 循環配置區接收UDP包,並且UDP包采用組播
寫了兩個例子,加深理解
1) android 的app 用於配置4004 也就是UDP組播例子
2)UBUNTU LINUX下UDP 組播例子
UDP 組播例子源代碼 可以百度下,非常多,我也是在那個上面修改的,理解了原理 最關鍵。
程序運行后 用wireshark 抓包分析下
見附件圖片!!
