6 3藍芽透傳資料與微信小程式通訊

2022-02-13 20:11:50 字數 2574 閱讀 5355

從藍芽4.0開始包含了兩個標準,傳統藍芽(classic buletooth)和低功耗藍芽(bluetooth low energy)以下簡稱 ble。

傳統藍芽支援音訊和資料兩大類協議,所以更適合**等資料量大的應用場景;傳統藍芽有3個功率級別,class1、class2、class3,分別支援100m、10m、1m的傳輸距離。

ble 更適用於實時性比較高,資料傳輸量小的場景,如遙控燈;ble 無功率級別,一般傳送功率在7dbm,一般在空曠距離,達到20m應該是沒有問題的。

ble 的基本概念

1 gatt

說到 ble 就不得不提一下 gatt (generic attribute profile) 通用屬性協議。gatt是乙個在藍芽連線之上的傳送和接收很短的資料段的通用規範,gatt 按照層級定義了三個概念:service、characteristic 和描述 descriptor,這些合起來稱為乙個 profile。

2 gap

gap(generic access profile)通用訪問協議,用來控制裝置連線和廣播。gap 使你的裝置被其他裝置可見,並決定了你的裝置是否可以或者怎樣與合同裝置進行互動。

在 gap 中外圍裝置通過兩種方式向外廣播資料: advertising data payload(廣播資料)和 scan response data payload(掃瞄回覆),每種資料最長可以包含 31 byte。這裡廣播資料是必需的,因為外設必需不停的向外廣播,讓中心裝置知道它的存在。掃瞄回覆是可選的,中心裝置可以向外設請求掃瞄回覆,這裡包含一些裝置額外的資訊,例如裝置的名字。

3 service

characteristic 的集合。比如某個 service 可能叫「電量管理」,它可能包含多個characteristics。

4 characteristic

characteristic 可以理解為乙個資料型別,包含了乙個 value 和零至多個對該 value 的描述。

5 descriptor (可選)

對 characteristic 的描述,例如範圍、計量單位等。

6 uuid

統一識別碼,service 和 characteristic 都需要乙個唯一的 uuid 來標識, 它是 128bit 的值。

如何在小程式中使用,第一步先開啟藍芽配器。

wx.closebluetoothadapter(

})第二步 開始搜尋附近的藍芽裝置。

wx.startbluetoothdevicesdiscovery()}})

第三步 獲取附近的藍芽裝置

wx.onbluetoothdevicefound(function(devices) else

console.log(devices.devices[0])

for (var i = 0; i < that.data.deviceslist.length; i++)

}that.data.deviceslist.push(devices.devices[0])

} that.setdata()

})},

第四步 連線藍芽

deviceid 是對應藍芽裝置資訊的deviceid,系統是根據這個藍芽的deviceid,去找到這個藍芽並建立連線。在前面第三步中獲取的是所有搜尋到藍芽裝置列表,這個是對應的某一藍芽裝置的deviceid,注意: 乙個藍芽有多個服務,乙個服務有多個特徵值,如果我們想對藍芽進行寫、讀操作,那麼我們至少需要3個引數。

1、藍芽的deviceid

2、藍芽的某一服務的 uuid

3、藍芽某一服務下的某一特徵值的uuid

我們至少需要這3個,才能對藍芽的某乙個功能進行操作。

connect: function(e)

}第五步 獲取藍芽的服務

藍芽的服務是由對應藍芽裝置設定的,這個是屬於硬體的設定。乙個藍芽可以開啟多個服務,我們根據對應的服務操作相對應的功能。開啟主服務isprimary的值為true,主服務是為了與其他服務區分開來,注意: 我們這裡是用對應的服務uuid去區分服務的。

wx.getbledeviceservices(;

};第六步 獲取藍芽對應服務的特徵值

每乙個不同的藍芽服務,對應的特徵值也不同,當該服務的特徵值為true時,我們才與之進行對應的操作,一般我們通過判斷 read 屬性是否為真,便可以知道能不能通過該服務讀取到藍芽的值,當write為真時,我們便可以對藍芽裝置進行寫資料操作。

wx.getbledevicecharacteristics()

wx.notifyblecharacteristicvaluechange(,

fail(res) })}

})}找到wm開頭的,就是我們開發板產生的藍芽,連線。

連線成功,可以收到w800傳送過來的實時資料。

點選傳送可以發資料到開發板:

微信小程式藍芽開發

藍芽模組如何快速改名並繫結使用者手機?這樣即使多台藍芽裝置在同乙個地方使用也可以互不干擾,燧星科技給出解決方案。長按控制板5秒進入待繫結下狀態,點選 新增藍芽裝置 小程式會生成乙個藍芽名並分別儲存在控制板與小程式中形成繫結關係。新增成功之後點選確定進入控制面 此時藍芽裝置可直接與手機進行資料傳輸,手...

微信小程式之藍芽列印

全域性變數,藍芽物件模板,但是在初始化藍芽之前需要刪除資料。globaldata if ios else 第一步 初始化藍芽裝置wx.openbluetoothadapter fail function res 第二步 搜尋附近藍芽裝置wx.startbluetoothdevicesdiscover...

微信小程式藍芽連線裝置

參考官方文件 上 wxml bindtap initblue 初始化藍芽view 匹配到的藍芽 view 高壓 view 低壓 view 脈搏 view view wxjs page 1.0 wx.openbluetoothadapter 初始化藍芽模組 initblue function that...