APP下载

基于蓝牙技术的微信小程序与单片机数据传输的实现

2019-09-10吴燎

锦绣·下旬刊 2019年4期
关键词:微信小程序蓝牙单片机

吴燎

摘要:目的:实现在移动端通过微信小程序控制石墨烯加热与停止,并且通过温度传感器返回温度数据显示在微信小程序中,为微信小程序控制硬件设备提供参考。方法:通过研究小程序开发文档,调用微信小程序的蓝牙接口,获取服务id,发送指令与接收数据,控制单片机。结果:通过微信小程序可以发送指令控制石墨烯的加热温度和加热时间以及停止加热,并且动态显示单片机的温度。结论:通过微信小程序成功地实现了通过蓝牙连接设备,发送指令与接收数据。小程序可以通过调用手机的蓝牙传感器实现传统app的蓝牙功能。

关键词:微信小程序;蓝牙;单片机

一、前言

单片机是广大在校大学生的必修课之一,也是大多数大学生的毕业设计作品的首选项,还有许多现代家电的嵌入式开发也离不开单片机。现有一石墨烯控温作品,集成蓝牙模块,石墨烯加热模块,温度传感模块,实现了加热、停止和控制温度功能。其温度的加热、停止和时间的控制需要用一台拥有蓝牙的设备来发送指令控制,传统指令发送只能使用特定的软件终端来控制,如果需要实现个性化的控制,则需要自己重新制作终端软件。现在微信小程序越来越火,其小而美的特点使得其成为开发软件的首选项。如何利用小程序开发一款属于自己特有的APP,实现小程序与硬件设备交互,发送指令与接收数据成为了当下待解决的问题。对此,此研究利用微信小程序实现了发送指令、控制石墨烯的加热时间和温度,并且可以发送指令停止加热。

二、相关技术简介

1.单片机相关。此系统主要由蓝牙模块、石墨烯模块、溫度传感器模块、最小系统构成。蓝牙模块实现单片机和上行软件的连接和数据传输功能。温度传感器实现了检测温度提供数据功能。石墨烯模块实现了加热功能,最小系统实现了计算和逻辑功能。蓝牙模块使用之前首先要进行调试与配置,配置名称、密码和波特率。接着,烧录程序到单片机之中,蓝牙模块将单片机串口发送的数据向连接的蓝牙设备发送,蓝牙设备通过串口向单片机发送指令。单片机的程序设定,发送指令为四位数字,前两位数字代表加热的温度,用于控制石墨烯加热芯片的温度,后两位数字代表加热的时间。如“6005”代表加热60°,加热时间为5分钟。返回的数字为当前传感器检测的温度。如“23”为当前温度是23°。

2.微信小程序。微信小程序是当下软件开发的热点,其具有轻量的特点,小程序的大小往往只有几M,相比传统APP需要下载几十M的安装包,其对流量的需求很低。其次,小程序具有免安装的特点。传统的APP需要下载安装包,下载安装,软件常驻系统磁盘,占用了空间。微信小程序用完即走,无需安装,不占用手机存储空间。最后小程序还有巨大用于人群,小程序寄生于微信,其庞大的用户数量使得小程序拥有良好的寄生环境。大量的潜在用户只需扫码或者搜索便可轻松使用。

三、微信小程序中功能的实现。

1.单片机连接蓝牙设备。在使用小程序发送命令和接收数据之前首先要联通单片机和蓝牙设备[1]。在联通之前首先判断本机的蓝牙是否打开[2](wx.getBluetoothAdapterState()),如果蓝牙没有打开则给出提示,打开则开始搜索设备(wx.startBluetoothDevicesDiscovery()),如果搜索成功则会返回所有蓝牙设备的列表,包括蓝牙的名字,设备id等信息。最后便是连接设备,获取目标设备的id,通过wx.createBLEConnection()方法连接设备。

2.获取蓝牙服务和特征数据。小程序指令的发送和数据的接收是不同的服务,因此首先要获取蓝牙的服务(wx.getBLEDeviceServices())。服务列表中中包括接收数据的服务和发送指令的服务。每个服务中包含了特征数据,使用wx.getBLEDeviceCharacteristics()分别获取接收的数据特征值和发送的指令特征值。

3.接收数据。在接收数据之前首先要开启监听机制。如果蓝牙的数据改变或更新就接收数据,开始监听机制调用方法wx.notifyBLECharac teristicValueChange(),开启监听之后便可以接收变化的数据,onBLEConnectionStateChange()方法在特征值变化时调用,利用此方法接收蓝牙更新的数据。

4.发送指令。发送命令的前提是要先获取发送1蓝牙服务和特征值,在获取了数据之后,利用wx.write BLECharacteristicValue()方法将特征值写入蓝牙设备,但是,此方法必须要设备支持write服务才能使用,不支持写入数据的蓝牙不能调用此方法。此外,该方法传入的数值必须为二进制,而写入的命令为字符串类型变量,因此要先转化为二进制变量再传入,可使用var dataView=new Uint8Array()声明无符号整型数组,再将每一个字符串的unicode编码存入数组实现二进制化,最终写入命令实现温度的控制效果。

四、结语

通过微信小程序调用蓝牙设备的接口,实现了获取所有蓝牙服务,获取蓝牙数据的特征值,以及监听特征值变化,写入特征值等功能。可以做到接收单片发送的温度数据,可以将字符串命令转化为二进制数据发送至单片机,控制单片机的加热温度和加热时间。基本实现了与蓝牙设备的交互功能,此研究为单片机等嵌入式设备的上行控制软件开发提供了一个实例,利用微信小程序与单片机的交互是完全可以实现的。希望此研究能给在校大学生做单片机毕业设计以及相关开发人员带来一些思路,同时希望能微信的接口能继续扩展,实现更加复杂的蓝牙交互功能。

参考文献

[1]葛偲涵,刘毅,陈健.BLE技术在智能公寓门锁微信小程序中的开发与实现[J].工业控制计算机,2018,v.31(06):115 -116+119.

[2]微信小程序开发文档

猜你喜欢

微信小程序蓝牙单片机
帮你轻松找到AirPods的神奇工具
信息技术与专业课程融合路径探索
当图书馆遇上微信小程序
无线连接的飞跃 蓝牙技术4.2揭密
C8051F020与80C51单片机的异同点
蓝牙4.0落地加速
蓝牙4.0:更快速更节能
单片机I/O口模拟串行通讯的C51实现方法
单片机调试方法的探讨
用PIC单片机制作的时间继电器