<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 手機(jī)與無(wú)線通信 > 設(shè)計(jì)應(yīng)用 > 在nRF52DK上廣播定制廣告數(shù)據(jù):藍(lán)牙LE教程

          在nRF52DK上廣播定制廣告數(shù)據(jù):藍(lán)牙LE教程

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

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

          本文引用地址:http://www.ex-cimer.com/article/202409/462784.htm

          正如我們?cè)谏弦黄恼轮辛私獾降哪菢?,藍(lán)牙低能量(LE)數(shù)據(jù)傳輸可以分為兩類:

          ?面向連接。

          ?無(wú)連接。

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

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

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

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

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

          廣告數(shù)據(jù)結(jié)構(gòu)和類型

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

          藍(lán)牙低能量傳統(tǒng)廣告包中的數(shù)據(jù)組織。

           

          1.png

          ?圖1。圖像由MDPI提供

          順便說一下,這個(gè)圖中給出的最大字節(jié)數(shù)是用于傳統(tǒng)的,而不是擴(kuò)展的,廣告模式。這對(duì)于我們的目的來說沒問題——我們將在全文中使用傳統(tǒng)的廣告模式。

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

          長(zhǎng)度:這占1個(gè)字節(jié),并指定后續(xù)數(shù)據(jù)字段的長(zhǎng)度,包括AD類型,但不包括其本身。

          AD類型:也占1個(gè)字節(jié)。確定以下數(shù)據(jù)類型。

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

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

          對(duì)于制造商特定數(shù)據(jù)類型,AD數(shù)據(jù)的最初兩個(gè)字節(jié)表示公司ID。公司ID是藍(lán)牙SIG根據(jù)請(qǐng)求分配給成員公司的唯一編號(hào)。指定公司標(biāo)識(shí)后,制造商會(huì)以其選擇的任何格式附加自定義數(shù)據(jù)。

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

          1個(gè)字節(jié)用于指定長(zhǎng)度。

          公司編號(hào)為2個(gè)字節(jié)。

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

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

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

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

          第1步:申報(bào)公司ID

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

          第2步:聲明自定義數(shù)據(jù)的結(jié)構(gòu)

          在本項(xiàng)目中,我們的定制數(shù)據(jù)結(jié)構(gòu)將包括:

          公司ID(2字節(jié)):我們以 Semiconductor公司ID開始播出數(shù)據(jù)。

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

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

          下面的代碼片段顯示了結(jié)構(gòu)。

           2.png

          第3步:在掃描響應(yīng)廣告包中包括制造商特定數(shù)據(jù)

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

           3.png

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

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

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

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

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

           4.png

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

          查看結(jié)果

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

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

           5.png

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

          如您所見,信標(biāo)已成功開始廣播。

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

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

           6.png

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

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

          說明信標(biāo)廣播的定制數(shù)據(jù)的屏幕截圖。

           7.png

          ?圖4。說明信標(biāo)廣播的定制數(shù)據(jù)的屏幕截圖。圖片由恩塔蒂西?赫拉皮西提供

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




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

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();