BLE - 電池客戶端

材料準備

  • AmebaD [AMB21 / AMB22 / AMB23 / BW16] x 1

範例説明

介紹

BLE連接使用伺服器/客戶端架構模式。伺服器包含相關的數據,而客戶端連接到伺服器以讀取數據。 通常會以藍牙週邊設備充當伺服器,而藍牙中央設備充當客戶端。伺服器可以包含許多服務,每個服務包含一組數據。 客戶端可以發送請求以讀取或寫入一些數據,還可以訂閱通知,以便伺服器可以將數據更新發送給客戶端。

在此範例中,Ameba藍牙協議堆棧上設置了基本的電池客戶端。 客戶端連接到另一個運行相應BLE電池服務的Ameba板,以讀取電池電量數據。

步驟

上傳BLEBatteryService範例程式碼至第一個Ameba板並執行。

For the second Ameba board, open the example “Files” “Examples” “AmebaBLE” “BLEBatteryClient”.

../../../../_images/image15.png

上傳程式碼並在上傳完成後按Ameba上的重置按鈕。

當Ameba板運行掃描,連接並從帶有電池服務的Ameba板讀取數據時,打開串行端口並觀察其日誌訊息。

../../../../_images/image24.png

黃色標示部分為帶有電池客戶端的Ameba板,首先掃描廣播的的BLE設備,名稱為“ AMEBA_BLE_DEV”,且廣播服務的UUID為0x180F,代表電池服務。

藍色標示部分為找到目標設備後,帶有電池客戶端的Ameba板將運行BLE連接,並在連接的設備上搜索電池服務。

綠色標示部分為客戶端連接到服務後,電池客戶端開始使用常規數據讀取方式和通知服務來讀取數據。

程式碼説明

BLEBatteryClient 用於創建客戶端以發現所連接設備上的服務和特徵。

  • setNotifyCallback() 用於註冊接收電池電量通知時將調用的功能。

  • BLE.configClient() 用於配置藍牙堆棧以進行客戶端操作。

  • addClient(connID) 創建一個與連接的設備相對應的新BLEClient對象。