色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何通過EsDA開發套件實現藍牙客戶端的訂閱以及讀寫等操作?

AGk5_ZLG_zhiyua ? 來源:ZLG致遠電子 ? 2023-05-10 16:58 ? 次閱讀

藍牙作為一種近距離無線通信技術,被廣泛使用在汽車,智能家居和醫療等領域中。本文主要介紹如何通過EsDA開發套件,快速實現藍牙客戶端的訂閱以及讀寫等操作。

18a4c3ae-ef10-11ed-90ce-dac502259ad0.jpg??簡介

藍牙是一種近距離無線通信技術,可以免費運行在2.4G頻段,所以通常廣泛使用在物聯網,移動終端和智能家居等行業中。我們EsDA大家族里面自然也有對藍牙功能的實現,且只需要很短的時間就可實現藍牙通信,功能好用簡單又便捷。

本文主要基于MPC-ZC1的開發板,以及可將節點進行拖拽連接的圖形化設計工具AWFlow Designer,著重對UIS8910DM平臺的板載藍牙的配套節點以及示例進行講解。藍牙節點一共分為配置節點類型ble_server,ble_client2個,客戶端節點類型ble_client_in,ble_client_out,ble_client_subscribe3個以及服務端節點類型ble_server_adv,ble_server_service2個;因本文篇幅的原因所以主要圍繞著客戶端節點的使用,以下進行詳細介紹。

18a4c3ae-ef10-11ed-90ce-dac502259ad0.jpg??節點簡介

1. 配置節點

1.1 ble_client節點

1.1.1 屬性

18c9f11a-ef10-11ed-90ce-dac502259ad0.png

掃描類型:啟動掃描時需要的掃描類型配置:

值為0表示被動掃描(僅僅接收廣播,不會發送掃描請求);

值為1時表示主動掃描(發送掃描請求數據給廣播的服務端,服務端收到后會返回掃描響應數據)。

掃描窗口的時間:掃描窗口時間的配置;

掃描間隔的時間:掃描間隔時間的配置;

注意:掃描窗口時間必須小于掃描間隔時間。

掃描過濾策略:掃描過濾策略的配置:

1表示只處理地址在白名單中的數據包,以及發給自己的可連接定向廣播;

2表示處理所有非定向廣播和可解析私有地址以及發給自己的可連接定向廣播;

3表示處理地址在白名單中和可解析私有地址以及發給自己的可連接定向廣播。

目標服務端設備名稱:目標服務端設備本地名稱;

SMP配對模式與參數:

SMP配對模式 參數 安全等級排名
SECURE_CONNECTION_PASSKEY KEYBOARD_DISP 最高
SECURE_CONNECTION_JUSTWORK NOIN_NOOUT 次之
LEGACY_PASSKEY KEYBOARD_DISP 第三
LEGACY_JUSTWORK NOIN_NOOUT 最低

掃描超時時間:表示持續掃描,直到與指定服務端建立連接。如果值不為0,則開啟掃描后使能掃描定時器,超時后如果仍未與指定服務端建立連接,則掃描停止。單位ms

配置節點無輸入輸出

2. 客戶端節點

2.1 ble_client_in節點

2.1.1 屬性

18dd31a8-ef10-11ed-90ce-dac502259ad0.png

BLE客戶端配置:綁定一個ble_client藍牙客戶端的配置節點;

服務UUID:需要讀的服務UUID。若服務UUID為自定義的16字節如0000 ff 11 0000 1000 800000 80 5f 9b 34 fb,則傳入第3、4兩個字節0xff11;

特征值UUID:需要讀的特征值UUID。若特征值UUID為自定義的16字節如0000 ff 01 0000 1000 800000 80 5f 9b 34 fb,則傳入第3、4兩個字節0xff01。

2.1.2 輸入

payload:可以使用“timer”節點作為前級節點,定時讀取數據。

2.1.3 輸出

characteristic_uuid:將讀取到的指定特征值的UUID輸出;

payload:將讀取到的指定特征值的數組指針輸出。類型為uint8_t類型的指針;

payloadLength:將讀取到的指定特征值的數據長度輸出;

desc_num:將讀取到的指定特征值的描述符個數輸出。如果存在多個描述符,則存在多個名稱為“desc_uuid_%d”、“desc_value_%d”和“desc_value_length_%d”的屬性,其中%d指代當前是第幾個描述符;

舉例:該特征存在2個描述符,則存在以下名稱的屬性:desc_uuid_0,desc_value_0,desc_value_length_0和desc_uuid_1,desc_value_1,desc_value_length_1,desc_uuid_0;

desc_uuid_0:第一個描述符的UUID,若為第二個描述符的UUID也可表示為desc_uuid_1。以此類推;

desc_value_0:第一個描述符的值指針,若為第二個描述符的值也可表示為desc_value_1。以此類推;

desc_value_length_0:第一個描述符的值的數據長度,若為第二個描述符的值的數據長度也可表示為desc_value_length_1。以此類推。

2.2 ble_client_out節點

2.2.1 屬性

18f7d1a2-ef10-11ed-90ce-dac502259ad0.png

BLE客戶端配置:綁定一個ble_client藍牙客戶端的配置節點;

服務UUID:需要讀的服務UUID。若服務UUID為自定義的16字節如0000 ff 11 0000 1000 800000 80 5f 9b 34 fb,則傳入第3、4兩個字節0xff11;

特征值UUID:需要讀的特征值UUID。若特征值UUID為自定義的16字節如0000 ff 01 0000 1000 800000 80 5f 9b 34 fb,則傳入第3、4兩個字節0xff01。

2.2.2 輸入

payload:需要寫入的數據,字符串類型。可以使用fscript節點對payload進行設置

payloadLength:需要寫入的數據長度。

sink類型節點沒有輸出功能

2.3 ble_client_subscribe節點

2.3.1 屬性

1908699a-ef10-11ed-90ce-dac502259ad0.png

BLE客戶端配置:綁定一個ble_client藍牙客戶端的配置節點;

服務UUID:需要讀的服務UUID。若服務UUID為自定義的16字節如0000 ff 11 0000 1000 800000 80 5f 9b 34 fb,則傳入第3、4兩個字節0xff11;

特征值UUID:需要讀的特征值UUID。若特征值UUID為自定義的16字節如0000 ff 01 0000 1000 800000 80 5f 9b 34 fb,則傳入第3、4兩個字節0xff01;

訂閱模式:值為0表示禁能通知和指示,值為1表示使能通知,值為2表示使能指示。

pump類型節點無輸入數據

2.3.2 輸出

payload:訂閱的特征值的數據內容;

payloadLength:訂閱的特征值的數據長度;

characteristic_uuid:訂閱的特征值的UUID。

18a4c3ae-ef10-11ed-90ce-dac502259ad0.jpg??示例講解

1. 硬件準備

準備一塊MPC-ZC1開發板,并按照下圖所示連接好硬件。用于下載流圖的USB Type-C口另外一端接到PC機上。

2. 軟件準備

目前MPC-ZC1開發板作為客戶端,對BLE調試寶(手機app)服務端(外圍模式)提供的服務進行訂閱、讀寫等操作,依下圖所示可根據用戶需求隨意設置服務UUID、特征值UUID、特征數據以及通知數據,最后點擊開啟廣播,服務端BLE調試寶的配置就設置完成了。

194ebdaa-ef10-11ed-90ce-dac502259ad0.png

隨之修改手機本地藍牙(服務端設備)名稱,后期此名稱用來配置ble_client節點的屬性參數目標服務端設備名稱。

1967bd3c-ef10-11ed-90ce-dac502259ad0.png

3. EsDA業務開發

本示例主要是將MPC-ZC1開發板作為藍牙客戶端,對BLE調試寶(藍牙服務端)指定服務下指定的特征值數據進行讀寫以及訂閱的操作,具體實現如下圖。本例程只對服務端提供的一個服務的特征值進行了訂閱和讀寫操作,根據實際需求,可支持對多個指定服務下的指定特征值進行讀寫和訂閱的操作。

1981c2ae-ef10-11ed-90ce-dac502259ad0.png

3.1 添加節點并繪制流圖

添加timer,ble_client_in,ble_client_out,ble_client_subscribe,fscript節點如下圖所示。

199cc36a-ef10-11ed-90ce-dac502259ad0.png

3.2 配置節點

周期性的去讀取藍牙服務端指定服務下指定的特征值的特征數據。

雙擊ble_client_in節點的前驅timer節點,打開屬性面板設置定時周期(ms),MPC-ZC1開發板周期性的去讀取BLE調試寶指定服務下指定的特征值數據。修改完后點擊右上角的完成即可保存屬性配置。

19b23c04-ef10-11ed-90ce-dac502259ad0.png

雙擊ble_client_in節點中的BLE客戶端配置,本屬性配置在一份流圖上只需要配置一次即可,后面ble_client_out以及ble_client_subscribe節點的屬性BLE客戶端配置都會鏈接到同一個ble_server,不需再次重復配置所以后面不再贅述。這里可以只修改屬性值:目標服務端設備名稱,需注意的是此處的參數與服務端提供的信息需一致。修改完后點擊右上角的更新即可保存屬性配置。

19c1a9f0-ef10-11ed-90ce-dac502259ad0.png

雙擊ble_client_in節點,修改需要讀取指定的服務UUID和特征值UUID。修改完后點擊右上角的完成即可保存屬性配置。

19d8420a-ef10-11ed-90ce-dac502259ad0.png

雙擊ble_client_in節點的后繼fscript節點,主要內容是對讀取的特征值UUID進行輸出以及將服務端指定的服務UUID及特征值UUID下的特征內容進行輸出。

print("payloadLength is"+msg.payloadLength)
print("characteristic_uuid is" + msg.characteristic_uuid);


rb = rbuffer_create(msg.payload, msg.payloadLength)
print("length: "+ msg.payloadLength)


f = "recv ble server data is"
for(var i=0; i

周期性的去寫入藍牙服務端指定服務下指定的特征值的特征數據。

雙擊ble_client_out節點的前驅*2的timer節點,打開屬性面板設置定時周期(ms),MPC-ZC1開發板周期性的去寫入BLE調試寶指定服務下指定的特征值數據。修改完后點擊右上角的完成即可保存屬性配置。

19ef25a6-ef10-11ed-90ce-dac502259ad0.png

因ble_client_out節點作為sink類型節點,所以fscript節點即為他的前驅節點。雙擊fscript,主要功能實現是設置ble_client_out節點的輸入數據:payload(要寫入的數據),payloadLength(需要寫入的數據長度)。

msg.payload = "123456789"
set(msg.payloadLength, u8("9"))
雙擊ble_client_out節點,配置需要寫入數據的服務UUID和特征值UUID。修改完后點擊右上角的完成即可保存屬性配置。

1a046a4c-ef10-11ed-90ce-dac502259ad0.png

對藍牙服務端指定服務下指定的特征值的訂閱數據進行訂閱操作。

雙擊ble_client_subscribe節點,配置需要訂閱的服務UUID,特征值UUID以及訂閱模式。修改完后點擊右上角的完成即可保存屬性配置。

1a17fc92-ef10-11ed-90ce-dac502259ad0.png

雙擊ble_client_subscribe的后繼節點fscript,主要功能是將接收到的訂閱數據進行輸出打印。

rb = rbuffer_create(msg.payload, msg.payloadLength)
print("length: "+ msg.payloadLength)


f = "recv subscribe data is"
for(var i=0; i
3.3 下載驗證

MPC-ZC1開發板調試口打印信息如下:

1a2ad1f0-ef10-11ed-90ce-dac502259ad0.png

BLE調試寶操作日志顯示如下:

1a3a934c-ef10-11ed-90ce-dac502259ad0.png

由操作日志可以看到,MPC-ZC1和手機藍牙建立連接成功、MPC-ZC1讀取特征值,開啟通知、接收MPC-ZC1寫入新的特征值數據、接收通知。至此示例實驗已完成。





審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • SMP
    SMP
    +關注

    關注

    0

    文章

    74

    瀏覽量

    19654
  • 無線通信技術

    關注

    4

    文章

    129

    瀏覽量

    25740
  • ESDA
    +關注

    關注

    0

    文章

    28

    瀏覽量

    7505
  • BLE技術
    +關注

    關注

    0

    文章

    28

    瀏覽量

    5850

原文標題:【EsDA應用】藍牙客戶端節點詳解

文章出處:【微信號:ZLG_zhiyuan,微信公眾號:ZLG致遠電子】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    android客戶端通過藍牙協議控制繼電器

    一直沒怎么寫博客,貼一個比較簡單小例子(以前做的 android 通過wifi實現萬能遙控器 中拆分出來的小案例):android客戶端通過藍牙
    發表于 12-02 06:03

    用Delphi開發OPC客戶端工具的方法研究

    本文通過介紹OPC 技術的工作原理,結合OPC 客戶端的工作機制,給出OPC 客戶端開發方法及在的Delphi 的具體實現,提出了OPC
    發表于 06-15 10:37 ?35次下載

    基于USB的加密視頻客戶端的設計與實現

    針對USB無線視頻實時接收裝置的開發,論文介紹了在Windows視頻客戶端通過USB數據接口來接收數據,并且通過在Linux服務器將采集的
    發表于 08-31 16:04 ?23次下載

    在不同階段如何選擇正確的藍牙開發套件

    選擇藍牙開發套件就像一個10歲的孩子在糖果店里,有無數的選擇,從表面上看都很好,但很難做出正確的選擇,因為每個項目對套件的要求都是非常不同的。本文解釋了在工程師開發過程中的不同階段應該
    的頭像 發表于 05-10 15:10 ?1922次閱讀

    NodeMCU項目(三)MQTT客戶端

    的限制。NodeMCU讀取連接的溫濕度傳感器的信息,手機客戶端訂閱該信息,可以實現遠程監控;NodeMCU訂閱手機發布的命令主題,可以實現
    發表于 11-05 17:05 ?1次下載
    NodeMCU項目(三)MQTT<b class='flag-5'>客戶端</b>

    基于EsDA MPC-ZC1快速實現按鍵高級應用

    按鍵是嵌入式產品常用的人機交互方式。為了更好的結構設計、更低的制造成本,對按鍵功能會有更高的要求,常見有單擊、雙擊和長按需求。本文將基于 EsDA 開發套件介紹如何快速完成按鍵業務的開發
    的頭像 發表于 10-21 11:55 ?1437次閱讀

    EsDA應用】5分鐘快速實現攝像頭圖像采集

    攝像頭在安防監控和圖像識別領域被廣泛應用。本文介紹如何通過EsDA開發套件,快速實現攝像頭圖像采集。 ?? 簡介 近些年,隨著生物識別技術
    的頭像 發表于 04-12 11:50 ?725次閱讀

    EsDA應用】藍牙服務端節點詳解

    藍牙作為一種近距離無線通信技術,被廣泛使用在汽車,智能家居和醫療領域中。本文主要介紹如何通過EsDA開發套件,快速
    的頭像 發表于 05-25 00:10 ?588次閱讀
    【<b class='flag-5'>EsDA</b>應用】<b class='flag-5'>藍牙</b>服務端節點詳解

    EsDA應用】串口轉UDP服務器

    需要用到串口服務器,本文基于EsDA開發平臺,為您介紹如何快速搭建一個串口轉UDP服務器。基本工作原理:通過搭建UDP客戶端實現串口與UD
    的頭像 發表于 03-06 13:55 ?620次閱讀
    【<b class='flag-5'>EsDA</b>應用】串口轉UDP服務器

    EsDA應用】藍牙客戶端節點詳解

    藍牙作為一種近距離無線通信技術,被廣泛使用在汽車,智能家居和醫療領域中。本文主要介紹如何通過EsDA開發套件,快速
    的頭像 發表于 05-12 10:18 ?802次閱讀
    【<b class='flag-5'>EsDA</b>應用】<b class='flag-5'>藍牙</b><b class='flag-5'>客戶端</b>節點詳解

    EsDA應用】藍牙服務端節點詳解

    藍牙作為一種近距離無線通信技術,被廣泛使用在汽車,智能家居和醫療領域中。本文主要介紹如何通過EsDA開發套件,快速
    的頭像 發表于 05-31 09:46 ?876次閱讀
    【<b class='flag-5'>EsDA</b>應用】<b class='flag-5'>藍牙</b>服務端節點詳解

    服務如何控制客戶端之間的信息通訊

    服務如何通過“主題”來控制客戶端之間的信息通訊,看下圖實例: 在以上圖示中一共有三個 MQTT 客戶端,它們分別是開發板、手機和電腦。MQ
    的頭像 發表于 07-30 15:10 ?809次閱讀
    服務<b class='flag-5'>端</b>如何控制<b class='flag-5'>客戶端</b>之間的信息通訊

    基于EsDA MPC-ZC1 快速實現I2C 監控報警

    本文介紹如何通過EsDA開發套件,快速完成一個I2C采集數據的監控報警系統,通過該系統可以減少I2C設備的故障損失和維修成本。簡介本文基于前文的一篇I2C博客文章繼續拓展I2C實時采集
    的頭像 發表于 08-23 15:16 ?776次閱讀
    基于<b class='flag-5'>EsDA</b> MPC-ZC1 快速<b class='flag-5'>實現</b>I2C 監控報警

    EsDA 應用】快速實現串口轉HTTP請求

    ,由客戶端發送請求消息,服務針對客戶端的請求進行響應回復。本文將基于EsDA開發平臺,使用EPC6450-AWI
    的頭像 發表于 11-09 08:25 ?857次閱讀
    【<b class='flag-5'>EsDA</b> 應用】快速<b class='flag-5'>實現</b>串口轉HTTP請求

    如何基于EsDA開發套件快速使用射頻讀卡器模塊

    無線射頻讀寫卡技術在門禁系統,電子支付領域和物聯網領域中具有越來越廣泛的應用。本文將基于EsDA開發套件講解如何快速上手并開發射頻讀卡器模
    的頭像 發表于 01-11 08:24 ?705次閱讀
    如何基于<b class='flag-5'>EsDA</b><b class='flag-5'>開發套件</b>快速使用射頻讀卡器模塊
    主站蜘蛛池模板: 伊人天天躁夜夜躁狠狠| 男女啪啪抽搐呻吟高潮动态图| 富婆找黑人老外泻火在线播放| 97超碰在线视频人人av| 一级毛片免费视频网站| 亚洲成年人影院| 午夜亚洲精品不卡在线| 文中字幕一区二区三区视频播放| 青苹果乐园在线观看电视剧| 欧美牲交A欧美牲交VDO| 欧美深深色噜噜狠狠yyy| 鸥美一级黄色片| 秋霞伦理电影在线看 | 综合色就爱涩涩涩综合婷婷 | 欧美猛男gaygayxxgv| 暖暖 视频 免费 高清 在线观看| 免费看到湿的小黄文软件APP | 国产精品国产三级国产an| 国产99RE在线观看69热| 国产超碰人人爱被IOS解锁 | 2018三级网站免费观看| 久久国产香蕉| 久久国产36精品色熟妇| 老人FREE VIODES老少配| 妹妹好色网| 欧美亚洲日韩欧洲不卡| 全文都是肉高h文| 丝瓜视频樱桃视频在线观看免费 | 美女被免费喷白浆视频| 免费看黄软件| 日本 一二三 不卡 免费| 婷婷午夜影院| 亚洲中文久久久久久国产精品| 伊人狼人久久精品热9| 99久久国产综合精品| 把腿张开JI巴CAO死你H教室| 国产成在线观看免费视频| 国精产品999一区二区三区有限| 亚洲欧洲精品A片久久99| 幼儿交1300部一区二区| 99国产精品成人免费视频|