刘刚鑫 古丽米拉·克孜尔别克* 侯正清 白新月 毛一新 陈飞阳
(新疆农业大学计算机与信息工程学院,新疆 乌鲁木齐830000)
全国每年被盗自行车车辆数量多,不仅给国家和社会造成不小的经济损失,而且还对广大的自行车车主造成了不便,且自行车被盗后很难追回,因此将现代电子信息技术运用到自行车防盗和保障骑行者中具有重要意义,借此设计希望能有效的减少,自行车被盗案和自行车交通事故的发生,挽回一些不可必要的财产损失和人员伤亡。
本文所设计的自行车防盗锁由主控芯片、震动传感器模块、GSM模块、GPS模块、液晶显示模块及超声波测速模块组成。系统框图如图1。单片机作为系统的控制核心,控制着系统的执行动作。通过串口1、串口2分别实现与GPS模块和GSM模块的通信。首先,系统通过GPS模块来获取到单车所在的地理位置信息。其次,单片机通过I/O口直接与震动传感器模块的输出引脚连接以判断是否有异常震动存在。若存在异常震动,单片机将给GSM模块发送发短信的相关AT命令,GSM模块将向在程序中已经设定好的电话号码发送短信,短信内容包括地理位置信息和相关报警信息,以达到报警的目的,提示自行车主采取措施。超声波测试传感器的TRIG和ECHO引脚与单片机的I/O口相连,把测出的距离显示在显示器上,当测出的距离过于近时,便触动警示电路,以警示后方来车。基于此,系统既实现了防盗功能也实现了保护骑行者安全的功能。
图1 系统设计框图
系统接口设计如图2所示。
图2 系统接口设计图
主控单元芯片采用的是增强型51单片机,宏晶公司的STC89C52RC单片机,此款MCU具有低功耗、高性能等特点。但是功能比传统51单片机更强大[1]。
GSM模块采用的是SIM800C模块,SIM800C的TXD口与单片机的串口2相连,通过向SIM800C模块发送AT指令来控制该模块发送短信。本设计主要用到的是短消息发送命令:AT+CMGC,该命令主要用于短信息的发送。如图3所示,因为单片机只有两个串口,其中一个串口已经被GPS模块占用,所以SIM800C的RXD引脚与单片的串口2相连,只能接受单片机发送的AT指令,而不能向单片机发送指令[2]。
图3 SIM800C模块接口原理图
采用常开高灵敏震动开关SW-18010P。开关静止时处于断开OFF的状态。当移动速度过快时,或者感受到外界异常震动过大时,导电接脚会瞬间处于(ON)状态。而当外界震动震动消失或者处于静止时会恢复到OFF的状态。当此模块感受到盗窃者所带来的异常震动时,与其相连的单片机引脚会立即导通变成低电平,主控芯片检测到引脚的电平为低,便会控制报警电路,触发报警装置,以此来恐吓入侵者。
此模块采用的是vk2828u7g5Llf,它采用的是内置天线,将GPS模块和天线嵌入到一个小尺寸的模块中,其与单片机的串口1相连,只能发送数据,而不能接受数据。模块接到定位卫星传来的NEMA数据,不能直接在LCD12864显示屏上显示。只有将数据通过算法转换成单片机可识别的数据,然后显示在LCD12864液晶屏上。GPS模块接口原理图如图4所示。
图4 GPS模块接口原理图
液晶显示模块用的是LCD12864,带中英文字库,可显示中英文,也可显示图形,有4位/8位并行、2线或3线串行多种接口方式。该模块操作简单,接口方式自由灵活,且价格便宜。可构成简易实用的人机交互图形界面。其1,20号引脚接电源地,2,19引脚接电源正极,第3,18号引脚接10k电位器5号引脚可不接,其余引脚接单片机I/O口[3]。图5是接线原理图。
图5 LCD12864接线原理图
采用HC-SR04模块,此模块有四个引脚,分别为VCC、GND、TRIG、ECHO。其中VCC接电源正极,GND接电源负极。TRIG端连接单片机的P1.0 口,ECHO端连接的是单片机P2.0 口。其工作原理:采用IO触发测距的方式,主控芯片向TRIG端(触发信号输入端)输入一个10微秒以上的高电平信号,超声波ECHO端收到信号将自动发送8个40Hz方波,于此同时启动定时器,待模块接收到回波则立即停止计时并通过I/O口输出高电平,该高电平持续的时间就超声波在空气中传播的时间,通过公式:距离=(高电平时间*声速)/2,这样就实现了用超声波测距的功能[4]。
开发环境采用美国Keil Software公司推出的51系列兼容单片机C51语言软件开发系统[5]。作为一款常见的单片机开发软件,与传统的汇编相比,C51语言具有功能强大、结构性好、可读性强、容易维护等特点。Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。其方便易用的集成环境、强大的软件仿真调试工具让开发过程事半功倍[6]。
系统软件主要采用模块化设计,主要有LCD显示屏初始化程序、GPS数据处理程序、GPS数据显示程序、超声波测距程序、短信报警程序等组成。
3.3.1 GPS数据处理程序
GPS接收数据为GPRMC模式的,其数据说明如下:
SGPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh
S:代表的是帧首标志符
<1>:UTC当地时间,采用时分秒格式
<2>:表示卫星的定位状态,A=数据可用;V=不可用
<3>:代表所处地理位置的纬度,采用度度分分.分分分 格式
<4>:所处位置是南半球还是北半球,N代表北半球,S代表南半球
<5>:代表所处地理位置的经度,采用度度分分.分分分 格式
<6>:所处位置是南半球还是北半球,E代表东半球,W代表西半球
<7>:对地速度,000.0 ~999.9 节
<8>:代表对地航向,000.0 ˚~359.9 ˚
<9>:当地日期,日日月月年年格式
<10>:代表的是磁极变量,000.0 -180.0 度
<11>:表示磁变方向,E&W
<12>:工作模式,A=自主,D=差分,E=评估,N=数据无效*:校验和隔离符号hh:校检符
3.3.2 程序设计思路如果单片机接收到的字符是“ S”,将之后5个字符存储到数组中,其次判断接收语句是否为GPRMC格式,如果是,则开始接收。可以通过对“,”计数,通过判断“,”的序数,把每个“,”后的数据都存入到不同的数组中。当接收“*”时,则表示数据已经发送结束,则停止接收[7]。
3.3.3 LCD12864显示程序设计
主要通过对LCD12864进行写指令和读数据来控制LCD12864,常用的指令如下[8]。
图6 主程序流程图
3.3.4 超声波测速程序设计
图7 LCD12864常见指令
图8 超声波测速流程图
单片机向超声波测速模块的Trig引脚发出10μs的高电平信号用以触发传感器测距。模块自动发送8个40kHz的方波,然后自动检测是否有信号返回。当有信号返回时,通过IO口输出一高电平,该高电平持续的时间就是超声波从发射到返回的时间[9]。时间单位 一般为微秒(μs),声速约为344m/s。
3.3.5 报警程序设计
将LED接到P3.6 口,当用超声波测距模块测到与后车距离太近时,用延时函数delay来控制LED每隔一秒闪烁一次。
结束语
本文提出一种基于单片机的多功能防盗自行车锁设计,使用STC89C52单片机作为系统的操控核心,采用震动检测和短信报警等方式,具有实用性高,易于推广的优点,经实际测试,结果符合设计要求,达到预期的设计目的。