找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5561|回复: 11
打印 上一主题 下一主题
收起左侧

基于GSM的远程家庭智能报警系统 文档+PPT+51单片机程序

  [复制链接]
跳转到指定楼层
楼主
基于51单片机设计的的GSM的远程家庭智能报警系统PPT内容预览:


本设计采用的是飞思卡尔公司的加速度传感器MMA7455I。
差容式加速度传感器
输出信号为数字信号,CS端口的高低电平决定其通信方式
在本设计中采用IIC通信
内部还有信号调理和电压转换电路电路   

二 温湿度传感器

        在本设计中采用的是温湿度传感器DHT11,DHT11 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,采用的是NTC测温元件。

     运用IIC协议读出加速度信号,并通过液晶屏分别显示X、Y和Z轴的加速度。
      对加速度信号的处理过程:
      本设计只对X轴信号进行处理,为了有效避免误报现象,我采用的是用加速度的平均值进行位移的计算:

其中的时间t我们设定为加速度值大于
到位移大于0.1m之间的时间长度。此时停止对加速度信号进行采集同时报警!

      DHT11为温湿度传感器,我只取其采集的温度信息并对其判断处理。
   在DHT11子函数中,由于其通信的特点,运用最多的是对不同延时程序的调用。



    本设计针对现有的GSM无线网络,介绍了基于GSM的远程家庭智能报警系统的设计及实现方法。利用各种传感器,如温湿度传感器、加速度传感器等对家中可能出现的各种意外情况进行采集,并通过组建的家中内部无线网络及时向单片机进行中断报警。GSM模块在单片机控制下,利用GSM网络,将各种报警信息通过短信的方式发送到预先设定的手机中,达到了远程无线智能报警的功能。同时,本文在对加速度信号的处理上,采用新的方法,即使用加速度平均值,并设定参考点的思路和方法,有效避免了漏报、误报现象的产生,是系统更加稳定。经过测试,该系统经济、可靠、稳定性高。家庭无需为传感器布线,具有广泛的市场推广价值。


单片机源程序如下:
  1. #include <reg52.h>
  2. #include <intrins.h>
  3. #include <lcd_1602.h>
  4. #include <IIC.h>
  5. #include <DHT11.h>
  6. #include <DGSM.h>
  7. #include <math.h>
  8. #define uchar unsigned char
  9. #define uint  unsigned int
  10. uint ttt,tt;
  11. int jiasu;
  12. uint chen,juli,flag;
  13. uchar str[8]="H:  T:  ";
  14. uchar code table4[10]="0123456789";
  15. //uchar  U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L;
  16. /***************rs=P1^2;rw=P1^1;e =P1^0;液晶显示还有P0*****************/
  17. /***************sda=P1^3;scl=P1^4;传感器************/
  18. /***************P2_0  = P2^0 ;温湿度**********************/
  19. /**************************************************************************/
  20. /************                  延时程序                    **************/
  21. /**************************************************************************/
  22. void DelayUs(unsigned char us)//delay us
  23. {
  24. unsigned char uscnt;
  25. uscnt=us>>1;/* Crystal frequency in 12MHz*/
  26. while(--uscnt);
  27. }
  28. void DelayMs(unsigned char ms)//delay Ms
  29. {
  30. while(--ms)
  31.    {
  32.      DelayUs(250);
  33.      DelayUs(250);
  34.          DelayUs(250);
  35.          DelayUs(250);
  36.    }
  37. }
  38. void delay_50ms(uchar t)
  39. {
  40.     uint j;
  41.         for(;t>0;t--)
  42.         for(j=6245;j>0;j--);
  43. }

  44. void sendx()        //函数功能:向1602发送x轴测量数据
  45. {        
  46.         uchar x1,x2,x3,xsign;
  47.         char x;
  48.         

  49.         x=iic_read(0x06);
  50.         if(abs(x)>5)
  51.         {
  52.                 TR0=1;
  53.                 while(abs(x)>5)
  54.                 {
  55.                         
  56.                         flag++;
  57.                         x=iic_read(0x06);
  58.                         //if((x&0x80)==0x00)
  59.                         //{
  60.                         //        xsign=0x2b;        //+
  61.                 //        }
  62.                 //        else
  63.                 //        {
  64.                 //                xsign=0x2d;        //-
  65.                 //                x=x-0x01;
  66.                 //                x=~x;
  67.                 //        }
  68.                 //        x1=(x/63);
  69.                 //        x2=((x*100/63)%100)/10;
  70.                 //        x3=(x*100/63)%10;
  71.                         jiasu=jiasu+x;               
  72.                  }

  73.         }
  74.         TR0=0;
  75.         chen=tt;
  76.         tt=0;
  77.         juli=(jiasu/flag)*15*chen*chen/200;
  78.         if(juli>100)
  79.                 A1=0;
  80.         if((x&0x80)==0x00)
  81.         {
  82.                 xsign=0x2b;        //+
  83.         }
  84.         else
  85.         {
  86.                 xsign=0x2d;        //-
  87.                 x=x-0x01;
  88.                 x=~x;
  89.         }

  90. //        x1=(x/63);
  91. //        x2=((x*100/63)%100)/10;
  92. //        x3=(x*100/63)%10;
  93.         
  94. //        else
  95. //                A1=1;
  96.         x1=x/100;
  97.         x2=x%100/10;
  98.         x3=x%10;
  99.         write_com(0x8B);
  100.         write_data(xsign);
  101.         delay_50us(10);
  102.         write_com(0x8C);
  103.         write_data(table9[x1]);
  104.         delay_50us(10);
  105.         write_com(0x8E);
  106.         write_data(table9[x2]);
  107.         delay_50us(10);
  108.         write_com(0x8F);
  109.         write_data(table9[x3]);
  110.         delay_50us(20);

  111. }


  112. /***********************************************************/
  113. /****************          主函数           ****************/
  114. /***********************************************************/

  115. void main()
  116. {
  117.         uchar j;
  118.         uchar shi,ge,shi0,ge0;
  119.         init1602();
  120.         Ini_UART();   //串口初始化
  121.     Delaym();
  122.         DelayMs(15);
  123.         self_test7455();

  124.         iic_write(0x10,0x15);//校正X值
  125.         iic_write(0x12,0x25);//校正Y值
  126.         iic_write(0x14,0x10);//校正Z值

  127.         delay_50ms(20);

  128.         

  129.         while(1)
  130.         {   
  131.            
  132.            RH();
  133.            shi=U8RH_data_H%100/10;
  134.            ge=U8RH_data_H%10;
  135.            str[2]=table4[shi];
  136.            str[3]=table4[ge];
  137.            
  138.            shi0=U8T_data_H%100/10;
  139.            ge0=U8T_data_H%10;
  140.            str[6]=table4[shi0];
  141.            str[7]=table4[ge0];
  142.            if((shi0>3)||(shi>4))
  143.            {
  144.                    if(shi0>3)
  145.                 A2=0;
  146.                 else
  147.                 A2=1;
  148.                 if(shi>4)
  149.                 A1=0;
  150.                 else
  151.                 A1=1;
  152.            }
  153.            write_com(0x80);
  154.            for(j=0;j<8;j++)
  155.         {
  156.                 write_data(str[j]);
  157.                 delay_50us(10);
  158.         }
  159.          
  160.                    sendx();
  161.                 //delay_50ms(1);
  162.                 if(A1==0)
  163.                    {
  164.               ATD();     //打电话
  165.               Delaym();
  166.                            Delay1(10000);
  167.                            ATH();
  168.                           Delaym();
  169.                           A1=1;
  170.                      }
  171.         if(A2==0)
  172.                    {
  173.               CMGF();
  174.               Delay1(3000);

  175.               CMGS();
  176.               Delay1(3000);

  177. ……………………

  178. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
完整的文档预览:http://www.51hei.com/bbs/dpj-85501-1.html

所有资料51hei提供下载(含完整文档+程序+ppt文件):
基于GSM的远程家庭智能防盗系统.rar (2.53 MB, 下载次数: 231)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏14 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:1 发表于 2017-5-21 18:00 | 只看该作者
好资料,51黑有你更精彩!!!
回复

使用道具 举报

板凳
ID:147518 发表于 2017-5-22 12:37 来自手机 | 只看该作者
好资料,51黑有你更疯狂!!!
回复

使用道具 举报

地板
ID:161933 发表于 2017-5-24 21:24 | 只看该作者
您查找的资源存在问题,因而无法显示。
回复

使用道具 举报

5#
ID:1 发表于 2017-6-3 02:53 | 只看该作者
csz9981 发表于 2017-5-24 21:24
您查找的资源存在问题,因而无法显示。

问题已经修复了
回复

使用道具 举报

6#
ID:94068 发表于 2017-6-8 13:19 | 只看该作者
包含全部程序代码吗?
回复

使用道具 举报

7#
ID:94068 发表于 2017-6-8 13:25 | 只看该作者
有硬件原理图设计吗
回复

使用道具 举报

8#
ID:249545 发表于 2017-11-26 15:48 | 只看该作者
呵呵!有源代码给出就不错了,哪里有什么原理图,它只是JS卖IC方案的广告贴
回复

使用道具 举报

9#
ID:147616 发表于 2017-11-26 16:29 | 只看该作者
学习一下
回复

使用道具 举报

10#
ID:310049 发表于 2018-4-17 15:05 | 只看该作者
楼主好人,资料拿走了,谢谢
回复

使用道具 举报

11#
ID:416676 发表于 2018-10-28 13:24 | 只看该作者
楼主好人!!!谢谢
回复

使用道具 举报

12#
ID:420665 发表于 2018-11-4 19:34 | 只看该作者
谢谢楼主 楼主好人
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表