基于STM32单片机的智能山地车安防系统*

2017-06-01 12:19张函仑汪越宇
电子器件 2017年3期
关键词:山地车上位短信

张函仑,周 韵,杨 坤,汪越宇,赵 宁

(东南大学电子科学与工程学院,南京 211189)

基于STM32单片机的智能山地车安防系统*

张函仑,周 韵,杨 坤,汪越宇,赵 宁*

(东南大学电子科学与工程学院,南京 211189)

为了实现山地车的防盗及找回,以及针对人们为了解决山地车在野外运动时的安全问题,提出了一种基于STM32的智能山地车安防系统。系统通过对硬件、软件的设计建立了以STM32微处理器为控制核心、SIM5320E为数据传输模块和OV7725为图像传感模块的山地车安防系统。实现了山地车所在位置和现场图像的远程传输,并有软件显示运动轨迹和上位机再现图像等功能。结果表明,本山地车安防系统运行稳定,轨迹信息精确,回传图像清晰。

山地车安防系统;轨迹显示;图像传输;Android;百度鹰眼;socket

在越来越提倡绿色、低碳生活的当今社会,山地车这种交通工具在人们的出行方式占着越来越大的比重。同时,骑行这样一种休闲方式也受着人们越来越高的关注。但是在陌生环境中,尤其是人烟稀少的野外,人们的出行常常伴随着迷路的风险,再加上电子设备的待机能力不够,人们在野外迷路后可能会产生生命危险。与此同时,出于人们便于使用、便于搬运的需求,如今山地车质量越来越轻,这使车辆的盗窃问题日益恶化,在防范意识薄弱的大学校园尤其严重。大量自行车被盗去,并在黑市上出售,学生贪便宜再从黑市上买回,然后再次被盗,如此循环往复,这对学生带来了巨大的经济损失[1]。

为了解决上述问题,研制了基于STM32F103VET6的智能山地车安防系统。意法半导体推出的基于ARM Cortex-M3内核的低成本、高性能微处理器STM32F103VET6,是低功耗的嵌入式处理器[2]。Cortex-M3内核的控制器具有72 MHz的主频,程序指令存储和数据存储分开,精确的串口中断响应可以快速地发送指令给SIM模块,从而缩短时间损耗。

1 方案设计

山地车安防系统架构如图1所示,主要由5个部分构成,分别为:MCU模块、SIM5320E通信模块、摄像头模块、Android监控软件和服务器上位机。

图1 系统架构图

在本系统中,山地车的移动距离超过规定距离150 m时,系统启动报警,向用户发送短信提醒山地车的被盗,用户可以登录手机上的Android APP来监控山地车的位置信息并寻找到自己的山地车。用户在户外骑行时,其家长可以向SIM模块发送短信来获取此时用户周围的位置信息以及周边环境的图像信息。家长通过手机上的安卓程序来获取位置信息,图像信息则通过位于服务器上的上位机来获取,而且用户还可以把自己的位置信息发给家长。实现信息的相互性。

2 硬件设计

基于STM32的智能山地车安防系统的硬件由MCU模块,摄像头模块以及SIM模块组成。它们之间硬件连接框图如图2所示。

图2 系统硬件结构框图

2.1 MCU模块

STM32F1系列芯片是意法半导体公司设计的常用的32 bit MCU,Cortex-M3内核,运算速度快,RAM和FLASH容量也比较大。价格便宜,很容易买到。

在本系统中选用STM32F103VET6芯片作为MCU,该款单片机有基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M内核,CPU工作频率可达72 MHz,同时具有一流的外设:1 μs的双12 bit ADC、5个4 Mbit/s的UART、3个18 Mbit/s的SPI、7通道的DMA控制器、80个可用的GPIO口和1个USB 2.0接口。在功耗和集成度方面也有不俗的表现。并且具有强大且丰富的库函数、简单的结构、易用的工具以及强大的功能。在存储方面,它有64 kbyte RAM,512 kbyte Flash,能满足存储图像并传输的功能,符合要求。

2.2 SIM模块

在本系统中SIM模块是整个系统的重要组成部分,它的选择至关重要,因为本系统需要GPS定位,所以还要考虑GPS定位的精准度的问题。

在本系统中,选择SIM5320E为本系统的SIM模块的主控芯片,SIM5320E是芯讯通公司推出的一款高性价比的WCDMA/HSDPA的芯片。它有可以支持UMTS/HSDPA 900 MHz/2 100 MHz和GSM/GPRS/EDGE 850 MHz/900 MHz/1 800 MHz/1 900 MHz,并且最高下行传输速率可以达到3.6 Mbit/s,最高上行传输速率可以达到384 kbit/s,能够满足系统传输图片的要求。同时SIM5320E还内置了GPS/AGPS定位芯片,其定位精度<2.5 m CEP。

2.3 摄像头模块

本系统选用OV7725摄像头。OV7725是美国OminVision公司生产的一种光传感器,它有标准的SCCB接口输出,支持RAW RGB、RGB(GRB 4∶2∶2,RGB565/555/444)和YCbCr(4∶2∶2),支持VGA和QVGA大小图片。

而本摄像头模块有30 W像素、640像素×480像素、M12镜头、F2.0光圈,95°视角等特性。因为STM32F103VET6的工作频率为72 MHz不能够跟上OV7725的传输速率,所以设计了在OV7725传感器后再加上FIFO存储器,能够让STM32F103VET6顺利的采集到图像。

3 软件设计

本系统的软件设计是实现功能的根本,本软件设计主要分为3个部分,分别是MCU软件设计、Android APP的开发和服务器上位机的开发。

3.1 MCU软件设计

MCU的软件设计以控制SIM模块和处理摄像头数据为根本,采用循环运行的策略进行设计。MCU软件细分的实现在STM32F103内部实现,软件细分的控制流程如图3所示。其中GPS信息处理以及摄像头图像处理为其中的难点。

图3 MCU软件流程图

3.1.1 GPS信息处理

在本智能山地车安防系统中,GPS信息的获取与处理是一个非常重要的工作,整个系统的工作有一半围绕它来进行的。所以对于GPS信息的准确性以及精度要求很高。

SIM模块通过串口通信和STM32来进行通信,它们的之间通信的格式为:波特率为115 200,数据为8位,一位停止位,无奇偶校验位。通过AT指令来获取SIM5320E的GPS数据时,获得GPS信息的格式如下:

+CGPSINFO:[],[N/S],[],[],[],[],[],[]

当然它并不是系统需要的信息的格式。而且它的GPS信息是度分秒的格式且是字符型,还需要将分秒转化成小数,才是系统需要的信息。利用了STM32强大的数据处理能力,将经纬度信息强制类型转化成double型,再转化成小数后,最后在强制类型转化成字符型[3-4]。

3.1.2 摄像头图像处理

摄像头的图像处理也是很关键的,在本系统中摄像头模块采用OV7725摄像头和FIFO相连接的构成的。

摄像头数据主要包括场信号数据、时钟数据和D0-D7的图像信息数据。在检测到场中断的情况下,系统从FIFO中读出一个数据类型为uint_16的RGB565数据。但是STM32库函数中UART发送函数一次只能传输一个uint_8类型的数据,同时上位机不好直接识别uint_8类型的数据,需要将一个uint_16的RGB565数据转换成4个char类型的数据。核心代码如下:

VSYNC_Init( );//场信号线初始化

Ov7725_vsync=0;

if(Ov7725_vsync==2)

{

FIFO_PREPARE;

for(i=0;i<120;i++)

{

for(j=0;j<120;j++)

{

READ_FIFO_PIXEL(Camera_Data);//读取RGB565数据到Camera_Data

change_int_16(a1,a2,a3,a4,Camera_Data);//Camera_Data转化成4个char类型数据

}

}

Ov7725_vsync=0;

}

3.2 Android APP软件设计

Android是源于Linux,使用了Linux内核的操作系统,是Google公司在2007年公布的手机操作系统[5]。Android的运行环境为虚拟机技术——Dalvik,在执行的时候每一个应用程序都有一个虚拟机实例。Android APP通常用Java语言编写,经过编译后会生成一个APK包,目前Android APP的开发工具主要有eclipse和Android Studio[6-7]。

百度地图API是一套应用程序接口,通过地图服务应用接口将平台和地理信息数据捆绑,将地图逻辑进行封装,以一种直观的方式提供给用户,从地图服务和开发两个层面降低了地理信息系统的应用门槛。包括JavaScript API、Web 服务[8]。

AndroidAPP的开发基于百度地图API的鹰眼轨迹服务。软件运用了鹰眼轨迹中的Android SDK,它是一套基于Android 2.1及以上版本设备的应用程序接口,可以通过该接口实现轨迹追踪[9]。安卓程序的结构框图如图4所示。

在PasswordActivity的输入用户名和密码进入MainActivity,最后通queryHistoryTrack方法来实现轨迹的显示。

图4 Android APP的结构框图

图5 上位机构成结构框图

3.3 服务器上位机的软件设计

软件通过Visual Studio的MFC编程方式实现,是一个基于对话框的项目[10]。通过socket实现网络信息的交互[11],其详细的结构框图如图5所示。

先通过gethostname( )函数获得主机名,再通过gethostbyname( )函数获得主机结构,继而访问其成员得到绑定本机IP地址。之后在线程函数server_thd( )中,先获取活动主窗口指针,然后获取已填入的用户自建端口号,如未填则提醒“请输入端口号”。之后创建socket,创建监听,之后绑定端口并开始监听[12]。当接收到连接请求后,连接。当res≠-1,开始接收数据。

如果接收到的数据为“begin”,开始接收图像数据。图像数据为120×120像素点,接收格式为一行30个像素,转换成字符为120个字符,共480行。存入二维数组之后用change( )函数将字符所对应ASCⅡ码转换为16进制对应数,并存入一个新short型数组,之后将二维数组转为一位数组,方便重新整理数据。将一维数组中的数据通过移位拼接,重新形成一个像素点所对应的16位二进制数。

之后通过类成员函数readRGB( ),通过左右移得到RGB565所对应的RGB值并存入RGB类成员中[13]。再由changeRGB( )对RGB信息进行补偿

最后由窗口句柄,通过绘制CDC类中像素点绘制SetPixel( )函数,在指定位置根据类中信息绘制图像。核心代码如下:

gethostname(name,sizeof(name));//获得主机名

pHost=gethostbyname(name);//获得主机结构

IP=inet_ntoa(*(structin_addr*)pHost->h_addr_list[0]);//获取主机ip地址

showmsg_edit->SetWindowText("绑定IP地址:"+IP);

void RGB565::readRGB(short a);

void RGB565::changeRGB(RGB565 a);

SetPixel( );

4 实验与结果分析

本系统的功能主要分为3部分,分别为防盗、回传图像信息和回传位置信息给指定手机。

4.1 防盗实验

实验中,将本系统放到山地车上进行实验,设定山地车在按键按下后距离原点150 m,即为山地车被盗。用手机察看是否接受到被盗的短信,以及Android app上山地车的轨迹信息。经测试后系统自动给车主发送的短信如图6所示,Android app的界面信息如图7所示。观察实验结果,在实验中山地车的基本轨迹信息如图7所示,在误差允许范围内符合基本要求。

4.2 回传图像信息实验

在实验中,为了方便将本系统放在作者书桌上进行实验。上位机位于作者电脑上,上位机的监听端口设置为:12345。按下K2键,等待系统将图像信息传输到服务器的上位机上。上位机的截图信息如图8所示。另外,为了方便对比,图9为MCU自带的液晶上显示的图像信息。通过对比发现,上位机能基本上还原基本的图像信息,能满足辨别周围信息的要求。

图6 短信信息

图7 Android app界面

图8 上位机接受图片

图9 系统液晶显示图像

4.3 回传位置信息实验

实验中,将本系统放到山地车上进行实验。利用手机给SIM5320E发送指定的短信和接受系统返回的百度地图API短信链接。手机发送“GPS”给SIM5320E后,接受到的短信回复如图10所示。

图10 接受位置信息截图

统计100次查询指令操作的耗时长度(由发送短信时间、指令判断时间、GPS信息获取时间,返回百度地图API链接短信时间3部分组成)。经测试,从发出查询短信到系统返回位置信息的时间平均耗时为25.28 s,其中最短的查询时间为20 s,如表1所示。实验结果验证了系统工作的可靠性和实时性。

表1 测试响应时间

5 结束语

为了应对目前山地车丢失以及户外安全问题,在进行模块化设计的基础上,提出了一种基于STM32F103为核心的智能山地车安防系统。本实验表明,该系统弥补了现有防盗系统不能及时提醒车主山地车被盗的局限性,而且Android APP上能时刻追踪山地车的GPS信息,让人更加的清楚明了,以及可以主动获取山地车周围的图像信息,让系统具有及时准确和直观方面等特点。

[1] 田光伟,马玉琪,郑卫刚. 基于“一卡通”的校园自行车防盗管理系统[J]. 电子世界,2013,17:22.

[2] 张庆辉,马延立. STM32F103VET6和ENC28J60的嵌入式以太网接口设计[J]. 单片机与嵌入式系统应用,2012(9):23-25,32.

[3] 简洁. 电动自行车防盗监控系统及应用程序设计[D]. 北京:电子科技大学,2015.

[4] 徐云. 低成本电动自行车防盗跟踪监控模块设计[D]. 北京:电子科技大学,2015.

[5] 曹晓芳,王超,李杰. 一种基于Android智能手机的远程视频监控的设计[J]. 电子器件,2011,34(6):709-712.

[6] 孙明星,孙娇. Android智能穿戴设备开发从入门到精通[M]. 北京:中国铁道出版社,2014:29-47.

[7] 郑伟. 基于Android的百度地图车辆定位系统设计与实现[D]. 呼和浩特:内蒙古大学,2014.

[8] 杜传明. 百度地图API在小型地理信息系统中的应用[J]. 测绘与空间地理信息,2011(2):152-153,156.

[9] Jun Zeng,Minbo Li,Jia Liang. An Anti-Theft Electric Bicycle Tracking System Supporting Large-Scale Users[J]. 2014 International Conference on Identification,Information and Knowledge in the Internet of Things.

[10] 王飞. MFC研究[J]. 硅谷,2011(16):83-84.

[11] 王志伟,钱承山,李俊. 基于无线传感网络的智能移动监控系统设计[J]. 电子器件,2013,36(6):876-880.

[12] 陈雅静. 基于Socket网络编程的远程物流防伪系统的设计[J]. 电子设计工程,2013(1):153-156.

[13] 杨光耀. 基于FPGA的图像采集及处理系统设计[D]. 呼和浩特:内蒙古大学,2014.

Smart Security and Protection System of the Mountain Bike Based on STM32 Microprocessor*

ZHANGHanlun,ZHOUYun,YANGKun,WANGYueyu,ZHAONing*

(College of Electronic Science and Engineering,Southeast Uinversity,Nanjing 211189,China)

In order to achieve mountain bike’s anti-theft and recovered,and the problems for the people to solve security problems in outdoor sports of mountain bike,the proposed intelligent security system of mountain bike is based on STM32. Through the system hardware and software design the STM32 microprocessor was established as control core,SIM5320E as data transmission module and OV7725 as image sensor module of the MTB security system. The remote transmission of the location of the mountain bike and its scene images,and the software and PC can display trajectory reproducing images and other functions. The results show that the mountain bike security system is stable,trajectory information is precise,the returning image is clear.

MTB security systems;track display;image transmission;Android;Baidu Hawkeye;socket

项目来源:江苏高校品牌专业建设工程项目(PPZY2015B136)

2016-04-25 修改日期:2016-05-17

U484

A

1005-9490(2017)03-0676-06

C:6140;6430H

10.3969/j.issn.1005-9490.2017.03.032

猜你喜欢
山地车上位短信
道歉短信
4款山地车脚蹬的测评报告
特斯拉 风云之老阿姨上位
千里达轻量化山地车双雄——X-TREME极限X1&极限X7
波兰市场由山地车向城市自行车转移
代发短信
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统
以新思路促推现代农业上位
UCI山地车马拉松世锦赛:库哈维完成全满贯