基于C52的蓝牙距离预警功能的设计
2018-03-23李翔宇马夕然叶奕风
李翔宇,马夕然,叶奕风
(1. 天津工业大学 计算机科学与软件学院,天津 300387;2. 天津工业大学 电子信息与工程学院,天津 300387;3. 天津工业大学 机械学院,天津 300387)
0 引言
近几年来,随着物联网的不断发展,多种新兴科学技术也开始得到了应用。在物联网领域中,由于蓝牙技术的不断成熟,使其得到更多的应用拥有更重要的作用。本部分主要介绍基于单片机的家长端与孩子端蓝牙互联。本文基本用STC89C52RC这种型号的单片机作为主要控制端,在大概规定距离内,因蓝牙模块的无线互联使得设备的小灯闪耀,当距离过远,通过蜂鸣器报警,两个单片机通过内部程序实现实时连接和断开,从而完成家长端和孩子端的互联。
1 功能及总体方案
1.1 功能描述
首先,距离大约20米内,HC-05主从机一体蓝牙模块互联,信号通过无线传送到另一HC-05蓝牙上,经该单片机处理后红色LED灯闪烁。超过大约20米距离,HC-05主从机一体蓝牙模块信号中断,再经该单片机处理,实现两蜂鸣器报警,同时红色LED灯常亮。
1.2 系统组成及工作过程
当蓝牙模块距离较近,互相接收到蓝牙信号时,灯会一直闪烁,此时蜂鸣器不会报警。反而距离过远,使得信号中断,会引起两端的蜂鸣器同时进行报警。为了取消报警,缩短两设备的距离,这时候自动恢复红灯闪烁且不报警的状态。
图2 系统组成框图Fig.2 System block diagram
1.3 工作流程图
当佩戴好设备的同时,可以自动检测到蓝牙的连接情况,给出相应的提示,因此可明显看到互连情况。这样在便捷的情况下,使得设备提示达到最佳效果。下图为设备工作流程图。
图3 工作流程图Fig.3 work flow chart
2 硬件设计
2.1 硬件电路总体设计
硬件电路有最主要的单片机最小系统;外围电路有 HC05蓝牙模块,蜂鸣器模块以及电源。其中蜂鸣器和LED灯,分别起到报警和提示作用。如图为总体电路图。
2.2 单片机最小系统电路
主要包括STC89C52RC芯片、复位模块和晶振模块。最小系统电路原理图如图5所示。
STC89C52RC是STC的低功耗,高性能CMOS 8位微控制器,具有 8K字节的系统可编程闪存。STC89C52在采用 MCS-51内核的同时做出了很多方面的改进,使得芯片具有传统的51微控制器不具备的功能。在单芯片上,采用智能8位CPU和可编程闪存系统,使STC89C52可为许多嵌入式控制应用提供高度灵活,超高效的解决方案。指令代码完全兼容于传统的8051微控制器,可以任选12个时钟/机器周期和6个时钟/机器周期。
图4 总体电路图Fig.4 Overall circuit diagram
该控制器主要特点如下,第一,采用增强型8051单片机;第二,可在6个时钟/机器周期和12个时钟/机器两个周期中任意选择,且指令代码和传统8051相同;第三,工作电压为5.5V~3.3 V(5 V微控制器)/3.8 V~2.0 V(3 V微控制器);第四,工作频率范围为 0~40 MHz,相当于普通 8051 0~80MHz的一半,且实际工作频率高达48MHz。用户应用程序空间为8 K字节,片内集成512字节RAM。通用端口为I/O端口,复位后为P1/P2/P3/P4准双向拉出,端口0为漏极开路输出,作为总线扩展,因为 I/O口需要上拉电阻,所以此处无需上拉电阻。ISP(在系统可编程)/IAP(在应用程序可编程)中,无需专业编程器和专用仿真器,通过串口(RxD/P3.0,TxD/P3.1)可直接下载用户程序。具有看门狗功能的功能。也就是说,定时器T0,T1,T2。此外,下拉模式可通过外部中断触发低电平中断模式。工作温度范围为-40~+85℃(工业级)/0~75℃(商业级)。
图5 单片机最小系统电路Fig.5 Minimum system circuit of single chip microcomputer
系统的可靠性在一定程度上靠微控制器的复位电路来保证。复位的基本功能是在系统上实时提供复位信号,直到整个系统稳定时,信号允许被撤销。51单片机采用地是高电平复位,复位电平必须大于复位有效时两个机器周期的持续时间,其具体值可以通过 RC电路时间常数计算。复位模式使用手动复位:如果在运行期间按下按钮,电容器将放电,VCC通过复位引脚达到高电平状态,然后通过电阻器对电容器进行反向充电,保持一段时间的达到高电平的单片机复位,此段时间过后,复位引脚变为0 V,微控制器进入正常工作状态。
51微控制器包含反相放大器的高增益,并且外部XTAL1和XTAL2引脚跨越石英晶体和两个微调电容器,构成稳定的自激振荡器。其中,两个电容器不仅可以稳定频率,还可以调节频率的作用,通常在5~30 pF的范围内。要的,其作用是为系统提供基本的时钟信号。一般来说,为了保持系统的每个部分的同步将共享一个晶体,并且在晶体的有序执行的所有顺序基于建立在晶体时钟频率中提供。微控制器的速度取决于时钟频率的速度(见图2)
2.3 蓝牙模块电路
该模块所使用的单片机的输入引脚与模块的串行数据输入端连接,输出引脚与对应输出端连接。这样达到了程序数据的传输,使得蓝牙信号可以根据程序设定进行互连或中断。与此同时,蓝牙模块的其他两个引脚state和en设置为悬空。
图6 蓝牙电路图Fig.6 Bluetooth circuit diagram
2.4 提升与改进
为了实现设备最小化,可以对原有基础上的主控端进行了改进,为节省空间使用更小芯片。图 7为STC89C52RC-LQFP44芯片原理图。
图7 单片机芯片原理图Fig.7 The principle diagram of single chip
由于更改上一款的直插式芯片,将该芯片变成贴片式,从而可以实现模块缩小,同时也便于操作和提高效率。
3 软件设计
3.1 软件总体设计
下载程序之前,在电脑上安装 USB转串口CH340驱动,然后安装对应单片机的烧录工具,本次安装的程序下载软件是 stc-isp-15xx-v6.85H自动下载,可以通过此软件将写好的程序下载到STC89C52RC芯片中。
软件设计的主要内容是:判断蓝牙是否接收到数据,接收到信号控制LED灯闪烁,距离过远接收不到信号,蜂鸣器响LED灯常亮。首先对串口进行初始化,定时器初始化,串口发送字符串,接着等待中断,当产生中断时进入串口中断服务程序,然后对蜂鸣器和LED进行控制。
3.2 主程序设计
在这一阶段,要首先完成微控制器的初始化,该阶段包括每个端口的定义、功能声明、变量定义和宏定义,然后要进行单片机的串口初始化,包括定时器工作模式选择、串口工作模式选择、波特率设置、开放串行中断等。当系统产生中断时,进入串行中断服务程序,中断程序包含例如控制功能等诸多功能。最后在各种功能的实现的基础上控制LED灯显示和蜂鸣器。
系统主程序工作流程如图8所示。
图8 主程序流程图Fig.8 Main program flow chart
4 测试与结果
通过对模块的多次重复实验可知,手环发出警报距离主要分布在20米-30米左右,结束警报距离主要分布在10米-20米左右,结束警报距离远小于发出警报距离,使孩子只有在离家长更近的位置,即基本能观测到孩子的地方时,才结束蜂鸣,符合家长心理预期。
5 结束语
本文对配合商场互联网报警系统进行工作的家长端和孩子端手环的蓝牙部分进行了从总体方案到硬件、软件等几方面的设计。除此之外,也对该模块的各种测试结果进行了简单说明。从最后的各项测试结果上显示,该手环蓝牙模块的设计从总体上基本达到了预期设计要求。
图9 警报距离统计图Fig.9 Alarm distance statistics chart
实验的30个数据如下:如今的蓝牙技术尚且处于发展阶段,各项技术水平还有相当大的改善空间。该智能手环蓝牙模块的设计仅是在当前所有的特定条件下。相信在未来随着蓝牙技术的提升,本部分的开发环境也将会得到显著改善,而在大幅优化开发环境后的成果也终将可以更好地实现本设计的初衷。
表1 警报具体统计表Tab.1 Alarm distance statistics table 单位:米
[1] 谭振兴. 基于BLE技术的智能防丢器设计与实现[D]. 山东:山东大学信息科学与工程学院, 2015.
[2] 李立鹏, 田园, 董志祥, 周楠, 吴林丽. 基于MCU的物流状态监测装置的研究与设计[J]. 天津科技, 2017(2): 62-63.
[3] 邹春宇, 张仁永, 陈敬穆. 基于STM32L152V8的预警手环设计[J]. 电子世界, 2017(9): 82-83.
[4] 杨婷, 黄韬, 谢亮. 基于STM32微控制器的智能手环的设计[J]. 科技广场, 2016(8): 190-192.
[5] 张群, 杨絮, 张正言, 陆起涌. 蓝牙模块串口通信的设计与实现[J]. 实验室研究与探索, 2012, 31(03): 79-82.
[6] 杨悦, 刘超, 陈永泰. 蓝牙技术及其原理[J]. 电信快报,2002(02): 17-20.
[7] 黎卓芳. 蓝牙技术在物联网中的应用研究[J]. 现代电信科技, 2012, 42(12): 61-66.
[8] 卢少军. 基于可穿戴设备和物联网技术的独居老人监护系统的设计与实现[D]. 华中师范大学, 2016.
[9] 焦凯. 基于蓝牙技术的无线局域网系统的研究与实现[D].南京理工大学, 2005.
[10] 萧暐, 杨涛. 蓝牙核心技术[J]. 电信科学, 2001(01):18-22.