當前位置:
首頁 > 最新 > Android Things 教程:與低功耗藍牙 BLE 設備進行通訊——Android 部分

Android Things 教程:與低功耗藍牙 BLE 設備進行通訊——Android 部分

在一篇文章《Android Things 教程:與低功耗藍牙 BLE 設備進行通訊 —— Raspberry Pi 部分》 中,我們介紹了如何在 Android Things 和 Raspberry Pi 上創建 BLE 服務。在這篇文章中,我們將介紹如何編寫低功耗藍牙的客戶端應用,以便於和我們的 Raspberry Pi 部分進行通訊。

我們測試了我們的 Android Things 應用程序,它的效果很好。現在,我們必須創建一個移動客戶端,它可以連接到廣播設備,並對特徵進行讀/寫。

創建客戶端掃描 BLE 設備

當 Android 客戶端應用程序啟動時,首先應該掃描可用的 BLE 設備。

掃描 BLE 設備可能相當複雜,因為 SDK 21 中的初始 API(SDK 18)已更改,並且在 SDK 23 中進行了擴展(來源:開發 BLE Android 應用程序時要記住的內容)。 為了簡化,我們將使用統一的第三方兼容庫:Android BLE Scanner Compat 庫。

再次提一下,掃描是電池密集型的。因此我們應該創建一個處理程序,在幾秒鐘後(例如 10 秒)停止掃描,並在找到所需設備後立即停止掃描。

方法採用下面實現的 :

將定期返回檢測到的設備列表,具體取決於您之前指定的 值。您可以將這些設備添加到列表中,以便用戶可以選擇要連接的設備。 在我們的情況下,我們知道只有一個設備廣播我們的自定義服務,所以一旦檢測到,我們會自動連接到它。

連接 GATT 伺服器

要連接到GATT伺服器,請使用設備地址獲取 的實例,然後調用 方法:

這個方法需要一個 ,與我們前面看到的 非常相似,當特徵/描述符已經被讀/寫時,包含回調方法。

做好準備!你會看到一連串的回調。每個操作都有一個關聯的回調。我們不能執行兩個藍牙操作,例如在同一時間兩個寫操作。我們將不得不等待一個完成,然後才能開始下一個。

發現服務

當 GATT 連接成功時, 將被調用。

設備連接成功後,您可以從這裡開始發現服務:

而且...我們完成了!

那麼,不是完整的...我們已經完成了 BLE 部分,但是還沒有物理計數器,也沒有幸運的貓。

增加一些樂趣(也就是創建物理對象)

在這一刻,如果我告訴你,我們寫的所有東西只有當客戶端發送一個寫請求時才有一個自動遞增的變數,那麼你可能會這樣說:「所有這些什麼都沒有看到!」。感謝 Android Things,我們會添加一些樂趣,並圍繞這個軟體創建一個物理對象。

一個物理計數器設備

這裡使用的顯示器是 「MAX7219 8位模塊」。

MAX7219

顧名思義,它使用 MAX7219 來控制段顯示。

在之前的文章中,我們已經提到 MAX7219 控制 8x8 LED 矩陣。好的,您可以使用相同的驅動程序(LED控制庫)通過 SPI 與此設備進行交互。

例如:顯示 「0042」:

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 一起玩點什麼 的精彩文章:

Android Things 教程:創建一個雲連接的智能門衛

TAG:一起玩點什麼 |