基于android手机的一种随身物品失联报警系统设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本文基于UART串口的通讯协议及收发脚电平变化规律,结合市场现有的蓝牙与GPS模块的工作特点,提出一种运用Android手机作为主机,用具备UART串口的蓝牙模块、GPS模块及报警电路的目标机,在Android专用应用软件管理下,实现了体积小巧、携带方便、电路设计及构架简单、性价比高的一种随身目标失联在线实时报警系统。
人们在日常生活中,如外出随行的小孩、老人(或宠物)走散,或离开一定的视野范围,或随身携带的贵重物品丢失与被盗,以及重要物品放在一个地方后遗忘了初始位置等,这类事件时有发生。
如果能在其目标失去控制的范围内及时提醒主人,许多不必要的损失就可以及时得以预防。
现有报警系统或基于单片机控制与管理的无线通讯及失联报警,或基于单片机协调管理的无线通讯、GPS定位及失联报警,或基于单片机协调管理GPRS模块与GPS模块组合式的失联远程报警。
这类失联报警模式均涉及到单片机编程知识、硬件与软件设计专业技术,不仅开发成本增加,而且相应延长开发周期。
据此,设计一款利用Android手机,以及具有UART串口的现成蓝牙模块及导航模块,利用蓝牙模块的收发脚直接构建的目标机来组成失联报警模式,实现体积小巧、携带方便、电路设计及构架简单、性价比高的一种随身目标失联在线实时报警系统,具有实际的应用价值和意义。
1 系统构成框架
这种随身目标失联在线实时报警系统,由主机与目标机构成,使用时主机由监护人随身携带,目标机由需被监控目标(人、或动物、或物品)携带。
主机用具备蓝牙、以及GPS定位功能的Android 手机,目标机由蓝牙通讯、导航定位、失联报警、供电控制等电路构成。
目标机与手机间通过蓝牙连接,失联状态通过各自接收到对方无线交互数据的完整性来判断,并自动实施各自的报警方式。
目标机用其状态信息来表征,状态信息包括目标机地址、当前时间及位置信息。
将蓝牙的MAC地址作为目标机地址,手机与目标机通过蓝牙配对后建立正常连接;目标机当前时间及位置信息由其导航定位模块实时自动采集。
目标机导航定位模块自动定时采集目标机的当前时间及位置信息,通过蓝牙直接对外发布,手机在线实时接收并解析目标机状态信息后,判断目标机与手机是否失联。
目标机则通过是否接收到手机连续向目标机发送特定数据,所引起目标机上的蓝牙通讯模块TX脚电平变化,来自动判断目标机与手机是否失联。
当出现以下二种情况时,均可判断随身目标已处于失联状态:1)手机与目标机距离超过无线连接的最大允许距离时,手机与目标机无线通讯自动中断,此时手机无法在线实时接收到目标机状态信息,同时目标机因无法接收到手机发送的特定数据,致使蓝牙通讯模块发送脚TX0处于空闲状态;2)手机与目标机虽然正常通讯,但目标机与手机间的距离已超出希望值。
当目标处于失联状态时,手机与目标机立即实时同步启动各自的报警形式来提醒监护人,手机记录目标失联时刻所在位置。
当目标失联状态解除时,报警方式改变,以利于目标定位与搜寻。
2 目标机硬件电路设计
蓝牙模块负责接收手机发送的特定数据、自动发布目标机的状态信息、并控制失联报警与供电控制电路的工作状态,蓝牙模块应选一款具有UART串口的低功耗蓝牙模块。
导航定位负责自动定时采集目标机当前时间及位置等状态信息,并通过其发送脚经蓝牙模块接收脚向外发送,它应选用一款具有UART串口的低功耗GPS模块,导航定位模块的供电电源通断由供电控制电路控制,用于失联时关闭GPS模块电源。
失联报警电路是一个基于三极管特性所构成的开关电路,声光报警器件由发光二极管及蜂鸣器组成。
报警开启时,发光二极管常亮、蜂鸣器长鸣;报警关闭时,发光二极管闪亮、蜂鸣器发短滴音。
失联报警电路输入脚TX0与蓝牙模块发送脚TX0连接,报警状态由蓝牙模块TX0脚的电平控制,当TX0为高电平时,报警开启,当TX0为低电平时,报警关闭。
供电控制电路是一个基于三极管开关特性及电容器充放电特性所构成的延时断开开关电路,供电控制电路输入脚TX0与蓝牙模块发送脚TX0连接,工作状态由蓝牙模块TX0脚的电平控制,当TX0为高电平时,GPS模块电源关闭而停止工作,目标机功耗最小化,当TX0为低电平时,GPS模块电源开启,自动采集目标机的当前时间与位置信息,并通过蓝牙向主机发送。
利用延时断开开关,确保
基于Android手机的一种随身物品失联报警系统设计
西安交通大学电气工程学院 查昕超
DOI:10.19353/ki.dzsj.2020.05.065
• 120 •
蓝牙模块TX0脚出现短暂高电平时GPS模块也不会断电。
目标机的蓝牙模块、GPS模块均选用UART串口通讯协议:1位起始位,8位数据位,1位停止位,无校验位。
蓝牙模块发送脚TX0上的电平受手机所发送的具体数据控制,当蓝牙模块未收到数据时,其发送脚TX0脚为空闲状态,此时RXD保持高电平输出。
3 手机端APP程序设计
3.1 APP程序设计思想
当手机与目标机蓝牙自动连接后,手机收到目标机发送的状态信息,并连续不间断地向目标机发送十六进制数据0x00,同时根据自身位置及目标机位置,计算出当前手机与目标机间的距离。
当手机与目标机蓝牙连接自动断开时,目标机无法接收到手机发送的数据,蓝牙模块发送脚TX0工作在空闲模式而呈现高电平,目标机自动开启失联报警模式,GPS模块停止工作,目标机停止发布状态信息。
此时,手机在规定时间内无法收到目标机状态信息,自动保存最后一次目标机状态信息,并启动手机上的报警功能。
当手机与目标机蓝牙通信正常时,目标机收到手机发送的0x00数据,蓝牙模块的TX0脚呈现以9bits低电平、1bit高电平为周期的变化电平,目标机报警关闭,GPS模块正常工作并自动向外发布状态信息;如果手机与目标机距离已超过希望值时,手机将发送给目标机的十六进制数调整为0xFF,目标机收到0xFF数据时,蓝牙模块的发送脚TX0呈现以1bits低电平、9bit高电平为周期的变化电平,用手机启动自身以及目标机上的报警功能。
在手机端APP程序设计时,将目标机作为服务端、手机作为客户端。
整个APP程序按其实现功能设计成五个功能模块:蓝牙通信发送与接收、数据解析与处理、失联判断与报警、手机定位与地图、输入输出界面视图,其中蓝牙通信发送与接收、失联判断与报警功能设计为本APP程序设计关键点。
3.2 蓝牙通讯框架
用Android平台开发蓝牙通讯涉及到的相关类和接口位于Android.bluetooth包中,在客户端APP开发中使用到的最主要有三个类,即代表本地蓝牙设备的适配器(手机)BluetoothAdapter类,代表远端蓝牙设备(目标机)BluetoothDevice类,以及代表已连接或正在连接的蓝牙套接字接口BluetoothSocket类,BluetoothSocket 是应用程序通过输入、输出流与其他蓝牙设备通讯的连接点。
因此蓝牙通讯客户端手机APP程序开发步骤:
(1)获取本地蓝牙接口(BluetoothAdapter);
(2)开启蓝牙功能;
(3)查找蓝牙设备;
(4)通过查找设备来发现服务端蓝牙设备,获取远程蓝牙设备接口(BluetoothDevice);
(5)通过蓝牙设备接口来获取与服务端通信的套接字接口(BluetoothSocket);
(6)通过套接字接口的输入输出流,客户端与服务器端进行通信;
(7)本次通信完毕,关闭(5)中的套接字接口。
三个类的具体方法使用如下:
(1)通过BluetoothAdapter.getRemoteDiveice(String address)方法,获取指定蓝牙地址的BluetoothDevice对象,其中address为目标机蓝牙地址;
(2)通过BluetoothDevice.creatRfcommSocketToServiceRecord(U UID uuid)方法,创建并返回一个BluetoothSocket对象,对使用SPP协议进行连接串口服务的uuid值为00001101-0000-1000-8000-00805F9 B34FB;
(3)通过BluetoothSocket.connect()方法,连接蓝牙设备(目标机),向服务器提出数据连接请求,如果服务器接受了该连接,它们将在通信过程中共享RFComm信道;因为connect()方法是阻塞调用,一般建立一个独立的ConnectThread线程来调用该方法,在数据传输完成后,需通过调用close()方法来关闭连接,以节省系统的内部资源;
(4)通过BluetoothSocket.geInputStream()和BluetoothSocket. getOutStream()方法,获得读写数据的InputStream和OutputStream流对象,用于接收和发送串行数据;
(5)通过InputStream.read(byte[])方法来读取数据,并由Handler类来解析与处理,通过OutputStream.write(byte[])方法来写数据。
因为read()读取和write()写操作都是阻塞调用,所以需要建立一个单独的线程ConnectedThread来管理对串口数据的读写。
3.3 蓝牙通讯程序设计
为避免程序阻塞,手机APP程序应设计以下三个独立的线程来管理蓝牙通讯数据收发与信息处理:
(1)蓝牙通讯连接线程ConnectThread;
(2)串口数据读写线程ConnectedThread;
(3)串口数据循环发送线程SendDataThread。
4 结束语
本文基于UART串口的通讯协议及相应管脚上电平变化规律,结合市场上现有蓝牙模块与GPS模块的工作特点,只需运用手机,以及现有蓝牙无线通讯模块、定位模块的串口脚直接连接而成的电路与简单报警和供电控制电路所构建出一种随身目标失联在线实时报警系统,用APP软件管理与协调报警系统的工作,不需要单片机编程及硬件设计专门技术,不仅设计的成本与技术难度低、电路结构简单、实用性强,且对随身物品的失联地址可进行有效追溯,也可应用于旅游、养老、幼儿、公安、宠物等领域日益发展的移动目标报警监管需要。
作者简介:查昕超(1998—),男,汉族,本科,西安交通大学电气工程学院2017级,研究方向:电力系统及其自动化。
• 121 •。