首页 > 编程知识 正文

小菡pub小程序蓝牙怎么连接,小程序使用说明书

时间:2023-05-06 16:36:56 阅读:128819 作者:190

微信小程序的特点是无需下载App,只要是安装有微信的一部智能手机,几乎就可以运行微信小程序。基于这个特点,我设计了一款小程序版的蓝牙串口助手,适用于简单的蓝牙串口调试工作。

从事蓝牙相关产品开发的兄弟们,手机端的LightBlue、BLE Scanner、Nordic的nRF Connect等软件已经做得很好,但是使用起来,有些东西不能满足我的需求例如,UUID是一个长字符串,一般很难记住为110个字符,但实际操作时,请扫描Service UUID,单击后扫描相应的ymdxlb UUID,判断是否为notify,读取或写入read没事。 对于wirte,必须选择ASCII码还是HEX数。 这个时候,如果系统里出现中文键盘,你几乎崩溃了……

无论如何,这些软件都可以扫描ymdxlb,但其操作(读/通告,写)很困难。 基于这些痛点,我设计了一个串行调试接口UI,像普通的串行调试助手一样发送和接收数据,并根据ASCII、HEX的不同场景定制键盘。 像HEX键盘一样,输入时可以根据是否自动添加字节来添加空格,操作和视觉上都很简单。

详细信息在这里不要太渲染,谈谈蓝牙操作的流程吧。 微信小程序蓝牙的API有三个位置(两个部分)与蓝牙有关。

一、以手机为周边广播,让其他设备连接手机。

二、是以手机为主设备,扫描周边设备连接的。 这里谈谈这一部分。

三、接下来是蓝牙的开关操作。

复制并列出相应的API。 其中,“bluetooth”部分是也作为主从站使用的API。

另一方面,外围设备(手机作为外围设备对应的API ) :

wx.onbleperipheralconnectionstatechanged

wx.offbleperipheralconnectionstatechangedwx.createbleperipheralserver

bleperipheralserverbleperipheralserver.addservice

BLEPeripheralServer.close

bleperipheralserver.offymdxlbreadrequest

bleperipheralserver.offymdxlbsubscribed

bleperipheralserver.offymdxlbunsubscribed

bleperipheralserver.offymdxlbwriterequest

bleperipheralserver.onymdxlbreadrequest

bleperipheralserver.onymdxlbsubscribed

bleperipheralserver.onymdxlbunsubscribed

bleperipheralserver.onymdxlbwriterequest

bleperipheralserver.removeservicebleperipheralserver.start advertising

bleperipheralserver.stop advertising

bleperipheralserver.writeymdxlbvalue

二、低功耗蓝牙(手机作为主设备相应的扫描API ) :

wx.writebleymdxlbvaluewx.setblemtu

wx.readbleymdxlbvaluewx.onbleconnectionstatechange

wx.onbleymdxlbvaluechangewx.offbleconnectionstatechange

wx.offBLEymdxlbValueChange

wx.notifybleymdxlbvaluechangewx.makebluetoothpair

wx.getBLEDeviceServices

wx.getBLEDeviceRSSI

wx.getbledeviceymdxlbswx.createbleconnection

wx.closeBLEConnection

三.蓝牙:

wx.stopbluetoothdevicesdiscoverywx.startbluetoothdevicesdiscovery

wx.openBluetoothAdapter

wx.onBluetoothDeviceFound

wx.onbluetoothadapterstatechangewx.offbluetoothdevicefound

wx.offbluetoothadapterstatechangewx.getconnectedbluetoothdevices

wx.getBluetoothDevices

wx.getBluetoothAdapterState

wx.closeBluetoothAdapter

在通信操作中,一般被连接的设备叫「从机」,从机的程序相对比较“难”写,这里的难是加引号的,不是代码难写,是逻辑功能要考虑的比较全面,主机要什么,从机该回什么,这一切都要设置好。而主机在逻辑功能上可以选择“想要就要,不要想就不要”的操作逻辑。所以在这一方面,个人认为主机代码是相对简单的。但主机既然可以选择性要东西,那就需要有一个交互的UI,比如键盘交互,输入长度等内容,所以主机一般需要有一块屏幕。

所以今天我们来谈谈手机作为蓝牙主机,蓝牙模块作为蓝牙从机。 其中,蓝牙外围设备有两项服务。 一个是透明的数据服务,另一个是用于设置波特率等信息的配置服务

手机端流程:

1 .打开蓝牙

wx.openBluetoothAdapter

2 .打开蓝牙sucess回调以开始扫描蓝牙设备

wx.startbluetoothdevicesdiscovery

扫描sucess回调以发现蓝牙设备(发现的设备位于devices数组中,该变量保持不变。 应该在库中定义。 将其设置在页面上显示即可) )。

wx.onBluetoothDeviceFound

4 .选择蓝牙设备建立连接

wx.createBLEConnection

5 .享受设备服务

wx.getBLEDeviceServices

6 .获取器件特性值

wx.getBLEDeviceymdxlbs

到此为止,您可以获得设备服务的特征值。 对其进行读写操作。 各软件的区别也主要在这里。 以前按顺序运行没有问题,但有一些服务。 每个服务都有不同的特征值,每个特征值都有不同的读写特性。 大多数软件允许用户像操作列表一样一个接一个地访问。 不然的话,我会再一次退出。 我在这里改进了检查和保存所有的特征值

如上图所示,右图上方为所有服务的特征值,下方为操作picker选择notify/indecate、write、read,避免相互干扰。 如图所示,正常的发送/接收操作基于这种串行调试接口,并且可以单独地仅读取read属性的特征值。

蓝牙设备的连接调试现在已经完成,但串行助手还不够。 今天写在这里。 另外,还附上小程序的代码。 请体验交流。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。