全国服务热线 13196795603
公司新闻

常州微信小程序实现蓝牙硬件开发和智能控制

发布时间: 2021-05-25 15:22 更新时间: 2023-02-21 11:41

蓝牙作为一种常见的短距离通讯技术标准,在短距离的硬件设备上提供低成本的通信规范。主要应用于计算机、手机设备、传真机、耳机等很多广泛应用场景,主要特点有:免费使用,BLE4.0低功耗标准,有一套安全加密机制和授权机制,传输率较高。

微信小程序硬件开发,提供了一套蓝牙接口,对于常州开发微信小程序点个赞科技的前端工程师来说,无需像安卓和苹果开发了解蓝牙底层的概念。

蓝牙连接操作流程

1、开启蓝牙设备,初始化蓝牙适配器

2、全局监听蓝牙适配器状态变化事件

3、扫描展示可连接蓝牙设备列表

4、发现目标设备,连接指定蓝牙设备

5、连接成功,同时扫描服务,扫描特征

6、开启蓝牙:调用openBluetoothAdapter来开启和初始化蓝牙,这个时候可以根据状态判断用户设备是否支持蓝牙,同时开启监听通知(sticValueChange)此处可获取通知信息(16进制串)在此处做接收到通知后的逻辑处理

7、发送16进制数据

8、断开连接(一个BLE只能同时被一个主机连接。如果不用或换主机连接需要先断开当前连接)

9、断开所有已建立的链接并释放系统资源,实现蓝牙关闭连接。

1196332456.jpg

蓝牙开发中字符转换的问题

微信小程序与蓝牙设备通信的数据是16进制的 ArrayBuffer。所以写数据前及接收到数据后需要进行相应的格式转换。

js转16进制还是比较方便的直接用 int.toString(16) 即可,有时候需要转的是字符串需要做一些parseInt处理再转16进制,16进制数据转ArrayBuffer。

 

stringToHexBuffer: function (data) {

//var data = 'AA5504B10000B5'

var typedArray = new Uint8Array(data.match(/[\da-f]{2}/gi).map(function (h) {

return parseInt(h, 16)

}))

return typedArray.buffer

},

2、接收到通知数据

ArrayBuffer解析出16进制

buf2hex: function (buffer) { // buffer is an ArrayBuffer

return Array.prototype.map.call(new Uint8Array(buffer), x => ('00' + x.toString(16)).slice(-2)).join('');

},

js 16进制转10进制

接收数据fe1105090b200e01 可能需要截取字段两位为一个解析  解析第三、四位 11 为10进制 :parseInt(detail.substr(2,2),16).toString(10);

如何调试

1、常州开发蓝牙小程序公司点个赞科技在调试过程,主要流程是先出硬件,然后开发小程序去连接硬件,操作对应接口,硬件工程师给出相应反馈,硬件操作写数据,通知开发小程序前端人员。

2、如果硬件没有出来需要先开发微信小程序怎么办?常州开发小程序蓝牙智能控制公司点个赞科技就遇到了这个问题,硬件还没有,客户就要求我们先用程序实现api ,对方再按照api 开发硬件。其实也有解决如下:

a.首先要准备一个串口BLE蓝牙设备(后续操作是基于这个设备有usb 插头,可插到电脑上)。

b.下载并安装电脑usb 转 串口驱动(windows下 CH340驱动)。

c.下载并安装串口调试工具(windows下sscom) 打开进行简单设置。

到此结束,由于作为常州小程序应用开发者与硬件打交道也不少,此文纯属自己开发中遇到的一些问题及总结,希望对在开发过程遇到同样问题的技术人员,能够起到帮助。

1210069185.jpg

其他新闻

    联系方式

    • 地址:常州 常州市钟楼区桂花园1-1幢
    • 电话:0519-89966566
    • 联系人:陈经理
    • 手机:13196795603
    • Email:2776216202@qq.com