分享個WIFI 一鍵配置原理-以ESP8266為例
1wifi模組可以連線路由器,是不是就能實現遠端控制呢?
wifi模組可以連線路由器,說明實現路由器的區域網控制沒有問題。
2 遠端控制的過程中,自己家裡面搭建伺服器可以嗎?
遠端控制需要伺服器,但是使用者通過自己的電腦在家裡搭建伺服器實現的可能性很小,因為搭建伺服器需要公網的Ip還有伺服器相關的軟體開發,並且維護過程是一個成本較高的開支。
3 現在市面上有哪幾種可以實現遠端控制?
方式一:自己買伺服器硬體,搭建在騰訊伺服器百度伺服器中心等(方便維護),企業自身開發伺服器軟體等。(超大型企業)
方式二:通過租用阿里雲,自己寫伺服器的軟體實現。(企業使用者,難度較大)
方式三:通過一些P2P平臺,實現穿透。但是國內的這項技術相對不夠準確。(小部分企業使用)
方式四:通過第三方平臺實現,比如機智雲等。(企業使用者和個人開發者)
方式五:通過路由器的花生殼技術解析,實現對映的過程。(業餘愛好者)
從上面可以很清楚的看出,對於一般企業來說,想要讓裝置聯網,從成本、維護、週期等等角度考慮,選擇機智雲之類的方案是最快捷、安全可靠的聯網方式之一。
就聯網方面,目前運用非常廣的WIFI,今天就總結下這個方面,也對於有需要的盆友也希望有拋磚引玉之效果。
來看個知乎上的提問,很有意思!
問題:
用機智雲開發了一個智慧插座,發現有一個很神奇的一鍵配置功能。簡單的說就是:當智慧插座還沒有連上WiFi的時候,此時通過手機App可以將WiFi的SSID及密碼一鍵配置到智慧插座上去。
知乎有人回答,看到比較好的解答是:
解析一鍵配置,其大體工作原理如下:
1. 裝置進入初始化狀態,開始收聽附近的 WiFi 資料包。
2. 手機/平板設定 WiFi 名字和密碼後,傳送 UDP 廣播包。
3. 裝置通過 UDP 包(長度)獲取配置資訊,切換網路模式,連線上家裡 WiFi,配置完成。
接下來我們來分析一下原理
物聯網智慧單品路線: 智慧硬體+APP+雲
APP將要配置上的路由的wifi使用者名稱、密碼進入智慧硬體,目前各個WIFI晶片廠家基本採用以下幾種方式:
1)SmartConfig
2)AP模式: APP 配置 手機連線到 智慧硬體(WIFI晶片 的AP),構建成一個區域網,當然該區域網是不能上網的,但是區域網內的各個裝置的通訊是OK的。
此時 該區域網內一般有三個裝置(WIFI晶片工作在AP模式 或者是AP+STATION模式),手機和智慧硬工作在STATION模式。
SmartConfig也就是所謂的一鍵配置,速度比AP模式快,為什麼呢?請看下面分解。
所謂的SmartConfig就是:
-
手機APP端傳送包含WIFI 使用者名稱 WIFI密碼的 UDP廣播包或者組播包;
-
智慧終端的WIFI晶片可以接收到該UDP包,只要知道UDP的組織形式,就可以通過接收到的UDP包解密 出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接入
AP 是 (Wireless) AccessPoint 的縮寫,即 (無線) 訪問接入點。簡單來講就像是無線路由器一樣,裝置開啟後進入 AP 模式,在手機的網路列表裡面,可以搜尋到類似 TPLINK_XXX 的名字(SSID)。
隨著無線路由器雙頻 WiFi(可以有兩個 WiFi 名字,其中一個 5G,一個 2.4G)的越來越多,也許下一次智慧硬體公司更換 WiFi 方案時,裝置支援 5G 也會是個選擇因素了(換個支援 5G 的晶片方案)。
再往下暢想,對於手機廠商來講,可以進一步的優化基於一鍵配置的連線 WiFi 方式:藉助於手機共享自身連入的 wifi(SSID)給裝置,直接給使用者提供免配置體驗(實際是後臺替你做了一鍵配置的流程)。
當然也會有其他連線方式,諸如使用 NFC,聲波識別等告訴智慧裝置要配置 WiFi 的名字和密碼,如叮咚音響就是這樣做的。
轉載自——http://bbs.elecfans.com/jishu_1150853_1_5.html
詳細的AT一鍵配置WIFI和資料可以參考安信可官網:http://wiki.ai-thinker.com/esp8266/examples/at_demo?s[]=smartconfig
相關文章
- 《龍族幻想》UI設計分享——以夥伴招募為例UI
- 一個富文字編輯器quill 以Vue專案為例UIVue
- 以SimpleWiFi串列埠轉WiFi模組S2WM02為例說明ModbusTCP與ModbusRTU區別WiFi串列埠TCP
- [python][flask] Flask 入門(以一個部落格後臺為例)PythonFlask
- [分享]laravel自定義檔案系統,以企鵝家cos為例Laravel
- 大型專案研發經驗分享:以3A遊戲為例遊戲
- 營銷活動製作過程分享——以321大促為例
- 閱讀原始碼很重要,以logback為例,分享一個小白都能學會的讀原始碼方法原始碼
- Mac下配置Java開發環境以Java 8 為例MacJava開發環境
- 多位開發者以產品為例談三消遊戲的設計關鍵遊戲
- 遞迴、迭代和動態規劃:以九宮格鍵盤為例遞迴動態規劃
- 分享一個SQLite 效能優化例項SQLite優化
- 為什麼物件導向程式設計是有用的?(以一個角色扮演遊戲為例)物件程式設計遊戲
- 以QT為例談環境搭建QT
- 模擬登陸——以github為例Github
- RabbitMQ的使用--以topic路由為例MQ路由
- 編寫程式碼的若干個基本規則(以Java為例)Java
- Docker容器配置Nginx例項分享DockerNginx
- 從零開發一個單機儲存引擎-以VDL Logstore設計為例儲存引擎
- 支付寶小程式面向個人開放了!我將以一個 Demo 為例講解整個流程。
- Jboss3.0-Tomcat4.03的資料庫的配置(以Oracle為例) (轉)S3Tomcat資料庫Oracle
- 以《荒野亂鬥》為例,一文搞懂介面動畫曲線動畫
- 一文吃透JVM分代回收機制(以SerialGC為例)JVMGC
- 【譯】MongoDb vs Mysql—以NodeJs為例MongoDBMySqlNodeJS
- php 傳送郵件(以QQ為例)PHP
- 建立索引的原則-以innodb為例索引
- oracle一個例項配置多個listener或多個埠Oracle
- 分享一個Laravel中的管道的使用例項Laravel
- oracle一個listener偵聽多個例項的配置Oracle
- 通過 TensorFlow 構建您的第一個深度學習分類器(以狗為例)!深度學習
- 輕鬆整合系列三:如何在 KubeBlocks 中配置引數模板|以 Oracle MySQL 為例BloCOracleMySql
- WiFi基礎(四):WiFi工作原理及WiFi接入過程WiFi
- charles 用電腦分享 wifi 為什麼抓不了包?WiFi
- oracle一個別例項配置多個listener或多個埠Oracle
- jafka安裝配置和啟動一個自帶例項和手寫一個例項
- RDF 和 SPARQL 初探:以維基資料為例
- Flutter 外掛開發:以微信SDK為例Flutter
- 網頁效能 CaseStudy:以 PressOne 首頁為例網頁