BLE - UART 服務

材料準備

範例說明

介紹

BLE可以使用GATT系統發送和接收應用程序數據。 GATT使用服務,特徵和屬性來組織數據並控制如何讀取和寫入數據。 BLE的藍牙SIG規範包括針對常見應用的幾種定義服務,但用戶可以依據適合其數據結構和應用需求來自由實施自定義服務和特性。
在此範例中,BLEService和BLECharacteristic用於實現類似於常規UART傳輸ASCII字符的自定義服務。 此自定義服務是在多個智能手機應用程序中受支持的Nordic UART服務。

步驟

確保您的智能手機上已安裝兼容的BLE UART應用程序,該應用程序可在以下位置獲得:
– Google Play Store:
https://play.google.com/store/apps/details?id=com.adafruit.bluefruit.le.connect
https://play.google.com/store/apps/details?id=de.kai_morich.serial_bluetooth_terminal

– Apple App Store:
https://apps.apple.com/us/app/bluefruit-connect/id830125974

打開範例, “Files” -> “Examples” -> “AmebaBLE” -> “BLEUartService”.

1

上傳代碼並在上傳完成後按Ameba上的重置按鈕。
在手機上打開應用程序,掃描並連接到顯示為“AMEBA_BLE_DEV”的Ameba開發板,然後在應用程序中選擇UART功能。
請注意,Ameba板上的BLE UART服務僅可與Bluefruit Connect應用程序中的UART和Plotter功能一起使用,其他功能(Pin I/O,圖像傳輸)需要此範例中未包括的其他BLE服務。

1

1

在應用程序的UART終端部分中,輸入一條消息,然後單擊發送。 您應該看到消息出現在Arduino串行監視器中。
在Arduino串行監視器中,輸入一條消息,然後單擊發送。 該消息將出現在手機應用程序中。

1

1

程式碼說明

BLECharacteristic用於創建兩個特徵,一個用於接收(Rx),一個用於發送(Tx),並添加到使用BLEService創建的服務中。
使用set__Property()方法為每個特徵設置所需的讀/寫/通知屬性,並使用set__Callback()方法註冊回調函數。 還為每個特徵設置了所需的緩衝區大小,以便它有足夠的內存來存儲完整的字符串。
將數據寫入接收特性時,將調用已註冊的回調函數,該函數將接收到的數據作為字符串輸出到串行監視器。
在串行端口上接收到數據後,會將其複製到發送特性緩衝區中,然後notify()方法用於將新數據通知給連接的設備。

請先確認已安裝QQ通訊軟體