论文方式解析-基于蓝牙的一键呼救系统设计-CNKI知网查重网站

论文方式解析-基于蓝牙的一键呼救系统设计

2021-05-27 11:59:04
作者:杭州千明

  本文首先介绍了紧急呼救系统的研究意义以及国内外发展现状。通过分析BLE蓝牙的基本原理、以及运用中文编程软件E4A设计了一种基于BLE蓝牙触发手机程序呼救的一键呼救系统,其特点是便携、快捷、简单。在详细阐述了呼救系统组成的基础上,又进一步的分析了BLE蓝牙触发模块的作用以及蓝牙模块的选择。最后,通过编写相应安卓软件对呼救系统进行测试并根据测试的结果,提出了呼救系统的改进措施与努力方向。

  对于危重病人或伤员来说及时的救助是十分关键和重要的,提前几分钟、十几分钟的救助甚至可以挽救生命。据有关部门统计及时进行救助能大大提升危重病人或伤员的存活几率。

  近年来,随着我国经济的发展,人民平均寿命的提高,空巢老人,独居病人遇到突发性疾病或意外事故的几率也与日俱增。因为客观上的原因,在突发状况发生时常常因为身边无人求助,或者在发生突发性事件后当事人因为情况紧急无法叙述,或者不熟悉周围环境叙述不清楚无法传递出有效信息从而给紧急救助带来困难,导致老人或病人死亡的意外发生。因此为了避免这种意外事故的发生,为老人或病人配备一款紧急呼救设备已成为当务之急。

  我的论文研究的目的是设计一款便捷的紧急救助装置,在发生突发性疾病或意外发生后,病人或伤员能够独自将所处地址等基本信息便捷的发送给家属或相关人员求助,以确保病人或伤员获得及时的救助。

  1.2紧急呼救设备应用现状

  在互联网,物联网技术的发展推动下,国内外有众多的互联网公司,医疗器械制造商,以及电子设备制造商投入到紧急呼救设备及其应用的研发领域,根据其功能主要分为两大类。

  1)固定通信地址的呼救设备

  固定通信地址的呼救设备主要是为了独自居家的老人或病人在出现突发的紧急情况时可通过随身遥控装置与家庭固定电话线路与急救中心联通并调出数据库中呼救者档案的呼救方式。如杭州的120呼救急救系统,北京的999“一键通”,天津120空巢老人急救干线。

  此外,在医院,养老院等医疗服务区域也设有相应的呼救设备,这些呼救设备通过固定的线路向接护士站等医疗服务中心发送呼救请求。

  2)移动通信呼救设备

  移动紧急呼救设备需要将相应的传感器,无线通信,等模块嵌入便捷易携带的硬件设备之中才能实现在不同地区实时进行呼救求助。而智能手机就是一个这样集成了各个模块应用的设备,同时智能手机现在在人群中非常普及,几乎人手一台。因此通过手机软件以及手机传感器将定位信息等基本信息通过网络或短信发送求救信息的呼救的方式与应用越来越多例如微信与浙江宁海县急救中心推出的急救app,安卓智能手机自带的连按电源5次发送求救短信等。此外也有相应的制造厂商将这些功能集成到智能手环,手表等可穿戴型设备上,通过蓝牙等无线传输方式将呼救请求发送给手机,让智能手机将呼救信息发送出去。而且有些穿戴设备还可以收集使用者心率,血压等健康数据发送到智能手机进行分析与管理,并在需要的时候被动触发手机呼救流程。

  1.3本文研究的主要内容

  1)在确立一键呼救系统研究目的与意义的基础上,对国内外文献与相关呼救系统的设计进行分析,选择出基于BLE蓝牙的一键呼救系统设计方案。

  2)分析BLE蓝牙模块的组成结构以及相关AT指令功能并运用中文编程软件易安卓编写相关运用程序。

  3)测试呼救系统的作用及功能并提出进一步改进方向与设想。

  2基于BLE蓝牙的呼救器设计

  2.1 BLE蓝牙的基本理论

  蓝牙低能耗(Bluetooth Low Energy,或称Bluetooth LE、BLE)也称低耗蓝牙,是蓝牙技术联盟为了在医疗健康、个人健身、智能家居等领域的应用而设计出的一种个人局域网技术。低功耗蓝牙相较经典蓝牙能够显著降低功耗和成本。

  主要的优点包括:低功耗,可以通过纽扣电池进行长时间的续航;小体积、低成本;兼容现有的大部分手机、电脑以及其他硬件设备。目前发布的移动设备的硬件和软件通常同时支持“经典蓝牙”和“低功耗蓝牙”标准。

  低功耗蓝牙采用与经典蓝牙相同的工作频率(2.400GHz-2.4835GHz-ISM频带)。不同于经典蓝牙的79 1-MHz信道,低功耗蓝牙使用40 2-MHz信道。于经典蓝牙的基本速率方案类似,在一个信道内,低功耗蓝牙的数据使用高斯频移调制传输;比特率1Mbit/s,最大发射功率10mW。低功耗蓝牙和经典蓝牙一样通过跳频扩频抵抗窄带干扰问题,但细节有所不同;因此,FCC和ETSI将低功耗蓝牙被分类为一个数字调制技术或直接序列扩频。

  主要用途:蓝牙耳机、智能家居、可穿戴设备、安全防护、医疗健康、个人健身等。

  2.2相应BLE蓝牙模块的选择选择

  基于Bluetooth Specification V4.0 BLE蓝牙协议的HC-08蓝牙串口通信模块是新一代的低功耗数传模块。2.4GHz的ISM无线工作频段,运用GFSK的方式调制信号。模块最大发射功率为4dBm,接收灵敏度-93dBm,在空旷环境下最远可以实现80米的超远距离通信。模块既可以选择贴片式嵌入,也又可以选择插针式嵌入,根据需求选择合适的方式嵌入应用系统。蓝牙的连接状态可以通过模块的LED状态指示灯来判断。采用了TI的CC2540F256芯片模块,拥有256K字节空间,可以根据用户需要设置相应的AT指令更改角色(主、从模式),串口波特率、设备名称等参数。

  HC-08其主要参数如下:

  1)工作频段:2.4G

  2)通讯接口:UART3.3VTTL电平

  3)工作电压:2.0~3.6V

  4)发射功率:4dBm(最大)

  5)参考距离:80m

  6)模块尺寸:26.9X13mm

  7)天线接口:内置PCB天线

  8)空中速率:1Mbps

  9)睡眠电流:0.4μA

  10)接收灵敏度:-93dBm1Mbps

  HC-08蓝牙模块采用4.0 BLE蓝牙协议,功耗低,可以选择低功耗工作模式,能够使用纽扣电池来进行长时间的蓝牙连接功能。低功耗模式下模块的工作电流情况如图1,图2:

  图1蓝牙模块MODE1的低功耗图

  图2蓝牙模块MODE2的低功耗图

  2.2.1 BLE蓝牙模块功能

  模块工作原理简单介绍

  图3蓝牙模块作用功能图

  如图3所示,HC-08模块之间的相互通信通过模块的RXD端口收到串口数据后,以无线电波的方式将数据发送到空中,让另一个HC-08模块接收并通过TXD还原串口发送的数据。可以用于代替全双工通信时的物理连线。

  若3.3V的单片机与模块连接时,串口可以直接交叉连接(模块的RX接MCU的TX、模块的TX接MCU的RX)。若5V的单片机与模块连接时,则需要在模块的RX端串接一个220Ω~1KΩ的电阻而后再接单片机的TX。模块的TX直接接单片机的RX,无需串接电阻。两个模块间的连接需要将一个模块设置一个为主机,一个为从机,上电即可自动连接。HC-08第一次主从机配对后,配对对象会被主机自动记忆。必须先清除配对记忆,才能连接

  其他模块。

  图4蓝牙模块与手机连接图

  如图4,HC-08支持与Android 4.3及以上版本的手持设备连接通讯,通信测试需使用支持ble蓝牙的串口软件。苹果手机只有iPhone 4S及以上版本并且在APP Store下载安装Lightblue或蓝牙助手软件连接(也可以使用其他支持ble蓝牙的串口软件)后才能与HC-08连接通讯。HC-08需借助HC-08-USB蓝牙虚拟串口才能与与电脑相连接。

  2.2.2 BLE蓝牙模块AT指令与串口调试

  由Hayes公司发明的AT命令(AT Commands),每条命令以字母“AT”开头,因而得名。AT指令目前是所有调制解调器制造商共同采用的一个调制解调器命令语言标准。AT后跟字母和数字表明具体的功能,例如“ATRX”是查询模块参数的命令,他可以查询蓝牙模块的名称,角色,波特率,地址等信息,不同品牌的调制解调器的AT命令并不完全相同。

  HC-08蓝牙模块的AT指令用来设置模块的参数,模块通过相应品牌的配套串口软件进行AT指令的设置与修改从而修改蓝牙模块的参数和功能。如果成功修改了AT指令,软件窗口会统一返回OK(“AT+RX、AT+VERSION”等查看信息类指令除外),否则不返回任何信息。设置与修改后的蓝牙模块参数与功能不会随掉电而丢失。HC-08蓝牙模块的具体AT指令与功能如表1所示。

  表1 AT指令及其说明表

  序号AT指令

  (小写x表示参数)响应说明

  1 AT OK测试

  2 AT+RX Name:蓝牙名

  Role:模块角色(主/从)

  Baud:串口波特率,校验位

  Addr:蓝牙地址查询模块的基本参数

  3 AT+DEFAULT

  OK

  恢复出厂设置,注:只有未连线状态下使用AT+CLEAR指令才能对记录的从机地址进行清除。

  模块会自动重启,重启200ms后可进行新的操作!

  4 AT+RESET

  OK

  模块会自动重启,重启200ms后

  可进行新的操作!

  5 AT+VERSION

  HC-08V3.1,2017-07-07获取软件版本和发布日期

  6 AT+ROLE=x

  Master/Slave

  设置主机/从机,设置后模块将自动重启,

  重启200ms后可进行新的操作!

  发送:AT+ROLE=M

  返回:Master(并重启)

  7 AT+NAME=xxx OKsetNAME

  设置蓝牙名称

  8 AT+ADDR=

  xxxxxxxxxxxx OKsetADDR

  修改模块的MAC地址,所修改的地址必须为12位的0~F数字或大写字符,即16进制字符。查询填“?”

  9 AT+RFPM=x

  4dBm(0 dBm/

  -6 dBm/-23dBm)

  查询/设置模块的射频功率

  ?查看当前射频功率

  0 4dBm(出厂默认值)

  1 0dBm

  2-6dBm

  3-23dBm

  10 AT+BAUD=xx

  (或AT+BAUD=xx,y)OK9600

  串口设置参数xx、y分别代表波特率、校验位N表示无校验NONE E表示偶校验EVEN O表示奇校验

  11 AT+CONT=x

  OK/Connectable/Non-Connectable设置可连接性,不可连接时

  主要用于广播数据

  12 AT+AVDA=xxx

  OK

  设置广播数据,参数“xxx”可以是1~12字节的任意用户数据。如果此时主机状态AT+CONT=1,那么主机串口就会输出xxx的数据。此广播数据不会永久保存,模块重启后会失效。

  13 AT+MODE=x

  OK功耗模式设置。注意:仅限从机

  ?获取当前功耗模式0全速功耗模式(出厂默认)1一级节能模式。连接前电流由AT+AINT的设置决定,连接后主要由AT+CINT决定。2二级节能模式(睡眠模式)。睡眠时电流0.4μA。睡眠时不可发现、不可连接,串口唤醒后可发现、可连接。

  14 AT+AINT=xx

  OK+AINT=xx

  查询/设置广播间隔(影响未连接时的功耗)xx的单位是625us

  15 AT+CINT=x,y

  OK+CINT=x,y

  查询/设置连接间隔(直接影响连接功耗,主机需同时设置)x:最小连接间隔;y:最大连接间隔。单位1.25ms

  16 AT+CTOUT=x OK+CTOUT=x查询/设置连接超时时间单位10ms

  17 AT+CLEAR

  OK清除记忆地址,等同于按键的作用

  主机只要连接过从机,就会记住最后一次连接的从机的地址。

  18 AT+LED=x

  OK+LED=x

  查询/设置LED工作模式?:查询

  0:关闭1:打开

  19 AT+LUUID=xxxx

  OK+LUUID=xxxx

  查询/设置连接UUID(搜索UUID)

  由于蓝牙设备繁多,所以一般蓝牙主机(因为没有显示屏,很难人工选择)都设置了搜索UUID过滤。这样的话,只有UUID相同的从机才能被搜索到。

  默认:FFF0(意为0xFFF0);

  参数必须要在0~F范围内

  20 AT+SUUID=xxxx

  OK+SUUID=xxxx

  查询/设置服务UUID此服务UUID是主机找到服务的依据,找到服务才能找到具体的特征值。

  21 AT+TUUID=xxxx OK+TUUID=xxxx

  查询/设置透传UUID此透传UUID必须正确才能正常透传,收发数据

  22 AT+AUST=x

  OK+AUST=x

  查询/设置自动进入睡眠的时间

  ?:查询(默认20s,该时间越小则越省电)设置范围:1~300(单位s)AUST默认是20秒。由于在MODE1低功耗模式下,蓝牙是可发现、可连接的,为了更省电,AUST最低可以设置到1秒。由于在是MODE2低功耗模式,蓝牙是不可发现、不可连接的,为了保证通过串口唤醒后,模块有足够的时间和其它蓝牙主设备连线,AUST可以设置为20秒或以上。

  在了解了AT指令的内容后根据毕业论文的设计需求运用HC-USB参数架连接电脑在蓝牙模块配套软件HID串口助手软件上设置所需的AT指令并初步测试蓝牙模块串口功能。首先将选取的HC-08插针式嵌入BLE蓝牙模块与HC-USB参数架相连接,并通过USB接口与电脑相连接,然后在选取的蓝牙公司官网下载配套的HID串口助手软件,最后通过HID串口助手

  图5蓝牙模块AT指令设置图

  软件对BLE蓝牙模块进行所需的AT指令内容设置并初步测试蓝牙模块串口功能如图5。

  3基于E4A的安卓软件编写

  3.1 E4A编程软件介绍

  易语言FOR安卓,简称E4A,是一款于2013年发布的全中文安卓编程软件,可以用来为开发者、网络公司、在各种基于安卓系统下的手持设备的APP开发中提供支持。基于谷歌Simple语言的易安卓编程软件可以通过类似易语言的语法编写Android应用程序,此应用基于易语言的中文语法非常符合国人的编程思维习惯,此外,易安卓可以进行代码共享,以便于程序模块重复利用,降低编程难度。易安卓具有可视化编程的功能,非常适合物联网类应用的编写。

  易安卓为用户提供了大量组件模块,除了文本框、按钮等通用组件外之外,还可以随意调用网络、传感器模块等安卓应用模块。在可视化界面中拖入相关组件,即可进行编程。易安卓可以在其左侧的属性区记录调用各模块的外部图片、音乐、链接等资源,并且可以设定每个模块组件的事件发生位置,在属性区下方有事件列表,通过对各个事件内容的程序编写,即可完成各个模块相应的功能,如图6所示。

  图6易安卓组件及属性图

  3.2主要程序及其实现功能

  易安卓提供了大量组件应用,因为易安卓提供的各种组件模块可以随意调用如网络模块、传感器模块等,以及其可视化的编程方式。因此只需将设计所需的组件拖入到可视化界面后,即可进行编程。为了实现基于BLE蓝牙的一键呼救的设计,首先在易安卓软件中创建一个名为一键呼叫的工程,然后拖入相应的组件构成应用的UI界面,基于设计需要我选择加入了BLE蓝牙组件,高德定位组件,短信组件,定时组件以及分组列表框等组件,UI界面如图7。

  图7易安卓蓝牙呼救应用UI界面图

  在调用易安卓的相关组件与函数时要求在手机已经获得赋予该应用相应权限的前提下才能实现,在手机安卓6.0以上的系统中,需要动态申请权限才能调用,为了避免不必要的错误,在代码区需要申请权限,代码如下。

  事件主窗口.创建完毕()

  变量权限为文本型()

  如果权限操作1.取系统版本号()>=23则

  权限=权限操作1.取应用所需权限(权限操作1.取自身包名())

  权限操作1.申请权限(权限)

  结束如果

  结束事件

  事件权限操作1.申请完毕(权限数组为文本型(),申请结果为整数型())

  '可以把需要特殊权限的代码写在此处

  结束事件

  3.2.1高德定位组件的调用

  为了实现一键呼救,并获得相应的救助,需要将求救者的地理位置信息发送出去,因为手机自带的GPS传感器只能反映出定位的经度,纬度,海拔等基础信息,没有体现是在哪个城市地区街道,不够直观。因此在选择定位组件的时候可以选择调用百度地图或高德地图定位等组件。以高德定位组件为例

  事件按钮1.被单击()

  高德定位1.开始定位(3,2000)

  结束事件

  //参数一:定位模式1GPS 2网络3混合参数二:间隔时间不小于2000毫秒

  事件按钮2.被单击()

  高德定位1.停止定位()

  结束事件

  事件高德定位1.定位完毕(纬度为双精度小数型,经度为双精度小数型,省份为文本型,城市为文本型,地区为文本型,街道为文本型)

  标签1.标题="位置:"&纬度&经度&省份&城市&地区&街道

  如果城市<>""则

  定位成功=真

  结束如果

  结束事件

  //提取定位的纬度,经度,省份,城市,地区,街道

  事件按钮3.被单击()

  如果定位成功=真则

  高德定位1.获取天气()

  结束如果

  结束事件

  事件高德定位1.获取天气完毕(城市为文本型,天气为文本型,气温为文本型,风向为文本型,风力为文本型,湿度为文本型,时间为文本型)

  编辑框1.内容="城市:"&城市&"n天气:"&天气&"n气温:"&气温&"n风向:"&风向&"n风力:"&风力&"n湿度:"&湿度&"n时间:"&时间

  结束事件

  //提取当地的气候信息方便了解救援环境

  因为高德地图和百度地图是其相应企业推出的应用,因此不像调用手机自带的GPS组件,在调用高德定位前需要相应的apikey才能调用,而apikey需要运用自己应用绑定的签名证书的SHA1值到高德或百度地图开放平台注册个人开发者申请apikey。我通过注册个人开发者后获得相应的调用权限,然后用自己需要调用高德定位的应用的包的名称以及签名证书的SHA1值申请apikey,如图8。最后运用申请的apikey值就可以在自己的应用中调用高德定位等功能了。

  图8高德定位apikey申请图

  3.2.2 BLE蓝牙组件的调用

  呼救系统是基于BLE蓝牙触发的,蓝牙组件以及呼救功能的编写如下

  事件主窗口.创建完毕()

  变量结果为逻辑型

  结果=BLE蓝牙1.初始化()

  弹出提示("初始化结果:"&结果)

  BLE蓝牙1.置可被发现()

  结束事件

  //BLE蓝牙置可被发现

  事件时钟1.周期事件()

  BLE蓝牙1.停止搜索()

  按钮1.标题="开始搜索"

  时钟1.时钟周期=0

  结束事件

  //设置时钟事件

  事件按钮1.被单击()

  如果按钮1.标题="开始搜索"则

  BLE蓝牙1.开始搜索()

  时钟1.时钟周期=10*1000

  按钮1.标题="停止搜索"

  否则

  BLE蓝牙1.停止搜索()

  时钟1.时钟周期=0

  按钮1.标题="开始搜索"

  结束如果

  结束事件

  //开始搜索,10s后停止搜索

  事件BLE蓝牙1.发现设备(名称为文本型,地址为文本型,MajorID为整数型,MinorID为整数型,配对状态为整数型)

  弹出提示("发现设备")

  列表框1.添加项目("名称:"&名称&"n地址:"&地址)

  列表框1.置项目标记(列表框1.取项目数()-1,地址)

  结束事件

  //当发现周围蓝牙设备时触发此事件,返回该设备的相关信息并将信息添加进列表框,其中的配对状态为:1、未配对2、正在配对3、已配对。

  事件列表框1.表项被单击(项目索引为整数型)

  BLE蓝牙1.连接设备(列表框1.取项目标记(项目索引))

  弹出提示("正在连接")

  主窗口.标题="正在连接"

  分组列表框1.清空所有数据()

  结束事件

  //通过列表框选择搜索到的蓝牙进行连接

  事件BLE蓝牙1.连接状态改变(状态为整数型)

  如果状态=1则

  弹出提示("已连接")

  主窗口.标题="已连接"

  否则

  弹出提示("已断开")

  主窗口.标题="已断开"

  短信1.发送短信("186xxxxxxxx","我遇到问题了,请帮帮我"&纬度1&经度1&省份1&城市1&地区1&街道1,假)

  结束如果

  结束事件

  //在连接BLE蓝牙后如果BLE蓝牙模块电源开关键按下,则蓝牙连接状态发生改变,弹出提示("已断开"),同时发送短信将带有地址信息的求救信号发送出去。

  //短信(号码为文本型,内容为文本型,是否加入发件箱为逻辑型)因为在一些情况下手机可能被坏人拿走,所以为了不让坏人发现选择不加入发件箱

  3.3其他方式触发呼救的程序

  在BLE蓝牙触发求救外,基于其他环境的求救需求,设计了一种简易的让独家老人的家属安心的定时发送短信的程序应用UI界面如图9。

  图9定时呼叫应用UI界面图

  在编辑框内输入倒计时的时间,在标签内写入短信发送的内容如(家属xx小时没有重置了,可能遇到危险,请及时与之联系)倒计时的时间会显示在界面上需要独居老人等使用者在倒计时结束前点击重置按键,否则倒计时结束将发送短信将标签内容发送到到预定的家属手机号码中提醒家属查看情况。应用也加入了BLE蓝牙组件,可以人老人主观的在需要求助时运用蓝牙模块发送求救信号。