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


自從物聯網 問世以來,如何使得物  能夠聯網 有了很多的方式,目前運用非常廣的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 抓包分析下

 見附件圖片!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM