国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

Air8000 BLE外圍模式全解析:數據收發實戰指南!

合宙LuatOS ? 來源:合宙LuatOS ? 作者:合宙LuatOS ? 2025-11-24 14:26 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Air8000的BLE外圍設備模式(peripheral)是實現低功耗藍牙通信的關鍵功能,它既能主動向中心設備發送通知數據,也能接收中心設備傳回的信息。本文將通過具體示例,詳細拆解這一模式的操作流程,從配置到數據交互逐一講解,幫助開發者快速掌握Air8000的BLE外圍設備應用技巧。

一、BLE 概述

BLE(Bluetooth Low Energy),也稱為 Bluetooth Smart,是藍牙 4.0 及更高版本引入的低功耗無線通信技術,專為低帶寬、間歇性數據傳輸的物聯網IoT)和穿戴設備設計。

Air8000 支持最新的 BLE 5.4 版本,BLE 5.4 在上一代基礎上繼續優化了功耗和性能,為用戶提供了更高效、更穩定的藍牙連接體驗。具體的 BLE 版本區別若有興趣請自行上網查詢,本處不再贅述。

BLE 支持的四種模式

Air8000 的 BLE 支持 4 種模式,分別是中心設備模式(central),外圍設備模式(peripheral),廣播者模式(ibeacon),以及觀察者模式(scan)。

1、中心設備模式(central):

中心設備模式是能夠搜索別人并主動建立連接的一方,從掃描狀態轉化而來的。其可以和一個或多個從設備進行連接通信,它會定期的掃描周圍的廣播狀態設備發送的廣播信息,可以對周圍設備進行搜索并選擇所需要連接的從設備進行配對連接,建立通信鏈路成功后,主從雙方就可以發送接收數據。

2、外圍設備模式(peripheral):

外圍設備模式是從廣播者模式轉化而來的,未被連接的外圍設備首先進入廣播狀態,等待被中心設備搜索,當中心設備掃描到外圍設備建立連接后,就可以和中心設備進行數據的收發,其不能主動的建立連接,只能等別人來連接自己。和廣播模式有區別的地方在于,外圍設備模式的設備是可以被連接的,定期的和中心設備進行連接和數據傳輸,在數據傳輸過程中作外圍設備。

3、廣播者模式(ibeacon)

處于廣播模式的設備,會周期性的廣播 beacon 信息, 可以被掃描, 但一般不會被連接,典型應用 ibeacon。

4、觀察者模式(scan)

觀察者模式,該模式下模塊為非連接,相對廣播者模式的一對多發送廣播,觀察者可以一對多接收數據。在該模式中,設備可以僅監聽和讀取空中的廣播數據。和中心設備唯一的區別是不能發起連接,只能持續掃描外圍設備。

藍牙中的重要概念

1、GATT(通用屬性配置文件)

定義 BLE 設備如何組織和傳輸數據,以 “服務(Service)” 和 “特征(Characteristic)” 為單位。

示例:心率監測設備的 GATT 服務包含 “心率特征”,手機通過讀取該特征獲取心率數據。

2、服務和特征

服務是特征的容器,通過邏輯分組簡化復雜功能的管理;

特征是數據交互的最小單元,通過屬性定義實現靈活的讀寫與推送機制;

兩者結合構成 GATT 協議的核心框架,支撐藍牙設備間的標準化數據交互(如智能穿戴、醫療設備、物聯網傳感器)。

3、特征的關鍵屬性(Properties)

特征通過 “屬性” 定義數據的操作方式,常見屬性包括:

wKgZO2kj6z2AUrY5AADhT-9j7TU737.png

4、UUID

UUID 是藍牙 GATT 協議的 “數字身份證”,通過標準化的唯一標識機制,實現了跨廠商設備的功能互認(標準 UUID)與廠商個性化功能的擴展(自定義 UUID)

Air8000 的所有操作,都通過 UUID 來索引和管理


二、演示功能概述

本示例使用 Air8000 核心板演示 ble 的 peripheral(外圍設備) 功能。

1、Air8000 作為外圍設備開啟廣播,被動等待中心設備發起連接;

2、連接成功后,定期向中心設備發送數據;

3、外圍設備收到中心設備的寫入數據后,通過 uart1 發送到 pc 端串口工具;

4、pc 端串口工具收到數據后,打印到串口工具窗口。

三、準備硬件環境

1 、Air8000 核心板

2、 PC 電腦

WIN10 以及以上版本的 WINDOWS 系統。

3、 數據通信線

USB 數據線(其一端為 Type-C 接口,用于連接 Air8000 核心板)。

四、準備軟件環境

4.1 軟件環境

1、燒錄工具:https://docs.openluat.com/air780epm/common/Luatools/

2、內核固件:https://docs.openluat.com/air8000/luatos/firmware/

3、腳本文件:

外圍設備:https://gitee.com/openLuat/LuatOS/tree/master/module/Air8000/demo/ble/peripheral

4、PC 端串口工具:例如 SSCOM、LLCOM 等都可以

5、藍牙調試軟件:

本示例使用的藍牙調試軟件是 nrf connect(Android 版本),下載下面的壓縮包即可;IOS 版請在APP Store搜索 nrf connect下載。

6、LuatOS 運行所需要的 lib 文件:使用 Luatools 燒錄時,勾選 添加默認 lib 選項,使用默認 lib 腳本文件。

準備好軟件環境之后,接下來查看如何燒錄項目文件到 Air8000 核心板中,將本篇文章中演示使用的項目文件燒錄到 Air8000 開發板中。

(燒錄鏈接:https://docs.openluat.com/air8000/luatos/common/download/)

4.2 API 介紹

ble 庫:https://docs.openluat.com/osapi/core/ble/

五、程序結構

wKgZO2kj7RGAfFilAADck21Ie7Y317.png

5.1 文件說明

main.lua:主程序入口文件。

ble_peripheral_main.lua:ble 外圍設備主程序,進行 ble 初始化,設置廣播內容,處理各類 ble 事件(連接、斷開連接、寫入請求等)。

ble_peripheral_receiver.lua:BLE 外圍設備接收數據處理。

ble_peripheral_sender.lua:BLE 外圍設備發送數據處理。

ble_timer_app.lua:ble 外圍設備定時器處理邏輯,啟動兩個循環定時器,一個是以 notify 方式主動向中心設備推送數據(需中心設備先開啟 notify 訂閱),另一個是使用 write 方式,更新特征值數據,中心設備需要主動讀取特征值獲取最新數據。

ble_uart_app.lua:ble 外圍設備接 uart 處理邏輯,將收到的中心設備的寫入數據,通過 uart 發送到 pc 端串口工具。

check_wifi.lua:Air8000 的藍牙功能依賴 WiFi 協處理器,需確保 WiFi 固件為最新版本。本腳本文件檢查當前 Air8000 模組的 WiFi 固件是否為最新版本,若不是則自動啟動升級(需插入可聯網的 SIM 卡)

六、核心模塊詳解

6.1 主程序 (main.lua)

主程序文件main.lua是整個項目的入口點。它負責初始化系統環境。

6.1.1 初始化流程

1、項目和版本定義

定義PROJECT和VERSION變量。

2、日志記錄

使用log.info("main", PROJECT, VERSION)在日志中打印項目名和版本號。

3、看門狗初始化(如果支持):

配置并啟動硬件看門狗,防止程序死循環卡死。

4、加載功能模塊

加載 BLE peripheral(外圍設備)主控制模塊(ble_server_main)。

加載 wifi 升級模塊(check_wifi)。

加載串口應用功能模塊(ble_uart_app)。

加載定時器應用功能模塊(ble_timer_app)。

5、啟動任務調度器

調用sys.run()啟動 LuatOS 的任務調度器,開始執行各個任務。

6.2 ble_server_main

本文件為 ble server 主應用功能模塊,整個應用通過 sys.taskInitEx 啟動主任務,實現了完整的 BLE 外圍設備功能,核心業務邏輯為:

6.2.1 初始化與配置

1、加載依賴模塊( ble_server_receiver 用于數據接收處理, ble_server_sender 用于數據發送處理)。

2、定義配置參數(自身設備名稱、服務 UUID、特征值 UUID、GATT 數據庫定義)。

注意:在 GATT 中,UUID 和屬性的定義是由外圍設備決定的,中心設備需要按照外圍設備定義的 UUID 和屬性來訪問。

wKgZPGkj7gmAHf2QAAKnoDG6gRU140.png

3、調用 ble_init(),初始化藍牙功能,設置廣播包內容并開始廣播。

作為外圍設備,無需主動掃描,而是通過廣播讓中心設備發現:

wKgZPGkj7lyAEAcjAAMixwfEXWY052.png

6.2.2 事件處理

通過 ble_event_cb 回調函數處理各類 BLE 事件:

1、連接成功(EVENT_CONN)

2、斷開連接(EVENT_DISCONN)

3、寫入請求(EVENT_WRITE)

注意:EVENT_WRITE 事件,是中心設備開啟 notify 通知功能,或者向外圍設備的特征里寫入數據時,外圍設備觸發的回調事件。

6.2.3 業務功能

1、被動接收中心設備寫入的數據:通過 ble_server_receiver.proc() 處理

2、建立連接后,向 ble_server_sender 模塊發送"CONNECT_OK"的消息,通過 ble_server_sender 模塊向中心設備發送數據。

6.2.4 異常處理

1、初始化失敗 :進入異常處理流程。

2、連接斷開 :清理資源并等待重連。

3、超時處理 :5 秒后重新啟動廣播。

6.3 ble_server_receiver

6.3.1 主要功能

1、數據處理 :處理接收到的 BLE 寫入請求數據。

2、數據分發 :將收到的數據發給其他模塊處理,比如本 demo 便演示了通過 uart 發給 pc 端處理。

當ble_server_main模塊接收到EVENT_WRITE事件時,會調用此模塊的 proc 函數。將數據發布到對應的消息主題,其他訂閱了這些消息主題的模塊可以接收并處理數據

6.3.2 核心實現

1、提供proc(service_uuid, char_uuid, data)接口函數,接收服務 UUID、特征值 UUID 和數據。

2、通過sys.publish("RECV_BLE_WRITE_DATA", ...)發給其他模塊處理。

6.4 ble_server_sender

其他模塊只需發布"SEND_DATA_REQ"消息即可請求外圍設備向中心設備發送數據。

6.4.1 主要功能

1、消息訂閱:訂閱"SEND_DATA_REQ"消息,接收其他模塊的發送請求。

2、隊列管理:維護發送隊列 send_queue,存儲待發送的數據項(包含服務 UUID、特征值 UUID、數據、回調信息)。

3、任務調度:通過任務處理函數 ble_server_sender_task_func 處理各類 BLE 事件。

4、數據發送:按順序發送隊列中的數據,并通過回調通知發送結果。

6.4.2 核心實現

1、其他模塊通過sys.publish("SEND_DATA_REQ", ...)發布 發送請求。

2、send_data_req_proc_func函數將請求數據加入發送隊列,并通知任務。

3、任務處理函數根據 BLE 事件狀態(連接成功、斷開連接等)處理隊列數據。

4、send_item_func函數負責實際發送數據。

5、send_item_cbfunc函數處理發送結果,調用用戶回調。

6.4.3 事件處理

1、CONNECT_OK:BLE 連接成功,開始發送隊列數據。

2、SEND_REQ:有新數據需要發送,繼續處理隊列。

3、DISCONNECTED:連接斷開,清空隊列并通知所有發送請求失敗。

6.5 ble_uart_app

6.5.1 主要功能

1、UART 初始化:打開 UART1 接口,配置波特率 115200、數據位 8、停止位 1、無奇偶校驗。

2、數據接收:訂閱 "RECV_BLE_WRITE_DATA" 消息,接收來自 BLE 中心設備的寫入數據。

3、數據轉發:將接收到的 BLE 數據(包含服務 UUID、特征值 UUID 和實際數據)通過 UART1 發送到 PC 端。

6.6 ble_timer_app

6.6.1 主要功能

1、創建兩個獨立的循環定時器

一個用于定時 以 notify 方式向中心設備推送數據(需中心設備先開啟 notify 訂閱)。

一個用于定時 更新 特征值數據,中心設備需要主動讀取特征值獲取最新數據。

6.6.2 核心實現

實現兩個定時器回調函數:

send_notify_data_timer_cbfunc:發布SEND_DATA_REQ消息到 ble_server_sender 模塊。

send_write_data_timer_cbfunc:發送SEND_DATA_REQ消息到 ble_server_sender 模塊。

啟動兩個循環定時器,分別綁定上述兩個回調函數。

七、結果展示

7.1 外圍設備接收中心設備的寫入數據

注:nrf connect 作為中心設備,Air8000 作為外圍設備。

1、燒錄示例 demo 到 Air8000 核心板后,手機端打開 nrf connect 藍牙調試軟件,找到廣播的設備名稱為"LuatOS123"的設備并連接。

wKgZPGkj782ALEIPAADdQkpLC3s223.png

2、手機連接作為外圍設備的 Air8000 后,界面如下所示:

Generic Access 和 Generic Attribute 是 BLE 共有的服務,Unknown Service 為廣播者自定義添加的服務,點開 Unknown Service ,對應的是自定義的服務 UUID 和特征值 UUID 以及其屬性值。

wKgZPGkj8BWAIdJEAAQM2URGvqk454.png

3、中心設備發送,外圍設備被動接收

手機通過 nrf connect 中服務 UUID=0xFA00,特征值 UUID=0xEA02(可寫操作),向外圍設備發送數據。

nrf connect 操作界面如下:

wKgZPGkj8FCAEhmgAAOSM8BPHmY444.png

luatools 日志如下:

wKgZPGkj8HqAcmTQAAFRao0ILoY468.png

7.2 外圍設備向中心設備發送 notify 數據

注:nrf connect 作為中心設備,Air8000 作為外圍設備。外圍設備向中心設備發送 notify 數據,需要中心設備先開啟 notify 訂閱,下圖是 nrf connec 開啟訂閱的方式,點擊圖標”↓↓↓“即可。

點擊圖標”↓↓↓“后,APP 后臺自動監聽從設備 notify 上來的數據,右滑界面,可以看到接收到的每條數據。

wKgZO2kj8LyAaYxJAAR4NvoppHg378.png

八、總結

本文介紹了 Air8000 的 BLE 外圍設備模式,通過示例演示了如何向中心設備發送通知數據,以及如何接收中心設備發過來的數據。


今天的內容就分享到這里了~

審核編輯 黃宇

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

    關注

    13

    文章

    749

    瀏覽量

    66052
  • 低功耗藍牙
    +關注

    關注

    1

    文章

    265

    瀏覽量

    22268
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Air8000 核心板實現 BLE 中心模式的開發實踐 !

    聚焦 Air8000 核心板的 BLE 開發,本文以雙板配置為例,講解中心設備模式的初始化、連接掃描及數據服務配置,為藍牙主設備項目開發提供技術模板。 一、
    的頭像 發表于 09-04 16:09 ?3820次閱讀
    雙 <b class='flag-5'>Air8000</b> 核心板實現 <b class='flag-5'>BLE</b> 中心<b class='flag-5'>模式</b>的開發實踐 !

    Air8000藍牙掃描實戰:從代碼解析到場景應用全攻略

    Air8000藍牙掃描技術的開源,讓觀察者模式實戰開發變得透明高效。通過拆解示例代碼,開發者能快速掌握如何注冊監聽、處理事件回調,進而將其應用于智能門鎖管理、藍牙資產追蹤等場景,實現真正的實時響應
    的頭像 發表于 07-06 16:50 ?439次閱讀
    <b class='flag-5'>Air8000</b>藍牙掃描<b class='flag-5'>實戰</b>:從代碼<b class='flag-5'>解析</b>到場景應用全攻略

    BLE 5.4時代下,Air8000藍牙通知與手機讀寫操作實戰攻略

    隨著BLE 5.4的普及,Air8000模塊藍牙通信性能再升級。本篇將從實戰角度出發,講解如何通過Air8000發送設備通知,以及如何利用手機APP對從機設備進行
    的頭像 發表于 08-13 15:31 ?706次閱讀
    <b class='flag-5'>BLE</b> 5.4時代下,<b class='flag-5'>Air8000</b>藍牙通知與手機讀寫操作<b class='flag-5'>實戰</b>攻略

    Air8000藍牙新篇章:BLE 5.4——輕松實現通知推送與手機端設備控制!

    在物聯網設備互聯需求日益增長的背景下,Air8000藍牙功能迎來重大突破,全面兼容BLE 5.4標準。本文將詳細講解如何利用該模塊發送實時通知,以及通過手機實現從機設備的讀寫操作,解鎖智能交互新場景
    的頭像 發表于 07-11 15:13 ?636次閱讀
    <b class='flag-5'>Air8000</b>藍牙新篇章:<b class='flag-5'>BLE</b> 5.4——輕松實現通知推送與手機端設備控制!

    北斗GPS雙模賦能Air8000:定位精度革命與天線設計優化的實踐路徑

    定位,為智能交通、物流管理等場景提供了技術基石。 想要4G+GNSS+WiFi+BLE+TTS+VoLTE…—— 一個Air8000就夠了! Air8000工業引擎模塊內置低功耗 北斗/GPS雙模衛星導航芯片 ,能夠提供精準穩定
    的頭像 發表于 07-11 16:24 ?493次閱讀
    北斗GPS雙模賦能<b class='flag-5'>Air8000</b>:定位精度革命與天線設計優化的實踐路徑

    如何用Air8000打造無線接入點?AP模式操作指南

    借助Air8000工業引擎的AP模式,可構建自主控制的Wi-Fi網絡。本文將介紹所需硬件、接線方式及關鍵配置步驟,助力設備間無線通信的快速部署。 ? 一、AP 概述 ? 文章開篇先簡單介紹下
    的頭像 發表于 07-11 17:36 ?608次閱讀
    如何用<b class='flag-5'>Air8000</b>打造無線接入點?AP<b class='flag-5'>模式</b>操作<b class='flag-5'>指南</b>

    快速上手Air8000 AP模式:Wi-Fi熱點創建與設備管理

    Air8000工業引擎的AP模式支持無線接入點功能,允許其他設備直接連接。本文將一步步教您如何初始化AP模式、設置網絡參數,實現設備的無線集中控制。 ? 一、AP 概述 ? 文章開篇先簡單介紹下
    的頭像 發表于 07-10 16:28 ?366次閱讀
    快速上手<b class='flag-5'>Air8000</b> AP<b class='flag-5'>模式</b>:Wi-Fi熱點創建與設備管理

    LuatOS藍牙配網流程解析Air8000開發入門必備

    介紹下 Air8000 工業引擎的 AP 模式,一般來說,Air8000 工業引擎使用中支持兩種無線網絡工作模式,分別為 AP 模式和 ST
    的頭像 發表于 07-10 17:11 ?494次閱讀
    LuatOS藍牙配網<b class='flag-5'>全</b>流程<b class='flag-5'>解析</b>:<b class='flag-5'>Air8000</b>開發入門必備

    LuatOS藍牙配網開發全攻略:以Air8000為核心實戰教學

    聚焦Air8000核心板的藍牙配網功能,本文整合開發流程:硬件準備、腳本編寫、固件燒錄及測試驗證,為開發者提供一站式解決方案。 一、藍牙配網概述 ? 文章開篇先簡單介紹下 Air8000 工業引擎
    的頭像 發表于 07-10 17:17 ?422次閱讀
    LuatOS藍牙配網開發全攻略:以<b class='flag-5'>Air8000</b>為核心<b class='flag-5'>實戰</b>教學

    高效開發:解鎖Air8000 LuatOS softAP配網功能的核心技術!

    ,提升用戶體驗。 ? 一、SoftAP 概述 ? 文章開篇先簡單介紹下 Air8000 工業引擎的 AP 模式,一般來說,Air8000 工業引擎使用中支持兩種 無線網絡 工作模式,分
    的頭像 發表于 07-17 15:49 ?509次閱讀
    高效開發:解鎖<b class='flag-5'>Air8000</b> LuatOS softAP配網功能的核心技術!

    揭秘Air8000對講黑科技:AirTalk+MQTT開發示例深度解析

    Air8000的AirTalk對講方案如何實現設備間無縫通信?答案藏在MQTT協議的高效架構中。本文通過完整開發示例,層層剖析代碼邏輯:從初始化Air8000模塊到MQTT主題配置,再到對講數據
    的頭像 發表于 08-06 17:16 ?634次閱讀
    揭秘<b class='flag-5'>Air8000</b>對講黑科技:AirTalk+MQTT開發示例深度<b class='flag-5'>解析</b>

    是否必須使用LuatIO?Air8000 GPIO配置與設計規范深度解析

    Air8000的GPIO應用開發中,LuatIO的角色至關重要。本文剖析其必要性,結合設計注意事項,為開發者提供從配置到優化的流程指南。 想要4G+GNSS+WiFi+BLE
    的頭像 發表于 07-29 13:54 ?415次閱讀
    是否必須使用LuatIO?<b class='flag-5'>Air8000</b> GPIO配置與設計規范深度<b class='flag-5'>解析</b>

    一招破解音頻硬件困局:Air8000參考設計讓開發零門檻

    、Wi-Fi、BLE、GNSS等多功能“All in One”的高集成設計,對工業級可靠性與功耗的深度優化,以及對開發者極為友好的生態支持,成為物聯網和工業自動化領域的優選方案。 Air8000系支持音頻功能,無論VoLTE還
    的頭像 發表于 09-04 15:17 ?666次閱讀
    一招破解音頻硬件困局:<b class='flag-5'>Air8000</b>參考設計讓開發零門檻

    Air8000 核心板構建 BLE 中心模式通信系統流程

    從硬件連接到軟件配置,本文完整記錄雙 Air8000 核心板搭建 BLE 中心設備通信系統的全過程,涵蓋協議適配、連接建立及性能測試等關鍵環節。 一、BLE 概述 ? BLE(Blue
    的頭像 發表于 09-04 16:09 ?449次閱讀
    雙 <b class='flag-5'>Air8000</b> 核心板構建 <b class='flag-5'>BLE</b> 中心<b class='flag-5'>模式</b>通信系統<b class='flag-5'>全</b>流程

    Air8000 模塊 CAN 接口實戰開發:從入門到配置的完整流程指南

    在工業通信與物聯網應用中,CAN 總線以其高可靠性和實時性成為關鍵通信方式。Air8000 模塊集成 CAN 接口后,為設備互聯提供了強大支持。本文將帶你進行一次完整的實戰演練,系統解析
    的頭像 發表于 10-29 14:05 ?293次閱讀
    <b class='flag-5'>Air8000</b> 模塊 CAN 接口<b class='flag-5'>實戰</b>開發:從入門到配置的完整流程<b class='flag-5'>指南</b>