一种基于SIM800C 通信模块的远程防盗报警器设计
2022-12-01李建杰杨延宁孙宇航杜永星
李建杰,杨延宁,2,孙宇航,杜永星
(1.延安大学 物理与电子信息学院,陕西 延安 716000;2.南昌理工学院,江西 南昌 330044)
目前,安全防护技术越来越先进,特别是道路交通、商场超市等公共场所设置了大量的监控,人们的安全感越来越高。相对而言,家庭的防盗基本上还是停留在防盗门和防盗网的较低层次上。由于工作忙碌,单位和住所距离较远,家庭远程防盗的需求越来越高。而传统的防盗门和防盗网虽然能阻止一定盗窃行为的发生,但它们在防火中的问题越来越多。因此,家庭防盗报警器的安装变得尤为重要。文中设计了一款符合市场需求的高性能、低价格的远程防盗报警器,用户手机可通过GSM 网络接收报警信息,对远程防盗技术领域有较大的促进作用[1-2]。
1 系统总体设计方案
远程防盗报警系统设计方框图如图1 所示。外围电路以单片机STM32F103C8T6 为主控器,包括热释电红外传感器、蜂鸣器报警模块、GSM 模块以及电源模块等。热释电红外传感器负责监测红外辐射的变化,进行防盗监测,出现被盗情况时,由单片机控制蜂鸣器报警模块发出警报,用户手机通过GSM 模块接收报警信息。
图1 系统总体方框图
2 系统硬件设计
2.1 硬件原理
系统硬件电路原理图如图2 所示。硬件电路包括手机通信模块(GSM)、电源接口电路、人体传感器(热释电红外传感器)电路、蜂鸣器报警电路、MCU以及按键电路等。
图2 硬件电路原理图
2.2 热释电红外传感器
热释电红外传感器又称人体红外传感器,是一种将红外热信号转换为电信号的器件,其内部原理图如图3 所示。从图3 可以看到,其本质上就是在一个场效应管基础上给栅极g 接入一个探头,探头内由压电陶瓷电介质制作。探头检测到10 μm 左右的红外线时就将红外信号转变为电信号。压电材料接收红外辐射后温度升高,将失去其表面电荷,这就是热释电概念的由来[3-4]。这些失去的电荷通过放大器放大而转换为电压输出。恰好人体在37°左右的温度时会发出波长为10 μm 左右的红外线,因此,称之为人体传感器[5-8]。
图3 热释电红外传感器原理图
2.3 GSM模块
GSM 模块采用SIM800C 通信模块,具有短信发送、语音通话、GPRS 数据传输等数据通信功能,其性能稳定,外观小巧,性价比高[9]。用户首先将自己的手机与防盗系统通信端口绑定,以便能够接收GSM网络的盗窃信息,实时提醒用户正在发生的情况。SIM800C 共有40 个引脚,通过一个ZIF(Zero Insertion Force)连接器引出[10]。SIM800C 引脚图如图4 所示。
图4 SIM800C 引脚图
2.4 报警电路
在防盗报警器设计中,选用了蜂鸣器报警,通过外接一个9012的三极管作为驱动,起到电路报警开关的作用,三极管9012 的发射极接到供电端,电压为高电平3.3 V,基极接收来自单片机的控制端29脚PB10。当传感器未检测到有人入侵时,单片机控制端PB10输出高电平,三极管9012处于截止状态,蜂鸣器不响,同时,单片机15脚PA1输出低电平,D2绿色发光二极管发光,表示没有被盗。当传感器检测到有人入侵时,单片机控制端PB10 输出低电平,三极管9012 就进入饱和导通状态,进而驱动蜂鸣器发出响声[11],同时,单片机20脚PA4 输出高低脉冲,D1 红色发光二极管闪烁,表示现场处于被盗状态。蜂鸣器报警电路图如图5所示。
图5 蜂鸣器报警电路图
2.5 单片机最小系统
报警器设计中选用的单片机是STM32F103C8T6,其采用LQFP44 封装。该单片机相比其他产品具有更高性价比。STM32F103C8T6 最小系统板原理图如图6 所示。
图6 STM32F103C8T6最小系统板原理图
最小系统电路有STM32F103C8T6 单片机芯片和时钟电路,时钟电路由一个8 MHz 晶振和两个30 pF 电容串联接入时钟输入脚[12-13]。
BOOT 引脚可以选择不同的启动模式,如表1 所示,通过BOOT0 和BOOT1 脚的电平组态可以控制启动模式[14]。
表1 STM32启动模式表
复位电路:系统工作前需要进行复位,通过足够的时间进行初始化,需要在NRST 脚(单片机的第7脚)保持低电平信号,芯片正常工作[15]。
3 软件设计
在用户按下布防键后,经过15 s 倒计时,系统开始进入工作状态,热释电红外传感器一旦监测到人体(窃贼)信号,就将信号传递给单片机进行程序处理,单片机输出信号,驱动蜂鸣器报警和发光二极管闪烁,并通过GSM 模块向手机发送报警信息,通过软件设计保证发光二极管的闪烁和蜂鸣器警报同步。如果没有人取消报警,程序将会持续循环进行报警工作。系统还设置了手动报警按键,突发情况下通过手动按键也能达到报警效果。主程序流程图如图7 所示。
图7 主程序流程图
4 调试
4.1 硬件调试
系统的硬件调试步骤如下:
1)在上电之前,对照电路图检查硬件电路,进行逐个排查,检查是否有多线、少线和引脚短路、开路等现象。
2)检查单片机及各硬件模块供电是否正常,电源电压是否稳定。
3)通电后检查单片机外设电路是否可以正常工作,特别检查热释电红外传感器等部件是否正常工作。在烧入程序后检查复位功能和程序烧写是否正常。
4)用万用表和示波器按照信号流动的方向测量电路的连通性。
电路调试是一个循环往复的过程,需要通过检测-调试-检测-调试的过程来提高硬件电路的性能,减小系统误差,达到系统的设计要求。
4.2 软件调试
在确认硬件电路调试无误后,再对系统软件进行调试。编程语言采用C 语言,软件平台采用Keil5。软件部分的调试主要是检测硬件部分与编写的软件程序是否匹配,确认是否可以达到设计要求。
1)首先检测各模块初始化配置是否正常,比如热释电红外传感器的引脚配置以及STM32F103C8T6的GPIO 配置是否正常。
2)检查各模块的数据是否可以接收和发送,比如,热释电红外传感器是否可以将采集到的温度数据经单片机处理后发送给报警电路,确保信息传输的连通性和准确性,防止出现乱码传输现象。
3)用仿真CPU 来模拟执行程序,在没有正式上机之前,可以采用MDK 自带的在线仿真器来调试程序。在线仿真调试能使程序的执行速度提高,但程序执行完后如果出现错误,不容易找出具体出错的行。如果采取单行程序执行,当程序执行到某一行并出现错误时,可以容易发现错误之处,但当程序运行量很大时,就会大大降低效率。有些程序中的变量需要达到某一个值时才能被执行到,因此,单行调试就很难执行整个程序。
基于上面仿真调试遇到的问题,主要的解决方法就是在进行程序调试时设置断点,断点设置好以后开始不间断地全速运行程序。当执行到断点行时程序就会自动停止,通过观察变量和相关寄存器的值就可以确定错误之处,此方法方便快捷,可以提高编程效率。
5 结论
该文设计的基于SIM800C 通信模块的远程防盗报警器,当热释电红外传感器检测到有人在检测区域内移动时,系统进入报警模式,微控制器接收信号处理后发送报警控制信号,驱动声光报警电路开始报警,同时,微控制器通过GSM 向预先绑定的用户手机发送报警信息,使得用户及时获知被盗警情。经调试,其符合设计要求。该报警器功能还可以进一步拓宽,可在红外报警的基础上增加烟雾温度报警、红外遥控等功能[16]。