IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 基于单片机GSM的防火防盗系统的设计 -> 正文阅读

[嵌入式]基于单片机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.

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

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-08-06 11:00:44  更:2022-08-06 11:02:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 23:34:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码