首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

小米 IoT 設備通信原理:手機 App 如何通過 WiFi 控制空氣淨化器?

     編輯:程式設計綜合問答

整體架構

小米智能家居採用 局域網廣播發現 + TCP/UDP 控制指令 的混合模式,核心流程如下:

  1. 設備入網:淨化器連上 WiFi 後,向雲端註冊,同時在局域網發送 mDNS/SSDP 廣播宣告存在。
  2. App 發現:手機 App 在同一局域網監聽廣播,或向雲端查詢綁定設備列表,獲取設備 IP、token、did 等信息。
  3. 本地通信:App 與設備建立 TCP 長連接(或 UDP),使用小米私有協議(基於 JSON/二進制)下發控制指令,如 {"method":"set_power","params":["on"]}。
  4. 狀態上報:設備執行後主動上報新狀態,App 更新 UI。

關鍵技術點

1. 局域網廣播發現

  • App 發送 UDP 廣播包到 255.255.255.255:54321(或組播 224.0.0.50)。
  • 設備收到回應自身信息:IP、MAC、model、固件版本。
  • Root 手機可發送原始 ARP 掃描全網 IP,再用 UDP 探測是否為小米設備,極大加快發現速度。

2. 安全認證

  • 每個設備出廠燒錄唯一 token (16 字節) 和 did。
  • 指令採用 AES-CBC 加密,Key 由 token 派生,防止竊聽與重放攻擊。
  • 雲端下發綁定令牌,App 本地緩存,斷網仍可本地控制。

3. 協議細節

// 手機發送開關指令示例 (UDP)
{
  "id": 12345,
  "method": "set_power",
  "params": ["on"]
}
// 設備回應
{
  "id": 12345,
  "result": ["ok"]
}

開發者啟示

  • IoT 設備優先實現 本地控制,雲端僅作綁定/固件升級/遠程訪問輔助。
  • 使用 標準化發現協議 (mDNS, SSDP) 降低適配成本。
  • 通信協議設計要 冪等、可重試、帶序列號,應對網絡抖動。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved