主頁 > 軟體設計 > 物聯網 IOT 設備如何脫離資訊孤島?

物聯網 IOT 設備如何脫離資訊孤島?

2022-12-28 07:30:29 軟體設計

以下內容為本人的學習筆記,如需要轉載,請宣告原文鏈接 微信公眾號「englyf」https://mp.weixin.qq.com/s/tb5eOFNUZLtPPLipLAh3vA


本文大概 1435 個字,閱讀需花 4 分鐘
內容不多,但也花了一些精力
如要交流,歡迎評論區留言
謝謝你的點贊收藏分享

目前在家庭物聯網這一塊,絕大部分的電子消費品都是基于wifi聯網的設備,從商家那里達到消費者手中之后,簡單開機使用無法體現其全部價值,還是需要經過消費者給設備配網的程序,把設備從資訊孤島接入互聯互通的世界,

什么是配網?

買回來的電子消費品如果需要基于wifi聯網,那么用戶就需要先通過指定APP告訴自己的設備如何連接wifi(用戶名和密碼),設備才基于獲取的賬戶資訊接入網路,

設備成功聯網之后,距離能充分利用網路的功能還是有差距的,這些設備對于用戶來說就是專用的聯網設備,它不可以隨心所欲一會連接百度,一會又連接抖音,它的才能需要專用的服務器來輔助發揮,

一般物聯網設備,都需要在公網搭配專用服務器,基于這些服務器幫助用戶實作對設備的隨時隨地訪問,充分溝通用戶和設備,因此,接入服務器是第二步,為了服務器和設備安全通信,令牌資訊也不可或缺,

配網的一般程序

一般在配網的最開始階段,APP 先從服務器請求一個令牌資訊,獲得令牌回傳后,APP 可通過多種方式傳遞給設備,包括wifi SSID、密碼和令牌,接著 APP 開始嘗試從服務器獲取已激活的設備資訊串列,

然后,設備利用收到的相關資訊連接路由器,路由器為接入的設備分配新 IP 地址,設備成功接入網路,

設備連接服務器,開始設備認證程序,設備將三元組資訊接入服務器,服務器校驗資訊通過,令牌資訊上傳給服務器,完成安全激活,

服務器向 APP 回傳已激活的設備資訊串列,配網程序結束,

sequenceDiagram participant APP participant CloudServer participant Device participant Router APP ->> CloudServer : 請求令牌(Token) CloudServer ->> APP : 令牌(Token)回傳 loop 各種傳輸手段 APP ->> Device : Token、SSID、Password end APP ->> CloudServer : 請求已激活設備串列 Device ->> Router : 連接路由器 Router ->> Device : 分配 IP 地址 Device ->> CloudServer : 請求激活 CloudServer ->> Device : 激活回傳 CloudServer ->> APP : 回傳已激活設備串列

配網歸類

配網的主流方式有幾種,比如熱點配網、智能配網、藍牙配網等,不同方式之間的主要差異就在于從 APP 傳輸資訊給到設備的不同途徑,

熱點配網

熱點配網屬于 wifi 配網的一種,利用設定設備的 wifi 模組為熱點模式,這樣允許手機連接設備的熱點,使得手機和設備處于同一局域網中,APP 即可把令牌、路由器的 SSID 和密碼等資訊加密后在局域網內廣播,

設備通過接收局域網內的廣播包來決議并解密,獲取路由器的 SSID 和密碼,然后再切換到 Station 模式去連接路由器,連接成功后則可向云端發起激活請求,完成系結激活流程,

由于熱點英文簡稱 AP,所以也叫 AP 模式,

熱點配網流程:

sequenceDiagram participant Device participant APP Device ->> Device : 開啟熱點 APP ->> APP : 連接熱點 APP ->> Device : 廣播配網資訊:令牌、SSID、Password Device ->> Device : 接收決議 APP --> Device : 剩余配網程序

智能配網

智能配網,利用設定設備的 wifi 模組為監聽模式,不斷抓取無線報文并對其進行決議,提取需要的資訊,手機連接路由器,APP 把令牌、路由器的 SSID 和密碼等資訊按一定方式進行編碼,通過組播或廣播方式發射無線報文,

常用的編碼方式有兩種:

先用 UDP 資料包長度來編碼,然后通過 UDP 廣播發送,
先用 MAC 地址來編碼,然后通過 UDP 組播發送,

智能配網也叫快速配網,有的簡稱 EZ 配網,

相比于 AP 配網,EZ 配網雖然也屬于 wifi 配網的一種,但是對最終用戶來說更加便捷,缺點是,EZ 配網對路由器和手機硬體有要求,所以兼容性不足,以及無線干擾產生丟包的問題會更明顯,所以 EZ 配網無法保證 100% 成功,

智能配網流程:

sequenceDiagram participant Device participant Router participant APP APP ->> Router : 廣播配網資訊:令牌、SSID、Password Router ->> Device : 廣播配網資訊:令牌、SSID、Password Device ->> Device : 捕捉無線報文 Device ->> Device : 決議解密 APP --> Device : 剩余配網程序

藍牙配網

藍牙配網,意思就是手機 APP 通過藍牙通道傳輸配網相關資訊(令牌資訊、路由器的 SSID 和密碼等)給到設備,設備基于這些資訊完成配網的程序,

流程是,設備首先是通過藍牙廣播暴露設備相關的資訊,手機 App 接收并決議藍牙廣播包,如果廣播包中包含指定服務,則 APP 發起掃描回應請求,進一步獲取設備的詳細資訊,獲取到設備完整的資訊后在 App 顯示待配網設備,當用戶選擇系結設備時,App 與設備建立藍牙連接,把配網相關資訊通過藍牙通道發送給設備,設備獲取到配網資訊,完成激活流程,

藍牙配網的流程如下所示:

sequenceDiagram participant Device participant APP Device ->> APP : 藍牙廣播 APP ->> APP : 接收決議 APP ->> Device : 掃描回應請求 Device ->> APP : 完整詳細資訊 APP ->> APP : 顯示待配網設備 APP ->> Device : 建立藍牙連接 APP ->> Device : 配網資訊 APP --> Device : 剩余配網程序

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/540824.html

標籤:其他

上一篇:后臺開發進階:白話DDD從入門到實踐

下一篇:【軟體工程底層邏輯系列】建模的底層邏輯

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more