基于单片机GSM的防火防盗系统的设计
?目錄
【功能介紹】
【原理圖】
【PCB】
【實物圖】
【元器件清單】
【源程序】
【原理介紹】
【參考文獻】
【功能介紹】
本系統建立了一個基于GSM網絡及短信息平臺上的安防系統,設計中采用了STC89C52單片機系統、無線GSM短信模塊及傳感器技術。通過對主控模塊、通信網絡、傳感器模塊、短信模塊及接口電路的控制。實現了系統的遠程報警及控制功能,可以實現如下功能。
(1)該設計包括硬件和軟件設計兩個部分。模塊劃分為數據采集、單片機控制、GSM短信報警等模塊子函數。
(2)系統可實現功能。當人員外出時,可把報警系統設置在外出狀態,探測器開始工作,當有人闖入時,熱釋電紅外傳感器將探測到動作,并短信報警,向用戶發送短信息實現遠程防盜報警功能。
【原理圖】
【PCB】
【實物圖】
【元器件清單】
| 21-GSM防火防盜系統 | ||
| 名稱 | 型號 | 數量 |
| 單片機 | STC89C52 | 1 |
| IC座 | DIP40 | 1 |
| 萬能板 | 9*15cm | 1 |
| 晶振 | 11.0592M | 1 |
| 電解電容 | 10uF | 1 |
| 電解電容 | 1000uf | 1 |
| 瓷片電容 | 22pF | 2 |
| 電阻 | 10K | 3 |
| 電阻 | 1K | 4 |
| 電阻 | 2K | 1 |
| LED紅 | 5MM | 1 |
| LED綠 | 5MM | 1 |
| 蜂鳴器 | 有源 | 1 |
| 三極管 | S9012 | 1 |
| 按鍵 | 5 | |
| 顯示屏 | LCD1602 | 1 |
| 排針 | 16P | 1 |
| 排母 | 16P | 1 |
| 人體紅外模塊 | HC-SR501 | 1 |
| 排母 | 3P | 1 |
| 溫度傳感器 | DS18B20 | 1 |
| 煙霧傳感器 | MQ-2 | 1 |
| 模數轉換器 | ADC0832 | 1 |
| IC座 | 8P | 1 |
| GSM模塊 | SIM800c | 1 |
| 電源座 | 5MM | 1 |
| 電源線 | 5V2A | 1 |
| 自鎖開關 | 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; //重新賦值 1msTL0=(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 downbADda=1;bADcl=1;bADcl=0; // 2 downbADda=0;bADcl=1;bADcl=0; // 3 downbADda=1;bADcl=1;bADcl=0; // 4 downfor(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.
總結
以上是生活随笔為你收集整理的基于单片机GSM的防火防盗系统的设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ABB机器人与PC计算机控制口连接
- 下一篇: ABB机器人 系统参数配置