低功耗藍牙技術連接的那些事

愛碼哥|低功耗藍牙技術連接的那些事

低功耗藍牙技術(Bluetooth low energytechnology)是藍牙經典標準的演進,專注於為設備間提供可靠、高效且低功耗的鏈路連接。它具有超低的功耗,滿足超長的續航能力。2014年年底,藍牙技術核心規範4.2版本正式發佈。在該版本中,引入了最新的隱私保護機制,此外,該版本還大大提升了低功耗藍牙技術設備間數據傳輸的速度與可靠性。

由於低功耗藍牙技術封包容量增加,設備之間的數據傳輸速度可較藍牙4.1版本提升2.5倍。數據傳輸速度與封包容量的增加能夠降低傳輸錯誤發生的機率並減少電池能耗,進而提升連網的效率。本文就低功耗藍牙技術設備之間的連接進行詳細的講解。希望能幫助開發者設計出更多有創新性的產品和解決方案。

藍牙4.0 BLE(低功耗藍牙),手機通過藍牙4.0訪問外設(Peripheral),比如:運動手環等。

插件代碼:ImagBLE

支持平臺:Android,iOS

方法


愛碼哥|低功耗藍牙技術連接的那些事


BleDevice

BLE設備對象


愛碼哥|低功耗藍牙技術連接的那些事


BleService

BLE設備的服務對象


愛碼哥|低功耗藍牙技術連接的那些事


BleCharacteristic

BLE服務的特徵對象


愛碼哥|低功耗藍牙技術連接的那些事


BleDescriptor

BLE特徵的描述對象


愛碼哥|低功耗藍牙技術連接的那些事



完整示例代碼(左右滑動看代碼)


<imag>

<page>
<title>
<center>
<label>藍牙(Bluetooth)/<label>
/<center>
/<title>
<content>
<button>getName()/<button>
<button>enableBluetooth()/<button>
<button>disableBluetooth()/<button>
<button>isEnabled()/<button>
<button>isSupportBle()/<button>
<button>scan()/<button>
<button>scanAndConnect()/<button>
<button>read()/<button>
<button>disconnect()/<button>
<button>isConnected()/<button>
<button>readRssi()/<button>
/<content>
/<page>
/<imag>


說明:測試上面的例子需要兩個手機,首先在安卓手機上安裝上面例子的模擬外設APK: ble-test-peripheral.zip(https://doc.imagjs.com/_media/plugin:network:ble-test-peripheral.zip)

Github源碼地址:ble-test-peripheral(https://github.com/WebBluetoothCG/ble-test-peripheral-android)


愛碼哥|低功耗藍牙技術連接的那些事


這個模擬程序包括三個模擬功能,分別是Battery, Heart Rate Monitor和Health Thermometer。

Service uuid和Characteristic uuid分別為:

Battery:

 BATTERY_SERVICE_UUID: 0000180f-0000-1000-8000-00805f9b34fb 
BATTERY_LEVEL_UUID: 00002a19-0000-1000-8000-00805f9b34fb

Heart Rate Monitor:

 HEART_RATE_SERVICE_UUID: 0000180D-0000-1000-8000-00805f9b34fb 
HEART_RATE_MEASUREMENT_UUID: 00002A37-0000-1000-8000-00805f9b34fb
BODY_SENSOR_LOCATION_UUID: 00002A38-0000-1000-8000-00805f9b34fb
HEART_RATE_CONTROL_POINT_UUID: 00002A39-0000-1000-8000-00805f9b34fb

Health Thermometer:

 HEALTH_THERMOMETER_SERVICE_UUID: 00001809-0000-1000-8000-00805f9b34fb
TEMPERATURE_MEASUREMENT_UUID: 00002A1C-0000-1000-8000-00805f9b34fb
MEASUREMENT_INTERVAL_UUID: 00002A21-0000-1000-8000-00805f9b34fb

上面的例子只測試了Battery,用到了Battery的uuid。

測試時把'小米11'替換成自己的外設名稱。

接收和寫入數據都用到了ByteBuffer對象,具體請參考:字節處理(ByteBuffer)(https://doc.imagjs.com/advance:bytebuffer)

愛碼哥(iMAG)是一款專門用來開發手機APP的工具軟件,它同時具備幾大特點:1.跨平臺開發的效率工具,大幅降低APP開發門檻;2.愛碼哥擁有強大的集成能力,高度模塊化、插件化的開發方式使得用戶可以在短時間裡整合海量功能;3.愛碼哥雲平臺(http://imagjs.com)基於雲技術為開發者和企業提供一體化(All In One)的完備服務。


分享到:


相關文章: