BLE – 電池客戶端
材料準備
- AmebaPro2 [ AMB82 MINI ] x 2
範例說明
介紹
BLE連接使用伺服器/客戶端架構模式。伺服器包含相關的數據,而客戶端連接到伺服器以讀取數據。 通常會以藍牙週邊設備充當伺服器,而藍牙中央設備充當客戶端。 伺服器可以包含許多服務,每個服務包含一組數據。 客戶端可以發送請求以讀取或寫入一些數據,還可以訂閱通知,以便伺服器可以將數據更新發送給客戶端。
在此範例中,Ameba藍牙協議堆棧上設置了基本的電池客戶端。 客戶端連接到另一個運行相應BLE電池服務的Ameba板,以讀取電池電量數據。
具體的步驟如下
上傳BLEBatteryService範例程式碼至第一個Ameba板並執行。
對第二個Ameba板,打開範例 “Files” -> “Examples” -> “AmebaBLE” -> “BLEBatteryClient”。
上傳程式碼並在上傳完成後按Ameba上的重置按鈕。
當Ameba板運行掃描,連接並從帶有電池服務的Ameba板讀取數據時,打開串行端口並觀察其日誌訊息。
黃色標示部分為帶有電池客戶端的Ameba板,首先掃描廣播的的BLE設備,名稱為“ AMEBA_BLE_DEV”,且廣播服務的UUID為0x180F,代表電池服務。
藍色標示部分為找到目標設備後,帶有電池客戶端的Ameba板將運行BLE連接,並在連接的設備上搜索電池服務。
綠色標示部分為客戶端連接到服務後,電池客戶端開始使用常規數據讀取方式和通知服務來讀取數據。
Code Reference
BLEClient 用於創建客戶端以發現所連接設備上的服務和特徵。
setNotifyCallback() 用於註冊接收電池電量通知時將調用的功能。
BLE.configClient() 用於配置藍牙堆棧以進行客戶端操作。
addClient(connID) 創建一個與連接的設備相對應的新BLEClient對象。