在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

藍牙mesh互傳及藍牙單向穿透的功能測試

全志在線 ? 來源:全志在線開發者論壇 ? 2023-12-11 11:34 ? 次閱讀

相較于WiFi技術,低功耗藍牙BLE技術具有搜索連接速度快、超低功耗等特點,BLE搭配mesh技術所延伸的藍牙mesh技術因其支持多點對多點連接、物理覆蓋區域廣闊,也被廣泛用于智能家居中控、智能安防、智慧樓宇等物聯網設備上。

XR806是一款支持BLE 5.0、支持完整低功耗藍牙服務GATT、支持SIG mesh完整協議棧的無線芯片,同樣適配物聯網設備的使用場景需求,在通過官方文檔的指引下配置好XR806的RTOS環境后,可按文章介紹步驟進行后續的藍牙mesh互傳及藍牙單向穿透的功能測試。

藍牙mesh互傳

最新的藍牙mesh1.1引入了定向轉發路由功能,擴大射頻覆蓋范圍,使信號一級級中繼下去,手頭有nRF52840開發板,不妨和全志XR806進行組網,測試兼容性和互操作性,也驗證XR806 mesh協議棧的完成度。先看效果:

c86c4296-95ad-11ee-8b88-92fbcf53809c.gif

nRF52840用Segger Embedded Studio打開工程:

nrf5SDKforMeshv320srcexampleslight_switchserver

同時燒錄協議棧和APP;XR806為觀察到現象,將mesh例程的收到mesh opcode的回調接口加個指示信號,具體為:

static void gpio_output_init(void)
{
 GPIO_InitParam param;
 param.driving = GPIO_DRIVING_LEVEL_1;
 param.mode = GPIOx_Pn_F1_OUTPUT;
 param.pull = GPIO_PULL_NONE;
 HAL_GPIO_Init(GPIO_OUTPUT_PORT, GPIO_OUTPUT_PIN, ¶m);//PA21
}


/***************Onoff Configuration Declaration*******************/
static void app_onoff_srv_set_cb(const struct bt_mesh_model *model, uint8_t onoff, uint8_t target_onoff, const struct bt_mesh_transition_status *opt)
{
 g_onoff_value = onoff;
 HAL_GPIO_WritePin(GPIO_OUTPUT_PORT, GPIO_OUTPUT_PIN, onoff ? GPIO_PIN_HIGH : GPIO_PIN_LOW);
 printf("[app] onoff set(%d)", onoff);
 if (opt) {
  printf("target onoff(%d), total_steps(%d), steps(%d)",
      target_onoff, opt->total_steps, opt->present_steps);
 }
 printf("
");
}

編譯完后將mesh_demo燒錄進XR806中,將XR806的GenericOnOff Server訂閱到publisher的發布地址,就能實現同一網絡(具備同一網絡密鑰可以正確解析出mesh消息)內的消息傳遞。


此時用nRF Mesh去給nRF52840和XR806分別入網和設置訂閱地址,本次將他們訂閱到0xC000。

c8a38c24-95ad-11ee-8b88-92fbcf53809c.jpg

由于入網過程沒有錄制下來,且XR806無法退網,且入網信息暫時沒找到擦除方法,這樣重新燒錄還是保持入網狀態而無法回到unprovisioned狀態。

nRF52840接到JlinkRTT Viewer,XR806接到putty,可以看到XR806的Controller/host協議棧的版本信息,手機發布一條開關(由GernericOnOff元素統屬)消息,泛洪給兩臺射頻設備,可以在各自控制臺看到都有收到set opcode網絡消息。

c8b6b538-95ad-11ee-8b88-92fbcf53809c.png

藍牙穿透(單向)

有時無線透傳在無法布線時有很方便的效用,不妨試試藍牙透傳,效果如下:

c9209958-95ad-11ee-8b88-92fbcf53809c.gif

具體是無線數據->串口數據,串口數據->無線數據,目前前者實現了,后者還有些問題未解決,

c8b6b538-95ad-11ee-8b88-92fbcf53809c.png

實現過程如下,基于工程:

demo/Bluetooth/peripheral_demo改成peripheral_uart_demo

同時目錄下文件里工程名也進行修改:

peripheral_uart_demo/gcc/defconfig改成peripheral_uart_demo

然后引入串口讀寫獨立接口即把demo/at_demo下的serial.c、serial.h、serial_debug.h復制到剛才peripheral_uart_demo工程下,由于要無線寫以及串口寫轉無線,所以profile涉及到write_without_rsp和notify,具體配置為:

static struct bt_gatt_attr vnd_attrs[] = {
 /* Vendor Primary Service Declaration */
 BT_GATT_PRIMARY_SERVICE(&vnd_uuid),
 BT_GATT_CHARACTERISTIC(&vnd_enc_uuid.uuid,
         BT_GATT_CHRC_WRITE_WITHOUT_RESP | BT_GATT_CHRC_NOTIFY,
         BT_GATT_PERM_WRITE,
         NULL, write_without_rsp_vnd, &vnd_value),
 BT_GATT_CCC(vnd_ccc_notify_changed, BT_GATT_PERM_READ|BT_GATT_PERM_WRITE),
};

寫回調接口為:

/**********************vnd_write_cmd_uuid*****************************/
static ssize_t write_without_rsp_vnd(struct bt_conn *conn,
        const struct bt_gatt_attr *attr,
        const void *buf, uint16_t len, uint16_t offset,
        uint8_t flags)
{
 uint8_t *value = attr->user_data;


 /* Write request received. Reject it since this char only accepts
  * Write Commands.
  */
 if (!(flags & BT_GATT_WRITE_FLAG_CMD)) {
  return BT_GATT_ERR(BT_ATT_ERR_WRITE_REQ_REJECTED);
 }


 if (offset + len > sizeof(vnd_value)) {
  return BT_GATT_ERR(BT_ATT_ERR_INVALID_OFFSET);
 }


 memset(value, 0, sizeof(vnd_value));
 memcpy(value + offset, buf, len);
 serial_write(value + offset, len);
 *(value + offset + len) = '?';
 printf("
write_without_rsp_vnd");
 return len;
}

串口轉無線回調(有問題):

static void vnd_notify(void)
{
 static uint8_t vnd[MAX_LONG_DATA];
 uint16_t len=0;
 if (!vnd_notif_enabled)
  return;
 printf("
notify
");
 serial_read(vnd_notify_value,len);
 if(len>MAX_LONG_DATA || len==0)
  return;
 memcpy(vnd, vnd_notify_value, len);
  printf("
vnd_notify
");
 bt_gatt_notify(NULL, &vnd_svc.attrs[1], vnd, sizeof(vnd));
}

然后在bt_app_init函數里加入透傳口UART1的初始化代碼即可:

 serial_init(SERIAL_UART_ID, 115200, UART_DATA_BITS_8, UART_PARITY_NONE,
  UART_STOP_BITS_1, 0);
 serial_start();

審核編輯:湯梓紅

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

    關注

    115

    文章

    5963

    瀏覽量

    172514
  • 物聯網
    +關注

    關注

    2921

    文章

    45616

    瀏覽量

    384122
  • WIFI
    +關注

    關注

    81

    文章

    5349

    瀏覽量

    206763
  • Mesh
    +關注

    關注

    5

    文章

    213

    瀏覽量

    30266
  • 無線芯片
    +關注

    關注

    2

    文章

    80

    瀏覽量

    24156

原文標題:物聯網設備人柱力,XR806藍牙mesh互傳及單向穿透功能測試

文章出處:【微信號:gh_79acfa3aa3e3,微信公眾號:全志在線】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    藍牙Mesh網絡是什么?手機如何接入到藍牙Mesh網絡?

    藍牙Mesh網絡是什么?藍牙Mesh網絡有哪些特性?手機如何接入到藍牙Mesh網絡?
    發表于 06-26 07:18

    什么是藍牙mesh藍牙mesh有哪些功能

    請問下什么是藍牙mesh藍牙mesh有哪些功能
    發表于 06-30 07:08

    【平頭哥藍牙Mesh網關開發套件試用體驗】mesh開關控制mesh燈 + 測試視頻

    本帖最后由 jf_11671167 于 2021-10-9 16:20 編輯 本文對 PHY6220 藍牙mesh 開關、藍牙mesh燈配置,并用
    發表于 09-26 23:16

    【平頭哥藍牙Mesh網關開發套件試用體驗】手機控制藍牙mesh燈 + 測試視頻

    ; mesh_light_node_demo ,官方 demo 工程創建完成后編譯下載到 PHY6220 開發板,詳細步驟參考筆者往期文章:【平頭哥藍牙Mesh網關開發套件試用體驗】PHY6220
    發表于 09-26 23:23

    全志XR806藍牙mesh互傳功能測試

    評測二 藍牙mesh互傳 最新的藍牙mesh1.1引入了定向轉發路由功能,擴大射頻覆蓋范圍,使信
    發表于 12-07 15:49

    藍牙模塊低功耗藍牙4.2藍牙Mesh組網方案

    藍牙模塊低功耗藍牙4.2藍牙Mesh組網方案,本文介紹了能進行Mesh組網的藍牙模塊的一些基本參
    發表于 09-28 16:41 ?39次下載

    解密:Ble低功耗藍牙藍牙mesh網絡之間的關系

    能夠接收和利用其廣播的其他設備數量沒有明確的限制。藍牙Beacon就是藍牙廣播功能的一個絕佳案例。?二、藍牙mesh基于ble低功耗
    的頭像 發表于 06-12 11:12 ?9841次閱讀

    如何選擇合適的藍牙mesh開發套件?

    2017年7月,藍牙技術聯盟(Bluetooth SIG)正式宣布推出藍牙mesh規格,在藍牙技術點對點和廣播功能的基礎上添加了
    的頭像 發表于 08-10 10:54 ?4565次閱讀

    藍牙網關與藍牙Mesh之間的區別

    1、藍牙網關的定義 藍牙網關是一個集成藍牙 BLE、WiFi 和以太網的網關設備,藍牙 BLE 與 WiFi之間通過串口實現通信,可靈活應用于各種物聯網場景。 2、
    的頭像 發表于 07-10 14:32 ?3.9w次閱讀

    如何用藍牙mesh開關控制藍牙mesh

    本文對 PHY6220?藍牙mesh 開關、藍牙mesh燈配置,并用藍牙mesh開關控制
    的頭像 發表于 10-09 09:22 ?8043次閱讀

    快速了解最新藍牙Mesh規范的新增功能特性

    聯盟( Bluetooth SIG )最近發布新的藍牙 Mesh 規范, Silicon Labs (亦稱“芯科科技”)亦已借此機會提供全系列支持新標準的藍牙 SoC 和模塊產品陣容。本文將概略介紹
    的頭像 發表于 10-09 15:45 ?602次閱讀
    快速了解最新<b class='flag-5'>藍牙</b><b class='flag-5'>Mesh</b>規范的新增<b class='flag-5'>功能</b>特性

    藍牙MESH是什么?

    藍牙Mesh是一種基于藍牙技術的無線通信網絡協議,專門設計用于創建大規模設備網絡,特別適用于物聯網(IoT)應用。以下是藍牙Mesh的一些關
    的頭像 發表于 09-14 08:03 ?2759次閱讀
    <b class='flag-5'>藍牙</b><b class='flag-5'>MESH</b>是什么?

    藍牙網關和藍牙mesh網關區別

    藍牙網關和藍牙Mesh網關是兩種不同的技術,它們在物聯網(IoT)領域中扮演著重要的角色。 藍牙網關和藍牙
    的頭像 發表于 10-18 10:33 ?5672次閱讀

    藍牙Mesh技術的特點和應用場景

    的網絡體系。藍牙Mesh網絡中的每個設備都被視為一個節點,這些節點可以相互傳遞信息,形成一個自組織、自愈合的網絡系統。
    的頭像 發表于 02-06 16:07 ?778次閱讀

    100個節點測試藍牙Mesh?來看看效果

    100個節點測試藍牙Mesh? 看看效果如何? 本次測試使用了安信可的泰凌TB系列模組 主要的測試的點在于配網的大致速度 丟包率以及最長響應
    的頭像 發表于 04-09 13:58 ?91次閱讀
    100個節點<b class='flag-5'>測試</b><b class='flag-5'>藍牙</b><b class='flag-5'>Mesh</b>?來看看效果
    主站蜘蛛池模板: 精品特级毛片 | bt天堂磁力搜索 | 久久久久久久性潮 | 天天艹夜夜 | 免费视频网站在线观看 | 在线91精品亚洲网站精品成人 | 在线免费观看视频你懂的 | 免费观看视频网站 | 人色网 | 天天舔天天插 | 色综合天天 | 国产精品久久久久久久免费大片 | 成年大片免费视频播放手机不卡 | 奇米影视四色首页手机在线 | 日本人xxxxxxxxxⅹ68 | 手机免费看a | 亚洲成年人在线 | 午夜艹逼| 91久久夜色精品国产网站 | 韩国三级hd中文字幕久久精品 | 欧美影院一区二区 | 美女屁屁免费视频网站 | yy6080三级理论韩国日本 | 99热成人精品热久久669 | 一级美女视频 | 免费国产一区二区三区 | 午夜视频网站 | 国产精品任我爽爆在线播放6080 | 欧美一级黄色片视频 | 高清性色生活片久久久 | 成人种子| 亚洲另类激情综合偷自拍 | 一区二区三区福利 | 人人cao | 狠狠狠色丁香婷婷综合久久五月 | 午夜精品久久久久久99热7777 | 黑人边吃奶边扎下面激情视频 | 在线观看亚洲免费视频 | 亚洲欧美成人网 | 香蕉视频vip | 二级特黄绝大片免费视频大片 |