APP下载

基于STM32的防长者走失智能报警系统

2018-03-19文昊翔罗欢

电脑知识与技术 2018年4期

文昊翔 罗欢

摘要:该文设计了一款基于stm32的防长者走失追踪报警系统。系统主要实现自动报警与长者定位功能,系统主要包含发射机和接收机两部分并且以STM32F103ZET6为核心控制器。其中,发射机控制NEO-6M-0-001 GPS定位芯片和SIM900A芯片以获取目标的位置信息,然后向指定号码发送短信以实现报警功能作用,最后通过NRF24L01将定位数据发射到接收机。接收机接到定位信息后,通过串口将信息上传至电脑以实现地图上定位。经测试表明系统稳定性强,使用方便,具有较大的应用前景。

关键词:stm32;防长者走失;GPS;自动报警

中图分类号:TP273 文献标识码:A 文章编号:1009-3044(2018)04-0170-03

The Alarm System for Lost Elderly Based on STM32

WEN Hao-xiang, LUO Huan

(Institute of Physics and Mechanical & Electrical Engineering, Shaoguan University,Shaoguan 512005, China)

Abstract:An alarm system for lost elderly Based on STM32 is proposed in this paper. The system is used to locate the elderly and send a warning. The system mainly has two components, a transmitter and a receiver. The two components are controlled by a microcontroller STM32F103ZET6. The transmitter locates objections with a location module NEO-6M-0-001 and a GSM module SIM900A, and then sends this location information as well as a warning message to a certain mobile phone. At the same time, the transmitter also sends the location information to the receiver with NRF24L01. After the receiver receives the data from the transmitter by NRF24L01, it sends the location data to PC with the serial port and locates the target on the map in PC screen. The experimental results indicate that the proposed system has great prospects for its strong stability and easy controllability.

Key words:stm32; anti-elderly lost; GPS; H.264; automatic alarm

1 概述

目前,老人走失的事件常见诸报端,因此追踪定位产品诸如防长者走失报警系统正为社会所需。但是如今市场上仍然缺乏一种成熟的相关产品。

本设计为一款防长者走失智能报警系统,系统分为发射机和接收机两部分。发射机使用NEO-6M为主要定位芯片,并且使用SIM900A为核心的GSM模块以实现发送报警短信的功能。发射机主要工作流程为:首先通过编写程序读取NEO-6M的定位信息并进行处理,在目标离开既定范围(如老者离开了自家的房屋)后及时发送警告信号和实时位置信息到指定的手机号上,然后通过NRF24L01无线傳输天线将NEO-6M的定位数据传送到接收机[1]。接收机的主要作用是将数据接收并将其通过串口传输到PC机上,以实现将目标具体位置显示在地图上的功能,方便用户对目标位置进行追踪。

该系统对定位信息的准确度有较高的要求,在制作的过程中应注意对NEO-6M芯片的定位信息的检测,保证正确检测到目标移动情况;同时应注意确保NRF24L01在收发数据时没有错漏,并能完整无误地将数据传送给PC进行读取。其对C语言的程序流程也有较严格的要求。由于数据处理较多,因此需要保证程序各方面流程准确无漏洞,如完善自动重启功能,以保证系统在运作过程中无卡机现象出现。

2系统的硬件设计

2.1 STM32最小系统的设计

本设计的STM32最小系统主要包括以下几个基本构成部分:MCU、LED部分、按键部分、时钟电路以及其他必须的排针接口等[2]。电路如图1所示。

STM32是ST公司推出的一种以Cortex-M3为核心处理器的高性能32位微控制器, STM32F103ZET6是一款增强型STM32,包含了由内核DCode、系统总线和两个DMA通道组成的驱动单元以及由Flash闪存、FSMC、内部存储器和AHB/APB桥组成的被动单元。

2.2 GPS卫星定位的设计

本文设计的GPS定位模块采用NEO-6M内核,包含EEPROM、纽扣电池、UART调试接口和SMA接口等外部硬件设备[3]。NEO-6卫星定位芯片是U-Blox公司生产的一款能够独立工作检测位置信息的高性能GPS信号接收器。NEO-6包含了两个部分:射频和基带,它的系统框图如图2所示[4]。

EEPROM是指可擦可编程只读存储器,能够保证模块掉电后仍能够记忆本次的波特率和帧数据,方便下次恢复供电时可以快速进入工作状态;纽扣电池主要用于在短时间内记忆搜星数据,提高模块的工作效率;UART调试接口为TTL电平,用于检测完整的模块功能;SMA接口用于连接天线[5]。GPS模块的电路如图3所示。

2.3 NRF24L01无线通信模块

NRF24L01无线通信模块采用NORDIC公司的NRF24L01芯片,内置2.4GHz天线,使用NORDIC公司的Enhanced Shock Burst协议进行通信,可实现点对点通信或一对多通信,但最多不能超过6点。NRF24L01芯片功能十分强大,具有多种工作模式,包括收发模式、配置模式、空闲模式和关机模式,以满足不同的工作环境的需要[6]。其中,收发模式有三种,分别为直接收发模式、Enhanced ShockBurstTM收发模式和ShockBurstTM收发模式,可根据需要设置。

NRF24L01无线通信模块的外形图如图4所示。可以看出NRF24L01模块只引出了NRF24L01芯片的6个引脚,包括工作模式控制引脚CE、片选线CSN、始终控制线SCK、数据输入输出控制线MOSI和MISO以及中断信号引脚IRQ、以及供电引脚VCC和GND[7]。

目前市场上的NRF24L01无线模块均带有内置天线,最大传输距离可为100米,且可与NRF2401A、NRF24L01+、NRF24LE1、NRF24LU1等无线模块通用,是理想的实验传输模块。

3 系统软件的设计

本系统的软件部分有:发射机主程序和接收机程序。其中,发射机程序包括GPS控制处理程序、SIN900A控制处理程序、NRF24L01数据发送程序及其他完整实现整机系统所需的USART、SPI、定时器等STM32外围电路程序;接收机程序则主要是NRF24L01的数据接收程序。本次程序设计采用模块化的编程模式对各个部分的程序进行设计编写。

本系统运用模块化思想进行编程以实现整机功能。其中,发射端主程序的工作流程如图5所示。

本系统的两部分程序都是用C语言编写实现的。首先是对MCU的各个外设,包括GPIO、SPI、定时器、内部FLASH、串口1、2、3等进行初始化设置,包括开启时钟等基本操作,保证MCU已经被正确设置,确保后续程序正常运行。

发射机程序包含了本系统的三个重要部分——GPS定位信息的读取、GSM状态的控制以及NRF24L01的数据发送,而接收机程序则主要是NRF24L01的数据接收。在对各模块操作之前均要对模块进行检测,如果检测不到模块,说明模块尚未初始化或是硬件连接出错。如未提前检测模块是否正常接入就盲目进行下一步数据处理,将有可能出现乱码问题,并导致后继功能无法实现。为了避免这样的情况出现,从严谨的设计态度出发,检测程序必不可少。

对于发送机,在检测到三部分模块电路已经成功与MCU握手并完成初始化后,就可以执行数据处理的程序,读取GPS接收到的位置信息,将其转换成为正常的、可读性强的数据进行保存,不断更新,并将定位数据不断地准确发送给接收机。当检测到GPS的位置不在正常范围内,即可判断目标离开了规定地点,就可以将带有目标位置信息的短信及时发送到指定的手机号码上,实现报警功能[8]。

对于接收机,在各外设的初始化及模块检测完成后,程序将设置NRF24L01进入数据接收状态,使其不断地接收从发射端发送而来的数据,并将其传输到串口上,则通过串口连接到电脑可以将数据传送到电脑上,并通过GPS模块串口调试助手分析数据,将目标具体位置直接显示在地图上。

4 系统测试

4.1 GPS模块的测试

对GPS定位功能的测试,可以通过多功能串口调试助手进行验证。串口调试助手的软件界面如图6所示。

通过CH340 USB-TTL串口线即可实现PC与GPS模块的连接,并将GPS的数据上传给PC机,通过上述串口助手即可将定位信息显示出来。由图6可知,本次GPS模块可以实现准确定位。

4.2 GSM模块的测试

同GPS定位模块一样,GSM模块也可以通过串口连接到PC端,通过串口调试助手给模块发送AT指令,通过模块的反应,验证GSM模块工作是否正常。检测过程中串口调试助手的软件界面如图7所示。

由图7可知,GSM模块的工作状态正常,且收发短信的功能经过串口调试助手的初步测试,可以成功向指定号码发送短信。

4.3 NRF24L01模块功能测试

不像GSM和GSP可以直接使用串口调试助手在PC端测试模块的功能。NRF24L01模块的数据需要通过SPI总线作为桥梁与MCU连接,再由MCU在获取数据之后,将数据通过串口发送给PC机,此时便可在串口调试助手上观测到相关的传输数据。

在本轮针对NRF24L01的测试中,主要测试电路能否正常连接及对程序进行初步测试,因此仅需发送一些简单的字符数据。此外,发送端还接入TFT液晶显示屏作為测试辅助工具,通过简单的程序设计即可使液晶屏直接显示当前传输数据的实际内容及传输状态。当检测到系统出现故障时,通过液晶屏显示内容即可判断故障是由发送端还是由接收端引起。

4.4 整体系统测试

经过前面测试后,即可将各模块接入MCU,并将程序写入MCU,进行整机测试。在这个过程中,存在着一些模块程序运行冲突的问题,检验后发现是由于中断优先级和串口的波特率没有设置好。经过对程序的修改,已经解决了这个问题。

经调试后,整个系统功能已经完整的实现,既能根据当前位置判断是否报警,也能在远程PC端实时查看目标在地图上的位置,实现报警追踪的基本功能。目标定位效果如图8所示,结果准确无误。

通过测试,整个系统达到了预期设想的效果,使用方便,具有较大的应用前景。

参考文献:

[1] 龚凌翔,叶芝慧,冯奇,方元.基于STM32的北斗/RFID组合定位系统设计[J].电子测量技术,2014,37(4):76-82.

[2] 丁力,宋志平,徐萌萌,陶灿辉.基于STM32的嵌入式测控系统设计[J].中南大学学报:自然科学版,2013,44(S1):260-265.

[5] 程铭. 基于GPS+GSM双技术定位的车辆跟踪系统的研究[D].天津大学,2010.

[8] 尹冬至. 基于GSM/GPS的汽车防盗系统的设计[D].武汉理工大学,2007.

[4] 朱斌.基于嵌入式微处理器的GPS跟踪报警系统设计[J].电讯技术,2010,50(4):88-91.

[3] 邵帅. 基于nRF905的温度数据采集及无线传输系统的设计[D].武汉科技大学,2010.

[7] 郝妍娜,洪志良.基于MCU和nRF905的低功耗远距离无线传输系统[J].电子技术应用,2007(8):44-47.

[6] 龙光利.基于嵌入式微处理器的无线传输系统的设计[J].半导体技术,2009,34(1):21-23+75.