BLE – 掃描附近設備

材料準備

範例說明

介紹

本例將Ameba配置為藍牙中心設備,使用掃描功能掃描其他藍牙設備,並將結果打印到串行監視器。

具體的步驟如下:

打開Arduino的範例, “Files” -> “Examples” -> “AmebaBLE” -> “BLEScan”

2

上傳代碼並在上傳完成後按下Ameba上的reset按鈕。

打開Arduino串口監視器,我們就可以看到被掃描到的附近的藍牙設備被打印出來。

3

如果你已經安裝了藍牙app — nRF Connect,你也可以用它發送藍牙廣告讓Ameba來接收。

程式碼說明

setScanMode(GAP_SCAN_MODE_ACTIVE) 用於設置掃描模式。當找到設備時,主動掃描模式將向設備請求多一次額外的掃描響應數據包。而被動掃描模式只會查看廣告數據,而不會請求額外的數據。

setScanInterval() 和 setScanWindow() 用於設置以毫秒為單位的掃描頻率和持續時間。掃描將每隔一段時間啟動一次,並且每次掃描都將持續整個掃描窗口時間。掃描窗口時間應該小於或等於掃描間隔。設置短間隔可快速發現設備,設置長間隔可節約電能。

setScanCallback(scanFunction) 用於註冊一個接收到掃描結果時調用的函數。它可以用來設置用戶自定義函數,以便對掃描數據進行額外的處理,例如查找特定的設備。如果沒有註冊函數,掃描結果將被收集整理並在默認情況下打印到串行監視器。

beginCentral(0) 用於在中心模式下啟動藍牙堆棧。參數0用於指示當前沒有客戶端在中央模式下進行操作。

startScan(5000) 用於啟動一個特定持續時間為5000毫秒的掃描進程。掃描將按照設定的掃描間隔和掃描窗口值進行重複。在5000毫秒之後,掃描進程將停止,並準備再次啟動。

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