簡體   English   中英

是否可以使用BLE廣播模式發送數據?

[英]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)有四個角色: -

  • 廣播公司 - 僅宣傳數據的設備。
  • 外圍設備 - 一種廣告數據但也可以通過遠程設備連接的設備。
  • Observer - 只掃描數據的設備。
  • 中央 - 可以掃描數據並連接到它們的設備。

當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函數,您希望從以下兩個文件開始: -

  • 的bluez-5.50 /客戶端/ main.c中
  • 的bluez-5.50 /客戶端/ advertising.c

我希望這有幫助。

(*)從藍牙5開始,您可以向廣告報告添加更多數據,但這是一個非常新的功能,在撰寫本文時,很少有堆棧支持它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM