APP下载

基于蓝牙控制的发光二极管

2022-04-18谢文兰

内蒙古科技与经济 2022年3期
关键词:二极管端口蓝牙

谢文兰

(广东培正学院 数据科学与计算机学院,广东 广州 510830)

用电设备是每个家庭中必不可少的家居设备,比如电灯、电视机、洗衣机等。以前人们对于电源的控制都是通过电源的开关来实现。这就要求人们必须走到开关面前才能触碰开关,会给人们的生活带来一些不便。比如晚上人们想睡觉时,一般都要先关了灯才能睡觉。床离灯的开关有一定的距离,关灯后,人们要摸黑一段距离才能回到床上。晚上醒来想开灯时,也要摸黑走到开关附近才能开灯。随着物联网技术的发展,人们也希望对电源设备的控制越来越方便,越来越简捷。最好能够实现随时随地控制电源设备。基于此,笔者将设计一个手机小程序,它可通过蓝牙通信发送命令来实现二极管的开和关。

1 蓝牙

蓝牙是一种支持设备短距离通信的无线电技术。提到蓝牙,人们一般先想到的是蓝牙耳机。我们可以通过蓝牙耳机播放手机中的音乐或者接听电话。其实这一过程就是通过蓝牙技术在手机和耳机中交换数据。蓝牙、Wi-Fi和ZigBee都是目前无线短距离通信技术的主流。蓝牙能在手机和相关外设等众多设备之间进行无线信息交换,具有方便快捷、灵活安全、低成本和低功耗等特点。只要在设备中安装蓝牙模块,就可以接收和发送数据。Wi-Fi技术传输数据速率较快,传输距离也比蓝牙技术要远,但是技术相对比较复杂,功耗比蓝牙也要大。ZigBee技术更适合在成千上万的传感器中组建无线传感网络。在智能家居的应用中,家居设备的距离一般都比较近,人们一般都选择用蓝牙通信技术来交换数据。本文也是通过蓝牙通信实现对发光二极管的开和关。

2 硬件

硬件由STC89C52微控制器、蓝牙模块和LED灯模块三部分组成。STC89C52是STC公司生产的一种低功耗、高性能CMOS 8位微控制器,具有8 kB系统可编程Flash存储器。STC89C52具有以下标准功能:8 kB Flash,512 B RAM,32位I/O口线,看门狗定时器,内置4 kB EEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。STC89C52的8个I/O端口(P1.0-P1.7端口)和LED灯模块的8个LED灯相连。蓝牙模块为BT06模块。BT06模块的输入电压在3.6 V~6 V之间。通信距离在空旷环境下为10 m左右。BT06模块的工作频段为2.4 GHz,通信协议为蓝牙2.0。BT06模块的VCC引脚接+5 V电源,GND引脚接地。蓝牙模块的RXD端口连接到STC89C52的TXD端口。蓝牙模块的TXD端口连接到的STC89C52的RXD端口。蓝牙模块上的状态指示灯用于指示蓝牙模块的工作状态。当LED灯均匀慢速闪烁时,表示蓝牙模块正在等待配对。当LED灯长亮时,表示蓝牙模块已经成功建立连接。其中STC89C52电路图如图1所示,蓝牙模块如图2所示。

图1 STC89C52电路图

图2 蓝牙模块

3 手机控制界面

2017年腾讯公司推出微信小程序。这几年,小程序得到了很大的发展,相比App,小程序不需要下载,用户只需要搜索小程序便可以加载,无须过多占用手机内存,使用更加方便简捷。并且小程序官方为蓝牙通信提供了众多的函数。搜索蓝牙设备的流程可分为4步。①初始化小程序蓝牙模块,可以调用open Bluetooth Adapter函数。②开始搜寻附近的蓝牙外围设备,可以调用start Bluetooth Devices Discovery函数。③获取在小程序蓝牙模块生效期间所有已发现的蓝牙设备,可以调用get Bluetooth Devices函数。④连接指定名称的蓝牙设备,可以调用create BLE Connection函数。

综合上述原因,本次设计采用了小程序作为手机控制界面。设计界面比较简单,只设计了蓝牙开启、搜索和连接设备、获取设备信息、控制各个LED灯开和关这些功能。当点击“请开启蓝牙”按钮,可以进行手机蓝牙是否开启测试。如果手机蓝牙尚未开启,会提示开启蓝牙。蓝牙开启后,便可以和硬件进行蓝牙连接。在这里,硬件的蓝牙设备取名为“ZNJJ”,并且设备名已经写在小程序中。当点击连接按钮后,手机蓝牙会自动搜索“ZNJJ”,并试图与硬件开发板进行连接。在这个过程中,会发生以下几种情况:①连接成功;②可以找到连接设备,但连接失败;③找不到连接设备,连接失败。每种情况都会有相应的提示。用户可以根据相应的情况提示解决问题。连接成功后,还有一个按钮可以获取相关的设备信息。因为硬件上有8个发光二极管,所以控制界面上对应有8个二极管的开与关。以发光二极管1为例,当点击界面上的“LED1开”,LED模块中第一个发光二极管就会亮。当点击界面上的“LED1关”,LED模块中第一个发光二极管就会熄灭。控制界面如图3所示,发送指令相关代码如下所示:

图3 小程序控制界面

onSendCommand(){

let that=this;

if(that.data.serviceId && that.data.characteristicId) {

wx.writeBLECharacteristicValue({

deviceId:that.data.deviceId,

serviceId:that.data.serviceId,

characteristicId:that.data.characteristicId,

value:that.str2ab(that.data.command),

success:function(res){

//setTimeout(function(){

//send(i+1)

//},20)

console.log("发送LED开指令成功");

wx.showToast({

title:′发送成功′,

icon:′none′

}) },

fail:function(res){

console.warn("发送指令失败",res)

}})

}else{

wx.showModal({

title:′提示′,

content:′请先获取设备信息′,

showCancel:false

})}},

4 测试结果

测试结果在小程序真机调试下完成。手机和硬件开发板在同一个房间内。通过控制界面可以实现手机蓝牙的开启。当开启手机蓝牙后,点击搜索和连接蓝牙,可以连接上硬件开发板。当发送开和关的指令时可以控制LED的开关。

5 结束语

本次设计实现了一个基于蓝牙控制的发光二极管,可以通过手机小程序控制LED的开关。但此次设计的功能比较简单,下次可以尝试比较复杂的功能,比如由蓝牙通信控制玩具车的行驶等。

猜你喜欢

二极管端口蓝牙
蓝牙音箱的直线之美
一种有源二端口网络参数计算方法
一种端口故障的解决方案
多按键情况下,单片机端口不足的解决方法
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器
二极管及其典型应用电路仿真测试
Smart Shirts Generate Electricity
超高亮度发光二极管外延片和芯片产业化
PIN二极管限幅器的电磁脉冲损伤特性试验