当前位置:首页 > 嵌入式 > 嵌入式硬件

摘 要: 鉴于传统儿童防走失系统使用的局限性,介绍了一种基于单片机控制的、可以工作在无线信号与移动信号两种数据传输模式下的儿童防走失系统。分析并利用GPS全球定位系统,准确获取儿童所在位置的经纬度信息,通过某种数据传输方式将数据传输给父母端设备,处理数据并图形显示儿童与父母的具体或是相对位置。
关键词: 单片机;GPS;数据传输;图形显示

据公安部最新数据显示,近年来我国每年有近20万儿童失踪。传统的儿童防走失系统主要依靠无线电路实现,儿童端有一个信号发射器,父母端接收此信号并判断信号强度大小,当信号强度小于设定值时即报警。该方案的优点是结构简单、体积小,显著缺点是适用距离短,无法判别儿童方向,信号易受干扰。这往往是儿童防走失产品的致命缺点。
本系统采用的方案是根据GPS信息判断儿童具体位置并实现报警功能,报警的同时能够在第一时间向父母提供儿童的准确位置信息。系统的创新点与技术突破点主要体现在以下几个方面:
(1)双模式工作:当没有移动信号时,可通过无线方式实现点对点通信,不依靠第三方;当距离超过1 000 m时又可通过短信息传递数据,方便可靠;
(2)双重图形处理:十字坐标显示响应快速直观,第一时间指明孩子的方位;Google地图显示告知孩子的准确位置,两种方式一键切换;
(3)在Android手机操作系统下开发了一套完全适用于儿童防走失系统的软件,可移植性强。
需要注意的是,系统可以工作在两种传输模式下,且能在两种模式之间自动切换。具体体现在:开机情况下,儿童端设备默认通过无线信号的方式与父母端设备进行通信,而当接收不到信号时,儿童端设备将会立刻切换到通过短信息的方式与父母端设备通信。
1 系统架构与功能
本儿童防走失系统采用子母机形式。其中儿童端为子机,主要用来获取自身经纬度数据,同时监听父母端发送过来的指令,并将自身经纬度数据返回给父母端设备;父母端设备为母机,采用了两种模式:自主开发的手持终端模式与智能手机模式,分别通过无线信号和移动网络信号进行数据传输,两种模式可自动切换。系统整体框架如图1所示。

系统实现的主要功能有:(1)防走失报警:当孩子与父母之间的距离超过任意设定的安全值时父母端设备报警,同时在父母端设备上自动弹出孩子当前的位置信息(以坐标信息或Google地图的形式);(2)父母主动查看孩子的位置:在父母端手持设备上主动操作可以获得孩子的位置信息;(3)孩子主动求助:当孩子发现找不到父母时,可以按下子机的傻瓜式按键,父母就收到孩子的求助信号,同时弹出孩子当前的位置信息。
2 系统功能单元设计
2.1 GPS数据获取与分析
GPS(Global Positioning System)全球定位系统是新一代的精密卫星导航定位系统,利用人造地球卫星确定测站点位置[1]。在本儿童防走失系统中,定位分为两种:父母手持终端上的定位和智能手机上的定位。
智能手机上的定位主要依靠手机内部的GPS芯片完成。由于Google开发的Android操作系统完全开源,可以获得其所有API函数,通过调用API函数并编写相关代码,可以启动手机的GPS硬件,获得基于位置的服务。这些服务当中包括查询手机内部存储的最新位置信息、获得当前位置以及更新当前位置信息等。在本文编写的程序当中,使用到了查询手机内部存储的最新位置信息和更新当前位置信息等功能,部分程序代码如下:
LocationManager locationManager = (LocationManager)getSystemService(context);
Location location = locationManager.getLastKnownLocation(provider);
updateWithNewLocation(location);
其中LocationManager locationManager=(LocationManager)getSystemService(context)用来添加实例变量来存储对LocationManager的引用,启动手机基于位置的服务,基于位置的服务的目的是确定设备的物理位置;Location location=locationManager.getLastKnownLocation(provider)语句通过对实例变量locationManager的引用获得手机内部最新的GPS数据,并存储在location变量中;最后一条语句updateWithNewLocation(location)用来对手机内部存储的GPS数据信息进行更新,以获得最新的位置信息。
在儿童和父母端的手持监护终端上分别内置了一个GPS信号接收机。由于GPS卫星发送的导航定位信号是一种可供无数用户共享的信息资源,对于陆地、 海洋和空间的广大用户,只要拥有能够接收、跟踪、变换和测量GPS信号的接收设备(即GPS信号接收机),就能够获取当前的位置信息。利用GPS信号接收机将接收到的GPS信号转化为GPS经纬度数据,并以TTL电平格式输出,然后由单片机I/O口对其进行读取并进行进一步的处理。GPS模块的电源引脚连接到单片机的VCC与GND引脚上,用以给GPS模块进行供电;GPS模块的通信引脚连接到单片机的40与41引脚上,也就是单片机的异步串行接口RXD0、TXD0,GPS模块通过这两个引脚进行数据的收发,电平传输格式为TTL电平格式。
当系统获得子机与母机的GPS数据后,通过一系列算法求得子机与母机之间的实际距离与方位角。具体算法是:由于地球表面无比巨大,将地表看作是一个平面,将地球的经度当做这个平面的Y坐标,将纬度看做是X坐标。当获得了子机与母机的经纬度数据时,实际上就获得了它们的横纵坐标,通过勾股定理计算距离,通过三角函数关系计算方位角。为求出两点之间的实际距离与相对角度,首先需要求出其中一点相对于另外一点在经度方向上和纬度方向上的距离,也就是两条直角边的长度。而这两条直角边的长度可以通过两点之间的经度差和纬度差分别乘以两点相对于地球轴心和地球球心半径来获得,当获得了两条直角边的长度后,两点之间的实际距离也就是斜边的长度。具体的计算过程如下:

其中,α1、α2、β1和β2分别是两点的纬度值和经度值,α为两点的平均纬度值,OA、R分别为两点到地球轴心和球心的半径,AC、BC为两点在经度方向和纬度方向上的距离。
2.2 数据传输
子机与母机之间的通信可以通过两种模式进行,分别是GSM短信息传输模式与无线信号传输模式。相应地,为了与母机完成通信,在子机上分别使用了SIM300C GPRS带协议模块与APC240无线模块。
在父母端的智能手机上开发了一个儿童防走失系统配套软件,当父母使用手机查询孩子的位置时,将会发送一条含查询指令的短信到子机,子机上的SIM300C模块接收到短信后会向单片机发送一条指令,单片机接收到指令后会对短信进行读取,然后根据短信内容作出相应动作。短信发送程序代码如下:
SmsManager smsManager=SmsManager.getDefault();
smsManager.sendTextMessage(mobile,null,content,null,null);
其中SmsManager smsManager=SmsManager.getDefault()用来添加一个实例变量来存储对SmsManager的引用,启动手机基于短信功能的服务;smsManager.sendTextMessage
(mobile,null,content,null,null)语句引用SmsManager下的发送短信功能来发送指令,其中括号内第一个参数为要发送到手机的电话号码,第三个参数为发送的具体内容。
儿童手持终端中GSM通信部分电路图如图2所示。其中左半部分为通信指示灯部分,右半部分为SIM300C模块与SIM卡的引脚定义。

当父母使用手持终端机时,将通过普通无线通信的方式进行数据传输。首先由单片机读取所需的各种信息,包括GPS数据信息与指令信息等,再通过其I/O口将数据信息传递给无线模块,由无线模块进行数据传输。图3所示为儿童端电路板上的无线发射部分电路图(左侧仅画出发送部分电路使能图,接收部分未画出)。由于整个板子上共有三处需要使用到串行接口,分别是无线通信部分、GSM通信部分和GPS数据收发部分,而ATMEGA64单片机只有两个串行接口,所以将RXD1与TXD1作为了复用串口,通过使能端EN_A或EN_B来选择使用无线通信或是GSM通信。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

在单片机通信系统中,数据帧是实现设备间可靠对话的核心载体。不同于网络通信中成熟的TCP/IP协议,单片机通信往往需要自定义数据帧格式,而帧头、帧尾与校验机制则是保障数据传输准确性的三大关键。

关键字: 单片机 数据帧

随着嵌入式技术的不断发展,时序分析工具和方法也在不断进步,未来将朝着智能化、自动化的方向发展,为开发者提供更高效的调试手段。但无论技术如何发展,扎实的时序分析基础都是嵌入式开发者不可或缺的能力,只有深入理解通信时序的本质...

关键字: 时序 单片机

在嵌入式系统设计中,不同架构、不同厂商的单片机协同工作早已成为常态。从8位的51系列到32位的STM32,从精简指令集的PIC到复杂指令集的AVR,这些性能各异的单片机如何突破硬件差异实现数据交互,是嵌入式开发中的核心课...

关键字: 嵌入式 单片机

在嵌入式系统开发中,单片机的时钟系统是整个系统的"心脏",所有的指令执行、外设操作、定时器中断都依赖于精准的时钟信号。但在实际开发过程中,很多开发者都会遇到单片机时钟不准的问题,表现为定时器计时偏差、UART通信波特率错...

关键字: 控制系统 单片机

在单片机开发与调试过程中,复位电路作为保障芯片正常启动的核心模块,其稳定性直接影响程序烧录与系统运行。实际应用中,不少开发者会遇到“接稳压电源可正常烧录,接入电池后却无法烧录程序”的故障,此类问题多与复位电路设计、电池供...

关键字: 单片机 复位电路 时序匹配

在单片机的世界里,“字节”(Byte)是一个贯穿始终的核心概念。从存储数据到执行指令,从变量定义到外设通信,字节无处不在。很多初学者在学习单片机时,往往更关注复杂的程序逻辑和外设驱动,却忽略了字节这个基础知识点,导致在后...

关键字: 单片机 字节

在单片机的数字逻辑中,我们通常最关注的是高电平和低电平两种状态,它们构成了二进制数字世界的基础。然而,除了这两种状态之外,还有一种至关重要但常常被忽视的状态——高阻态(High Impedance State)。高阻态就...

关键字: 单片机 高阻态

对于PIC入门者来说,不需要盲目追求高端开发板,一块功能均衡、资料丰富的入门款就能满足需求。比如Microchip官方推出的PIC16F84A开发板,它搭载经典的8位PIC内核,引脚布局清晰,自带LED、按键等基础外设,...

关键字: PIC 单片机

该低功耗器件支持5V运行,在实现高性能的同时,能有效保障系统简洁性与成本效益

关键字: MCU 单片机 工业自动化

CH558T 采用 BASIC-52 系统,并具备蓝牙连接功能。CH558T 的运行频率为 48 MHz,拥有 4KB 的 xRAM,足以满足常规应用需求。

关键字: 单片机 BASIC-52 系统 CH558T
关闭