[英]Is it possible to send data with BLE broadcast mode?
我想問你是否有可能以廣播模式從BLE設備(如帶有藍牙加密狗的Raspberry Pi,Onion或Arduino)向另一台設備(如電話或其他Raspberry Pi)發送數據(字符串) ,這將在屏幕上顯示數據。
說實話,沒有必要在屏幕上顯示數據,但是其他設備必須能夠使用我將創建的C程序詳細說明接收到的數據。
我對這個主題進行了大量的研究,但我只能找到有關Beacons的答案,這些對象無法為我的項目(如字符串)發送有用的數據,或者必須相互連接以發送/接收數據的BLE設備。
我想在C中創建一個程序,以實現這個結果。 我在BlueZ庫中搜索了一些有用的東西,但我找不到任何東西,因為它們沒有解釋它們的功能的含義。 如果有可能我不想創建一個Android / iOS應用程序。
是的,這是可能的。 您可能已經知道,藍牙低功耗(BLE)有四個角色: -
當BLE首次推出時,信標/傳感器(例如心率,溫度計)占據了前兩個類別,而電話/計算機占據了另外兩個類別。 但是,BLE已經發展,許多設備現在支持所有四種角色,並且設備可以同時在一個或多個角色中運行。
關於你的問題,正如Lee Daniel Crocker所提到的,數據是數據,而你在廣告中放入的只是字節,而另一端必須要理解。 您只能在廣告報告*中放入31個字節的數據,這就是面向連接的數據傳輸效率更高的原因。
關於可編程性,我建議在兩者上啟動BlueZ命令,即將要通告的設備和將讀取數據的設備。 您可以使用Bluetoothctl命令執行此操作,如下所示: -
在廣播公司/外圍設備上
#bluetoothctl
[bluetooth]menu advertise
[bluetooth]advertise data 00 00 00 00
[bluetooth]back
[bluetooth]advertise on
在觀察者/中央
#bluetoothctl
[bluetooth]scan on
我使用的是BlueZ版本5.50 ,我建議您也這樣做。
一旦您可以正確地通告數據並從另一端讀取數據,您就可以瀏覽源代碼並查看可以利用的C應用程序。 對於bluetoothctl函數,您希望從以下兩個文件開始: -
我希望這有幫助。
(*)從藍牙5開始,您可以向廣告報告添加更多數據,但這是一個非常新的功能,在撰寫本文時,很少有堆棧支持它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.