<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 設計應用 > 在nRF52DK上廣播定制廣告數據:藍牙LE教程

在nRF52DK上廣播定制廣告數據:藍牙LE教程

作者: 時(shí)間:2024-09-09 來(lái)源:EEPW編譯 收藏

了解如何將nRF52開(kāi)發(fā)工具包轉變?yōu)榭蓮V播靜態(tài)或動(dòng)態(tài)自定義數據的藍牙低能量信標。

本文引用地址:http://dyxdggzs.com/article/202409/462784.htm

正如我們在上一篇文章中了解到的那樣,藍牙低能量(LE)數據傳輸可以分為兩類(lèi):

?面向連接。

?無(wú)連接。

讓我們來(lái)研究一個(gè)無(wú)連接通信的情況,也就是說(shuō),一個(gè)廣播定制數據的設備。

這在現實(shí)世界中并不少見(jiàn)。例如,信標被用于商店、博物館和機場(chǎng),以提供基于位置的服務(wù)。它們的功能是將包含唯一代碼的靜態(tài)自定義數據廣播到附近的設備,例如我們的手機。

還有動(dòng)態(tài)定制數據,這是環(huán)境傳感器可以用來(lái)報告農業(yè)設施濕度水平的實(shí)時(shí)變化。嵌入式定制數據提供了一個(gè)平臺,用于交流標準數據類(lèi)型未處理的專(zhuān)有信息或不同功能。

在本教程中,我們將使用 Semiconductor的(開(kāi)發(fā)工具包)和VS Code的nRFConnect軟件開(kāi)發(fā)工具包來(lái)創(chuàng )建廣播自定義數據的信標。和許多其他工程師和愛(ài)好者一樣,我發(fā)現nRF52系列能夠相對方便地設計和測試藍牙LE應用程序。

首先,我們的信標將廣播靜態(tài)定制數據。然后,我們將對它進(jìn)行調整,以便它廣播自定義數據。然而,在我們做任何這一切之前,我們需要簡(jiǎn)單地回顧一下我們的數據是如何結構化的。

廣告數據結構和類(lèi)型

當藍牙LE設備正在廣播時(shí),它發(fā)送廣告數據包(有時(shí)還掃描響應數據包)。每個(gè)數據包中的信息都以特定的方式進(jìn)行組織。圖1展示了該組織的視覺(jué)表現。

藍牙低能量傳統廣告包中的數據組織。

 

1.png

?圖1。圖像由MDPI提供

順便說(shuō)一下,這個(gè)圖中給出的最大字節數是用于傳統的,而不是擴展的,廣告模式。這對于我們的目的來(lái)說(shuō)沒(méi)問(wèn)題——我們將在全文中使用傳統的廣告模式。

在圖1的底部?jì)蓚€(gè)部分中,我們可以看到每個(gè)廣告數據(AD)數據包都包含一個(gè)或多個(gè)AD結構。每個(gè)結構依次包括以下字段:

長(cháng)度:這占1個(gè)字節,并指定后續數據字段的長(cháng)度,包括AD類(lèi)型,但不包括其本身。

AD類(lèi)型:也占1個(gè)字節。確定以下數據類(lèi)型。

AD數據:這是與AD類(lèi)型關(guān)聯(lián)的實(shí)際數據內容。此字段的長(cháng)度是可變的,但可以從“長(cháng)度”字節中推斷出來(lái)。

AD類(lèi)型必須來(lái)自藍牙核心規范中定義的AD類(lèi)型列表。我們將使用指定為0xFF的制造商特定數據類(lèi)型。顧名思義,這種AD類(lèi)型使制造商能夠在其廣告中嵌入自定義數據。

對于制造商特定數據類(lèi)型,AD數據的最初兩個(gè)字節表示公司ID。公司ID是藍牙SIG根據請求分配給成員公司的唯一編號。指定公司標識后,制造商會(huì )以其選擇的任何格式附加自定義數據。

回想一下,整個(gè)傳統廣告數據包的最大長(cháng)度為31個(gè)字節。使用制造商特定數據時(shí),數據包要求:

1個(gè)字節用于指定長(cháng)度。

公司編號為2個(gè)字節。

這樣每個(gè)數據包就有27個(gè)字節用于定制數據。

隨著(zhù)這一切,我們準備繼續前進(jìn),并將我們的知識投入使用!

靜態(tài)數據用例:廣播設備狀態(tài)和消息

想象一下,你想要使用作為一個(gè)房間或工作站的基本狀態(tài)信標??芍甘竟ぷ髡臼欠癖徽加没蚩臻e。我們將通過(guò)簡(jiǎn)短的自定義消息來(lái)做到這一點(diǎn):當有人時(shí),“會(huì )議正在進(jìn)行”,而當沒(méi)有人時(shí),“免費使用”。

第1步:申報公司ID

由于我們使用 Semiconductor的板進(jìn)行教育,我們可以使用他們的公司標識符

第2步:聲明自定義數據的結構

在本項目中,我們的定制數據結構將包括:

公司ID(2字節):我們以 Semiconductor公司ID開(kāi)始播出數據。

狀態(tài)(1個(gè)字節):這可以指示房間是否被占用(1)或空閑(0)。

消息(最多24個(gè)字節):自定義消息,如“正在進(jìn)行會(huì )議”或“免費使用”

下面的代碼片段顯示了結構。

 2.png

第3步:在掃描響應廣告包中包括制造商特定數據

使用nRF Connect SDK,可以使用BT_data()宏將這個(gè)自定義數據包括在廣告數據包中。

 3.png

完整的代碼包括在本條款的結尾,作為代碼附錄A。

動(dòng)態(tài)數據用例:實(shí)時(shí)廣播狀態(tài)變化

在前面的示例中,我們展示了廣播靜態(tài)定制數據,特別是房間的狀態(tài)及其相關(guān)消息。但如果我們的應用程序要求我們廣播正在變化的數據,又會(huì )怎樣呢?這就是發(fā)送動(dòng)態(tài)數據的便利之處。當開(kāi)發(fā)能夠反映即時(shí)狀態(tài)變化的傳感器廣播器或設備時(shí),它尤為有用。

為了進(jìn)行演示,讓我們升級我們的基本房間狀態(tài)信標,以便它使用nRF52板上的內置按鈕。按下按鈕,設備顯示“正在開(kāi)會(huì )”。放開(kāi),它會(huì )切換到“免費使用”。nRF52內置的LED會(huì )亮起顯示“會(huì )議進(jìn)行中”,然后熄滅顯示“免費使用”

要使用nRF Connect SDK廣播動(dòng)態(tài)數據,我們使用bt_le_adv_update_data()函數,它允許我們在廣告進(jìn)行時(shí)更新廣告數據。這使得廣播數據能夠實(shí)時(shí)反映變化。

 4.png

您可以在代碼附錄B中查看該版本信標的所有代碼。

查看結果

最后,是時(shí)候檢查代碼是否有效了。圖2顯示了用于VS代碼的nRF連接的輸出。

顯示信標已成功開(kāi)始廣播的VS代碼輸出。

 5.png

?圖2。信標開(kāi)始工作。圖片由恩塔蒂西?赫拉皮西提供

如您所見(jiàn),信標已成功開(kāi)始廣播。

圖3和4是我的nRF Connect移動(dòng)應用程序中的圖像。圖3顯示了當按下并釋放nRF52上的按鈕時(shí),我的手機收到的消息是如何變化的。

按下nRF52DK按鈕(左)和松開(kāi)(右)時(shí),范圍內電話(huà)接收到的消息。

 6.png

?圖3。按下nRF52DK按鈕(左)和釋放(右)時(shí),房間信標廣播的消息。圖片由恩塔蒂西?赫拉皮西提供

在圖4中,我們看到的是數據而不是自定義文本。請注意,從Nordic Semiconductor的公司ID開(kāi)始,右側圖像中的類(lèi)型0xFF(制造商特定數據)值如何與左側圖像中的值匹配。

說(shuō)明信標廣播的定制數據的屏幕截圖。

 7.png

?圖4。說(shuō)明信標廣播的定制數據的屏幕截圖。圖片由恩塔蒂西?赫拉皮西提供

這只是一個(gè)簡(jiǎn)單的例子,說(shuō)明自定義數據可以用于什么。。如果您想要構建這個(gè)項目的自己版本,所有必要的代碼都包含在下面的兩個(gè)附錄中。




關(guān)鍵詞: nRF52DK 藍牙LE Nordic

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>