基于STM32的GSM短信报警系统的设计与实现
扫描二维码
随时随地手机看文章
引言
随着我国经济建设的迅速发展和人民群众生活水平的极大提高,人们越来越注重自身所处的环境是否安全。特别是当家中无人或者仅有老人孩子时,家庭成员的生命和财产的安全性越来越受到重视。因此,家庭防盗已成为一个重要的社会问题。目前,许多住宅小区的安防主要依靠传统的机械式(防盗网、防盗窗)防盗系统。这样不仅有碍美观,不符合火灾逃生的要求,而且不能有效地防止坏人的侵入。随着电子技术的飞速发展,防盗报警系统已迫切从原来的简单化、局部化向智能化、集成化发展。当前,GSM短信息服务已作为GSM网络的一种基本业务,基于GSM短信模块与单片机相连接应用于家庭无线防盗报警系统中,让家庭防盗更及时、更方便,以最直观的中文短消息形式,直接把案发地点的情况反映到用户的手机屏幕上。同时采用一种热释电红外传感器进行检测,变有形的传统防盗网防盗窗为无形的监控,给家庭防盗提供最直观、高效、可靠的保障。
1 系统的总体设计及工作原理
GSM短信报警系统设计框图如图1所示。整个系统[1]由STM32单片机模块、热释电传感器模块、GSM模块及传统扬声器模块组成。GSM模块采用芯讯通(SIMCom)公司生产的SIM900A芯片及外围设计电路,而热释电传感器模块采用红外专用芯片BISS0001的设计电路。首先当热释电传感器模块检测到人发射的红外线时,通过其外围放大电路转换成电压信号传输给STM32单片机。单片机判断热释电传感器模块送来的数据,通过串口发送一个高电平给GSM模块,使GSM模块发送短信到设定的手机号码,及时通知主人家里出现了什么情况,
同时使扬声器发声报警,从而实现系统的预想功能。然而白天当主人在家的时候,则不需要设定防盗功能,
可以关闭功能;假如主人要离开房屋或夜间睡眠时,则需要打开防护功能。这些 “设防”、“撤防”的功能,同样可以通过手机发送特定短信至GSM模块的方式进行开启和关闭,热释电传感器检测会随之起作用,以免引起不必要的麻烦和误报。
图1 系统总体框图
2 系统硬件电路设计
2.1 STM32F103 最小系统
STM32系列单片机[2]由ST公司生产的专为要求高性能、低成本、低功耗的嵌入式应用设计的ARM Cortex-M3内核。本系统采用的STM32属于互联型产品,具有以下标准功能:72MHZ主频,56k字节Flash,64字节SRAM,2个看门狗,多个16 位定时器,80%的引脚可以作为通用I/O 口,以及USART、SPI等通信外设,其外设完全满足本系统的功能要求。因此,本系统采用STM32F103作为总控制器,其最小系统如图2所示。
本系统采用4线JTAG接口,即TMS(测试模式选择)、TCK(测试时钟)、TDI(测试数据输入)、TDO(测试数据输出),又采用常规的20pin接口方式,通过仿真器与PC机连接,可以实现在线仿真调试,方便可靠。系统采用8MHZ晶体振荡器,此时需要接负载电路。另外,复位电路的设计方式简洁,可以实现系统可靠复位。
图2 STM32F103RBT6 最小系统
2.2 GSM 模块
GSM模块[3]用芯讯通(SIMCom)公司生产的SIM900A,是一款尺寸紧凑的GSM/GPRS模块,采用SMT封装,基于STE的单芯片案,采用ARM926EJ-S架构,性能强大,支持AT指令。
利用STM32的串口来控制GSM MODEM,单片机与GSM模块一般采用串行异步通信接口, 通信速度可设定,通常为19200bps。GSM MODEM与单片机之间采用串口通信的方式,MODEM的TXD、RXD分别为发送、接收端,与单片机的PA10、PA9连接,组成串口通信。GSM模块通过把PWRKEY信号拉低一段时间然后释放来开机。当模块开机后就可以发送AT命令来控制模块,用户可以通过“AT+IPR=x”设置波特率并把参数保存。一旦配置为固定波特率,当模块开机时将会从串口收到字符“RDY”。这些字符在自动波特率激活的情况下无法显示。同样,可以通过把PWRKEY 信号拉低一段时间然后释放来关机。或者使用AT命令“AT+CPOWD=1”关闭模块。该命令使模块从网络上注销,让软件进入安全状态,保存有用数据,让然后完全断开供电。在关机前,模块串口将自动发送下列字符串“NORMAL POWER DOWN”,这之后将不能执行AT命令。模块进入掉电模式,仅仅RTC处于激活状态。掉电模式可以通过STATUS引脚来检测,在掉电模式下此引脚输出为低电平。GSM主模块(包括SIM部分)如图3所示。
图3 GSM 主模块(包括SIM 部分)
2.3 热释电传感器模块
热释电传感器模块[4]括热释电传感器及外围放大电路,当有人进入传感器所能检测到的范围时,传感器检测到能量变化,转换成微弱的电信号,然后通过外围放大电路放大并转换成电压信号传输给单片机。其作用原理如下:人体都有恒定的体温,一般在37度,所以会发出特定波长10um左右的红外线,被动式红外探头就是靠探测人体发射的10um左右的红外线而进行工作的。人体发射的10um左右的红外线通过菲泥尔滤光片增强后聚集到红外感应源上。由实验证明,传感器不加菲涅尔透镜,其检测距离小于2m,而加上菲涅尔透镜后,其检测距离可增加到10m左右。红外感应源通常采用热释电元件,这种元件在接收到人体红外辐射温度发生变化时就会失去电荷平衡,向外释放电荷,经后续电路检测处理后就能产生电信号发送给单片机处理。
热释电BISS0001模块的原理图如图4所示。图中,运算放大器OP1(芯片内部)将热释电红外传感器的输出信号作第一级放大,然后由C104耦合给运算放大器OP2(芯片内部)进行第二级放大,再经由电压比较器COP1和COP2构成的双向鉴幅器处理后,检出有效触发信号Vs去启动延迟时间定时器,输出信号Vo经晶体管T1放大驱动继电器去接通负载。CDS1为光敏电阻,用来检测环境照度。当作为照明控制时,若环境较明亮,CDS1的电阻值会降低,使9脚的输入保持为低电平,从而封锁触发信号Vs。JP1是工作方式选择开关,当JP1跳线帽跳2、3口时,与1端连通,芯片处于不可重复触发工作方式,这种工作方式下即使检测区域有人活动模块也会自动停止输出一段时间(封锁延时)然后再检测,这种工作方式一般习惯称为脉冲输出;当JP1跳线帽跳1、2口时,与2端连通,芯片则处于可重复触发工作方式,只要检测区域有人模块就一直有输出,这种模式一般称为电平输出。另外,输出延迟时间T x由外部的R33和CY2的大小调整,触发封锁时间Ti由外部的R13和CY1的大小调整。模块采用低功耗稳压器件7133A-1,可以保证在很宽的输入电压下稳定提供3.3V的工作电压,确保模块能正常工作。
图4 热释电模块原理图
2.4 电源
电源模块分两部分:单片机供电模块和GSM供电模块。单片机电源采用典型的电源设计方案,如图5所示。其中C9和C10是旁路电容,起到抑制干扰的作用,而C11和C12 是电解电容,起到滤波的作用;一般大电容旁边并联一个小电容的目的是降低高频内阻,因为大的电解电容一般采用卷绕工艺制造,所以等效电感较大;小电容可以提供一个小内阻的高频通道,降低电源全频带内阻。这个电路在实际中比较常见。
图5 电源部分电路
而SIM900A模块电源采用VBAT为3.4V到4.5V的单电源供电,由于和单片机工作电压不同,由单独电源模块供电,如图6所示。VBAT端输出电压4.2V给GSM模块使用。
图6 GSM 模块的电源
2.5 扬声器
扬声器部分主要包括一个继电器,当单片机相应端口置为高电平时,驱动继电器,使得扬声器电路接通,发出声响以起到报警作用。
3 系统软件设计
3.1 AT 指令
AT指令集是从TEC(Terminal Equipment)或DTE (DataTerminal Equipment)向TA (Terminal Adapter)或DCE (DataCircuit Terminating Equipment发送的通过TATE发送AT命令来控制MS (Mobile Station)的功能与GSM网络业务进行交互,用户可以通过AT命令进行呼叫短信电话本数据业务补充业务传真等方面的控制。下面是一些短消息相关的常用AT指令:
目前,发送短消息常用Text和PDU(Protocol Data Unit,协议数据单元)模式。使用Text模式收发短信代码简单,实现起来十分容易,但最大的缺点是不能收发中文短信;而PDU模式不仅支持中文短信,也能发送英文短信。所以此处使用PDU模式来收发短信。PDU模式收发短信可以使用3种编码:7-bit、8-bit和UCS2编码。7-bit编码用于发送普通的ASCII字符,8-bit 编码通常用于发送数据消息, UCS2 编码用于发送Unicode字符。该模块集射频电路和基带于一体,提供标准的AT命令接口,为数据、语音、短消息和传真提供快速、可靠、安全的传输。
首先使用命令“AT + CMGF = 0<CR><LF>”来选择PDU模式,比如SMSC(短信中心)号码是+8613800471500,对方号码是13656639676,消息内容是:“你好”。则手机发送的PDU串是
08 91 68 31 08 40 17 05 F0 11 000D 91 68 31 49 17 87 90 F6 00 08 00 06 4F60597D0021。
3.2 系统程序主流程图
系统程序主流程图如图7所示,系统先初始化,然后检测是否设防。因为单片机利用AT指令控制GSM模块,将数据传送出去。AT指令按照GSM模块支持的AT指令格式书写,通过单片机的串口发送出去。所以此模块的“设防”,“撤防”则可以通过以下方式:如果模块被命令“AT+CFUN=0”设置成最小功能模式, 则关闭射频功能和SIM卡的功能,在这种情况下,串口仍然可以继续使用,但是和射频功能及SIM卡功能相关的AT命令不能使用。此时为撤防状态。当模块通过“AT+CFUN=0”设置为最小功能,模块可以通过“AT+CFUN=1”命令返回全功能模式。此时为设防状态。一旦“设防”之后,系统正常工作。如果单片机通过热释电模块检测到有人进入,马上通过串口发送一个高电平到GSM模块,使模块发送短信给主人,同时扬声器发声报警。
图7 系统程序主流程图
4 结束语
该系统有以下特色:由于该系统设置了具有“设防”和“撤防”功能,可以避免误报;同时系统中扬声器和软件配合,能迅速而有效地起到报警作用;另外,借助先进稳定、成熟高效的GSM 移动网络,使得该报警系统更具智能化和集成化,报警方式更显直观性和可靠性;最后可针对家庭的实际需要开发其他功能,如添加摄像头等,使系统更加完善。
总之,由于系统结构设计合理,STM32 单片机与GSM 模块技术应用到位,功能电路实现较好,系统性能良好、稳定,较好地达到了家庭防盗要求的各项指标。而且该系统成本低、实用性和可操作性强,有着一定的应用价值,能得到广泛的应用和发展。