基于单片机GSM的防火防盗系统的设计

目录

【功能介绍】

【原理图】

【PCB】

【实物图】

【元器件清单】

【源程序】

【原理介绍】

【参考资料】

【参考文献】


【功能介绍】

本系统建立了一个基于GSM网络及短信息平台上的安防系统,设计中采用了STC89C52单片机系统、无线GSM短信模块及传感器技术。通过对主控模块、通信网络、传感器模块、短信模块及接口电路的控制。实现了系统的远程报警及控制功能,可以实现如下功能。

(1)该设计包括硬件和软件设计两个部分。模块划分为数据采集、单片机控制、GSM短信报警等模块子函数。

(2)系统可实现功能。当人员外出时,可把报警系统设置在外出状态,探测器开始工作,当有人闯入时,热释电红外传感器将探测到动作,并短信报警,向用户发送短信息实现远程防盗报警功能。

【原理图】

【PCB】

【实物图】

【元器件清单】

21-GSM防火防盗系统
名称型号数量
单片机STC89C521
IC座DIP401
万能板9*15cm1
晶振11.0592M1
电解电容10uF1
电解电容1000uf1
瓷片电容22pF2
电阻10K3
电阻1K4
电阻2K1
LED红5MM1
LED绿5MM1
蜂鸣器有源1
三极管S90121
按键5
显示屏LCD16021
排针16P1
排母16P1
人体红外模块HC-SR5011
排母3P1
温度传感器DS18B201
烟雾传感器MQ-21
模数转换器ADC08321
IC座8P1
GSM模块SIM800c1
电源座5MM1
电源线5V2A1
自锁开关1
继电器1
小水泵1
导线若干
焊锡丝若干

【源程序】

#include<reg52.h>
#include<intrins.h>
#include "sim800.h"	
#define uchar unsigned char
#define uint  unsigned int
#define K_MG_MV    120/66 
typedef unsigned char  U8;       /* defined for unsigned 8-bits integer variable 	  无符号8位整型变量  */
typedef unsigned int   U16;      /* defined for unsigned 16-bits integer variable 	  无符号16位整型变量 */
unsigned char aa,bb,cc;
/********测试GSM是否启动**********/
int test_boot;
/********测试GSM是否注册网络**********/
int test_net_register;
/********GSM串口接收数据缓存**********/
unsigned char idata GSM_receive[60];
/********GSM串口接收计数器**********/
unsigned char  GSMDATA_count;
unsigned char *content_fire = "Please note that!  There are fire,no thief!\r\n";  //请注意!无盗贼,有火灾!
unsigned char *content_thief = "Please note that! There are thieves, no fire!\r\n";  //请注意!有盗贼,无火灾!
unsigned char *content_fire_thief = "Please note that! There are thieves, there are fires!\r\n";	//请注意!有盗贼,有火灾!
unsigned char str_yw[12];//烟雾值
unsigned char T_baojing = 30;  //温度报警值
unsigned int  C_baojing = 200; //烟雾浓度报警值
unsigned char T_buff[3];  //温度报警值显示缓存
unsigned char C_buff[4];  //烟雾报警值显示缓存
bit sdbj_flag=0; //手动报警标志
bit sf_flag=0; //设防标志
bit sf_flag_buff=0; //布放开始计时标志
unsigned char moshi=0;//设置模式
unsigned char data1;  //AD转换中间值
long Value;// AD转换结果值
/*******引脚定义********************/
sbit  Infra	 = P3^2; //  人体红外模块
sbit bADcs=P3^4; //	 模数转换器引脚定义
sbit bADda=P3^5; //	 模数转换器引脚定义
sbit bADcl=P3^6; //	 模数转换器引脚定义
sbit baojing=P3^7;	  //手动报警
sbit  BUZZER = P2^0; //  LED蜂鸣器
sbit shuibeng = P2^1;	//水泵
sbit fengshan = P2^2;	//风扇
sbit  sf_led = P1^3;//   设防指示灯
sbit  shefang= P1^4;//   设防按键
sbit  shezhi = P1^5; //  设置
sbit  jia    = P1^6; //	 加
sbit  jian   = P1^7; //  减	

unsigned char IntToString(unsigned char *str, int dat);
extern bit Start18B20();
extern bit Get18B20Temp(int *temp);				//	  ;;;;;、‘       
extern void InitLcd1602();
extern void LcdShowStr(unsigned char x, unsigned char y, unsigned char *str);
float intT, decT;  //温度值的整数和小数部分

 
/*------------------------------------------------
                    定时器初始化子程序
------------------------------------------------*/
void Init_Timer0(void)
{
 TMOD |= 0x01;	  //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响		     
 TH0=(65536-1000)/256;		  //重新赋值 1ms
 TL0=(65536-1000)%256;
 EA=1;            //总中断打开
 ET0=1;           //定时器中断打开
 TR0=1;           //定时器开关打开
 PT0=1;           //优先级打开
}

long kssj()   //开始收集
 {
   unsigned char i;

     bADcs = 0;//当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用.
	 bADcl=0;
	 bADda=1;
	 bADcl=1;
	 bADcl=0;//i down
	 bADda=1;
	 bADcl=1;
	 bADcl=0;	//   2 down
	 bADda=0;
	 bADcl=1;
	 bADcl=0;	//   3 down
	 bADda=1;
	 bADcl=1;
	 bADcl=0;	//   4 down

	 for(i=8;i>0;i--)
	 	{
		
	 	data1<<=1;
	 	bADcl=0;
		bADcl=1;
		if(bADda==1) data1|=0x01;
		   	bADda=1;
	 	}
		 bADcs=1;
	 	
       Value=data1*1.0/256*500;
	   
	   Value=Value*K_MG_MV;
	   Value=Value-5;
	   if(Value<0)Value=0;
	   return Value;
 }


void Key_set_scan()
{
  	if(baojing==0)
	{
	    Delay_Ms(10);
		if(baojing==0)
		{  
		 while(!baojing);
		 sdbj_flag =~sdbj_flag;
		
		}
	 }
	
	if(shezhi==0)
	{
	   Delay_Ms(10);
		if(shezhi==0)
		{  
		   while(!shezhi);
		   InitLcd1602();     //初始化液晶
		   moshi++;
		   if(moshi >= 3)moshi = 0;
		   if(moshi == 0)
		   {
		     			   /*1234567890123456*/
             LcdShowStr(0,0,"T:    C S:   PPM");
			 LcdShowStr(0,1,"                ");
		   }
		   else if(moshi == 1)
		   {
		      LcdShowStr(0,0,"                ");
		      LcdShowStr(0, 1,"Set_T:   C");
		   }
		   else if(moshi == 2)
		   {
		   	   LcdShowStr(0,0,"                ");
			   LcdShowStr(0, 1,"Set_C:    PPM");
		   }		   	
		}
	}
	
	if(jia==0)
	{
	   Delay_Ms(10);
		if(jia==0)
		{ 	 
		    while(!jia);
			if(moshi==1)
			{
			 T_baojing++ ;
			 if( T_baojing>=99 )T_baojing =99;
			}
			if(moshi==2)
			{
			 C_baojing++ ;
			 if( C_baojing>=999 )C_baojing =999;
			}		
		 }
	 }
	 if(jian == 0)
	 {
	    Delay_Ms(10);
	    if(jian == 0)
	    {
		    while(!jian);
	        if(moshi==1)
			{
			 T_baojing-- ;
			 if( T_baojing<=0 )T_baojing =0;
			}
			if(moshi==2)
			{
			 C_baojing-- ;
			 if( C_baojing<=0 )C_baojing =0;
			}
	   }
	 }
	 if(shefang == 0)
	 {
	   Delay_Ms(10);
	   if(shefang == 0)
	   { 
	     while(!shefang);
		 if(sf_flag == 0)
		 {
		   sf_flag_buff = 1;
		   sf_led = 0;
		 }
		 else if(sf_flag == 1)
		 {
		   sf_flag = 0;
		   sf_led = 1;
		   BUZZER = 1;
		 }
		 	
	   }
	 }
		 
}

本文介绍了在设计的过程的关键点,供大家参考学习,如果有错误或者不明白的可以直接私信作者,或者添加微信biyezhan007。

【原理介绍】

        MQ-2气体传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(SnO2)。当传感器所处环境中存在可燃气体时,传感器的电导率随空气中可燃气体浓度的增加而增大。使用简单的电路即可将电导率的变化转换为与该气体浓度相对应的输出信号。MQ-2气体传感器对液化气、丙烷、氢气的灵敏度高,对天然气和其它可燃蒸汽的检测也很理想。这种传感器可检测多种可燃性气体,是一款适合多种应用的低成本传感器。封装好的气敏元件有6只针状管脚,其中4个用于信号取出,2个用于提供加热电流。基本电路如图。

【参考资料】

 

 

【参考文献】

[1]唐文彦. 传感器. 哈尔滨工业大学出版社, 2007. 15~16

[2]伊念东. 单片机基础实用教程. 中国地质大学出版社, 2005

[3]赵茂泰. 智能仪器原理及应用. 电子工业出版社,1999. 43~46

[4]吴政江. 单片机控制红外线防盗报警器. 锦州师范学院学报, 2001, 27(12): 55~59

[5]宋文绪. 传感器与检测技术. 高等教育出版社, 2004

[6]李全利. 单片机原理及接口技术. 北京航空航天大学出版社, 2004. 75~78

[7]薛均义. 张彦斌. MCS-51系列单片微型计算机及其应用. 西安交通大学出版社, 2005

[8]康华光. 电子技术基础(模拟部分). 高等教育出版社, 2004

[10]徐爱钧, 彭秀华. 单片机高级语言C51应用程序设计. 北京: 北京航空航天大学出版社, 2006. 97~99

[11]邓凯. 智能化住宅安防系统的应用. 冶金矿山设计与建设, 2000. 98~99

[12]赵晶. Prote199高级应用.北京: 人民邮电出版社, 2000. 101~103

[13]王振红,李洋.基于DTMF信号收发芯片MT8880的直接接口设计[M],电子与自动化,1999,5(2):23-56.

[14]刘波,韩宪中.MT8880在机房监控系统中的应用[J],河北省科学院学报,1999, 16(4):53-56.

[15]辛德强.X25045与8051的接口技术[J],电子技术应用,2002,4(12):20-22.

[16]石波,陈子春.用单片机实现语音提示、报警系统[J],煤矿自动化,2001,6 (5):43-44.

[17]潘桂忠,丁逸,纪兰花.微电脑自动拨号防盗报警器的设计[J],现代电于技术,2003,8 ( 1 ):67-69.

[18]李桂桦.家庭保安报警系统的设计[J],计算机应用,2000,6 (9):31-33.

 未经作者允许,不得抄袭转载,转载或有问题请私信或微信作者。

         最后说一下,如果大家对硬件和编程感兴趣,可以点击牛客网这个连接看看,是个不错的学习网站,是学长推荐给我的,因为之前找工作的时候没有太多经验,也不知道怎么准备,去哪里搜资源,走了很多弯路,所以推荐给大家,当初在上面大量刷题还看了好多面试经验等,反正上面有很多课程+刷题+面经+求职+讨论区等资源,关键里面的资源全部公开免费,不用花钱,希望能帮助家!    

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咸鱼弟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值