搜索
bottom↓
楼主: QiYuan

GSM温度报警系统(51单片机)

  [复制链接]

出0入0汤圆

发表于 2011-4-1 05:04:02 | 显示全部楼层
不能发送信息......显示正常

出0入0汤圆

发表于 2011-4-1 16:54:22 | 显示全部楼层
请问LZ  我买的模块中有IGT引脚   在你的程序里并没有啊 ,是你的模块没有这个引脚吗

出0入0汤圆

发表于 2011-4-2 01:22:03 | 显示全部楼层
支持!

出0入0汤圆

发表于 2011-4-2 09:43:16 | 显示全部楼层
学习了

出0入0汤圆

发表于 2011-4-5 22:33:42 | 显示全部楼层
楼主不错啊   还算比较全面做的

出0入0汤圆

发表于 2011-4-6 15:19:38 | 显示全部楼层
楼主的东西很喜欢

出0入0汤圆

发表于 2011-4-8 20:16:17 | 显示全部楼层
回复【33楼】ct007
-----------------------------------------------------------------------

TC35就是通过串口控制的

出0入0汤圆

发表于 2011-4-8 21:13:55 | 显示全部楼层
不错啊。。。学习中~~

出0入0汤圆

发表于 2011-4-9 11:34:16 | 显示全部楼层
厉害!

出0入0汤圆

发表于 2011-4-12 23:01:33 | 显示全部楼层
太牛逼了。。。。顶。。。

出0入0汤圆

发表于 2011-5-2 00:29:27 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-2 17:07:02 | 显示全部楼层
不错,学习了

出0入0汤圆

发表于 2011-5-3 20:12:10 | 显示全部楼层
我就是买了这款GSM模块,代码拿走啦~~~

出0入0汤圆

发表于 2011-5-5 17:08:45 | 显示全部楼层
下面是DS1820的温度检测程序。。请问如何加入一些程序,让其温度超限后,通过GSM发送短信。。谢谢了。。。




#include <reg51.h>

#define XTAL 11059200    // CUP 晶振频率
#define baudrate 9600    // 通信波特率

#define uchar unsigned char
#define uint unsigned int

sbit DQ = P1^7;          // 定义DS18B20端口DQ    单片机数据采集口
sbit BEEP = P3^7;

unsigned char presence ;
unsigned char code  LEDData1[ ]   ={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0xff};  //个位显示代码,因为要显示小数点,所以代码与百位 十位的不同
unsigned char code  LEDData[ ]   = {0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f        ,0xff}                                                                                                    
unsigned char data  temp_data[2] = {0x00,0x00};                                       
unsigned char data  display[5] =   {0x00,0x00,0x00,0x00,0x00};
unsigned char code  ditab[16] =    {0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,
                                    0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09};     //小数位转化查表,这是重点
void beep();
sbit DIN = P0^7; // 小数点
bit  flash=0;    // 显示开关标记

/**********************************************************/
void Delay(unsigned int num)// 延时函数
{
   while( --num );
}

/**********************************************************/
uchar Init_DS18B20(void) // 初始化ds1820
{
  
     DQ = 1;      // DQ复位
     Delay(8);    // 稍做延时

     DQ = 0;      // 单片机将DQ拉低
     Delay(90);   // 精确延时 大于 480us

     DQ = 1;       // 拉高总线
     Delay(8);

     presence = DQ;    // 如果=0则初始化成功 =1则初始化失败
     Delay(100);
     DQ = 1;
     
     return(presence); // 返回信号,0=presence,1= no presence
}
/**********************************************************/
uchar ReadOneChar(void) // 读一个字节
{
unsigned char i = 0;
unsigned char dat = 0;

for (i = 8; i > 0; i--)
   {
     DQ = 0; // 给脉冲信号
     dat >>= 1;
     DQ = 1; // 给脉冲信号

     if(DQ)
      dat |= 0x80;
     Delay(4);
   }

    return (dat);
}

/**********************************************************/
void WriteOneChar(unsigned char dat)// 写一个字节
{
   unsigned char i = 0;

   for (i = 8; i > 0; i--)
   {
     DQ = 0;
     DQ = dat&0x01;
     Delay(5);

     DQ = 1;
     dat>>=1;
   }
}

/*********************************************************/
void Read_Temperature(void)// 读取温度
{
   Init_DS18B20();

   if(presence==1)        
    {
  beep();
  flash=1;
}                        // DS18B20不正常,蜂鸣器报警
    else
    {
      flash=0;
      WriteOneChar(0xCC);  // 跳过读序号列号的操作
      WriteOneChar(0x44);  // 启动温度转换

      Init_DS18B20();
      WriteOneChar(0xCC);  // 跳过读序号列号的操作
     WriteOneChar(0xBE);  // 读取温度寄存器

      temp_data[0] = ReadOneChar();   // 温度低8位
      temp_data[1] = ReadOneChar();   // 温度高8位
    }
}

/*********************************************************/
void Disp_Temperature()// 显示温度
{
   unsigned char  n=0;
    //  temp_data[0]=0x10;                   //  这里的2行代码可以用于测试,测试温度是17度
//  temp_data[1]=0x01;

display[4]=temp_data[0]&0x0f;
display[0]=ditab[display[4]];     // 查表得小数位的值    这里是显示小数位的重点哦~~~!!!

display[4]=((temp_data[0]&0xf0)>>4)|((temp_data[1]&0x0f)<<4);    //屏蔽小数位,到这里是整数位了啦~
display[3]=display[4]/100;      //百位计算
display[1]=display[4]%100;
display[2]=display[1]/10;        //十位计算
display[1]=display[1]%10;        //个位计算
   



   if(!display[3])          // 高位为0,不显示
   {
     display[3]=0x0a;

  if(!display[2])      // 次高位为0,不显示
      display[2]=0x0a;
   }

P0 = 0xc6;    // 显示 C
P1 = 0Xfe;    // 位选线为P2.0口,LED为共阳极显示,当位选线为低电平时选通
Delay(300);

P0 = 0x9c;    // 显示 °  
P1 =0Xfd;   // 选中P2.1口
Delay(300);

P0 =LEDData[display[0]] ;  // 显示小数位
P1 =0Xfb;      //p2.2
Delay(300);

P0 =LEDData1[display[1]];  // 显示个位
P1 = 0Xf7;
Delay(300);

P0 =LEDData[display[2]];  // 显示十位
P1 = 0Xef;      
Delay(300);

P0 =LEDData[display[3]];  // 显示百位
P1 = 0Xdf;
Delay(300);

P1 = 0Xff;                // 关闭显示
}

/*********************************************************/
void beep(void)
{
    unsigned char i;
    for (i=0;i<100;i++)
    {
       Delay(60);
       BEEP=!BEEP;                // BEEP取反
    }
    BEEP=1;                        // 关闭蜂鸣器
}

/******************************************************  上位机的通讯,你不需要的话就不必了****** ****** ****** /
void init(void)
{
EA  = 1;                           // "中断总允许"

    TMOD = 0x20;   // 定时器1工作于8位自动重载模式, 用于产生波特率

TH1=(unsigned char)(256 - (XTAL / (32L * 12L * baudrate)));
TL1=(unsigned char)(256 - (XTAL / (32L * 12L * baudrate)));   // 定时器0赋初值

SCON = 0x50;   // 设定串行口工作方式
PCON &= 0x00;   // 波特率不倍增

TR1 = 1;    // 启动定时器1
IE = 0x00;    // 禁止任何中断
}

/*********************************************上位机的通讯,你不需要的话就不必了************/
void send_char(void)
// 传送十六位的温度数据,低位在前
{
unsigned i=0;
   
    // temp_data[0]=0x10;      
   //  temp_data[1]=0x01;     
while (i < 2)
{
  SBUF = temp_data;
  while (!TI);        // 等特数据传送
  TI = 0;             // 清除数据传送标志
  i++;
}
}

/*********************************************************/
void main(void)
{
uchar receive;

   init();

   while(1)
   {

    ;
        // temp_data[0]=0x10;                      //测试温度17度
    // temp_data[1]=0x01;
// Read_Temperature();                  // 读取温度
   
    Read_Temperature();

    Disp_Temperature();              // 显示温度
   
   // flash=0;//模拟
  
/* if (flash==0)            
  {
   Disp_Temperature();              // 显示温度
  }
  else
  {
   P1 0x00 ;                      // DS18B20不正常,关闭显示
  }
      */
   
  if (RI)               // 是否有数据到来 ,向上位机发数据,你也可以不要这一段。。。
  {
   RI = 0;
   receive = SBUF;

   if (receive == 49)             // 是否开始采集温度
   {
    send_char();       // 传送采集的温度
   }
  }  
  }
}

/*********************************************************/

出0入0汤圆

发表于 2011-5-5 17:57:09 | 显示全部楼层
这个要mark下

出0入0汤圆

发表于 2011-5-5 18:31:47 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-5-5 18:36:03 | 显示全部楼层
谢了,正要用到呢

出0入0汤圆

发表于 2011-5-5 22:29:45 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-5-6 09:44:31 | 显示全部楼层
楼主啊,帮帮我吧。程序在217楼。。谢谢了。。

出0入0汤圆

发表于 2011-5-6 12:47:02 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-5-10 19:12:31 | 显示全部楼层
楼主是否有通过直接接在单片机上的按键控制程序,而不是红外的程序啊!希望能上传,多谢!

出0入0汤圆

发表于 2011-5-10 21:29:30 | 显示全部楼层
请问 有没有收短信的实例啊?

出0入0汤圆

发表于 2011-5-10 21:59:45 | 显示全部楼层
呵呵

出0入0汤圆

发表于 2011-5-11 09:24:05 | 显示全部楼层
MARK 一下

出0入0汤圆

发表于 2011-5-12 15:09:55 | 显示全部楼层
回复【4楼】QiYuan
-----------------------------------------------------------------------

问一下。用protue仿真时有好几种12864,用的哪一种

出0入0汤圆

发表于 2011-5-23 19:11:22 | 显示全部楼层
if(res>=200&&res<250)OK=1;               //获得前导位(4.5ms)

else if(res>=70&&res<100)               //如果是宽脉冲,则RODATA=1
{   aa++;   RODATA=1;    //1.5ms  }

else if(res>=10&&res<50)               //如果是窄脉冲,则RODATA=0      
{   aa++;   RODATA=0;    //500us  }

亲爱的房主,我想问您一下,4.5ms、1.5ms、0.5ms是怎么算出来的,我知道您是用逻辑分析仪查看出前导位是4.5ms、宽脉冲是1.5ms、窄脉冲0.5ms,但是我不知道为什么if(res>=200&&res<250)得到的时间是4.5ms,这个语句怎么算得出是4.5ms呢?希望房主在百忙之中抽出一点点时间为我解答。

出0入0汤圆

发表于 2011-6-1 21:13:30 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-6-1 21:43:59 | 显示全部楼层
记下来,以后学习

出0入0汤圆

发表于 2011-6-1 23:04:47 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-6-3 09:26:32 | 显示全部楼层
回复【229楼】ansignoig88
-----------------------------------------------------------------------

应该是自己调试出来的,,或者,自己反汇编,,计算,,,

出0入0汤圆

发表于 2011-6-3 13:26:45 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-6-3 14:54:36 | 显示全部楼层
mark

出0入4汤圆

发表于 2011-6-4 23:44:35 | 显示全部楼层
mark 一下   我这里有gsm  tc35  两套呢,开学参加比赛用的,结果他俩没上去,悲催啊。现在自己可以联系一下了

出0入0汤圆

发表于 2011-6-5 00:57:41 | 显示全部楼层
好贴

出0入0汤圆

发表于 2011-6-7 19:35:58 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-6-12 11:11:12 | 显示全部楼层
好东西

出0入0汤圆

发表于 2011-6-12 21:42:23 | 显示全部楼层
楼主给力!!!

出0入0汤圆

发表于 2011-6-13 09:06:40 | 显示全部楼层
GSM模块的应用确实很有难度,顶一下

出0入0汤圆

发表于 2011-6-13 12:03:11 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-6-24 21:49:29 | 显示全部楼层
不错,很好的东西,得去找找GSM模块了

出0入0汤圆

发表于 2011-6-27 11:22:16 | 显示全部楼层
mark 有时间山寨个

出0入0汤圆

发表于 2011-6-27 13:21:45 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-6-27 13:56:40 | 显示全部楼层
标记

出0入0汤圆

发表于 2011-6-27 22:30:01 | 显示全部楼层
厉害
头像被屏蔽

出0入0汤圆

发表于 2011-6-28 22:15:33 | 显示全部楼层
楼主能加个QQ吗 我暑假正想学这个 我的QQ 243621992

出0入0汤圆

发表于 2011-6-28 22:24:42 | 显示全部楼层
学习

出0入0汤圆

发表于 2011-7-1 15:45:23 | 显示全部楼层
有用!!!!Mark

出0入12汤圆

发表于 2011-7-1 15:51:01 | 显示全部楼层
标记标记,谢谢了

出0入0汤圆

发表于 2011-7-1 16:26:30 | 显示全部楼层
可以只用GSM模块+NTC实现,省掉51

出0入0汤圆

发表于 2011-7-1 16:48:09 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-7-1 16:54:09 | 显示全部楼层
mark~好东西,我买了个GSM模块不过不是这个型号的,可以用AT命令,应该可以用吧~

出0入0汤圆

发表于 2011-7-6 22:01:27 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-7-7 09:03:02 | 显示全部楼层
好,看看,学习学习

出0入0汤圆

发表于 2011-7-7 10:07:48 | 显示全部楼层
mark===

出0入0汤圆

发表于 2011-7-7 10:31:06 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-7-7 10:32:33 | 显示全部楼层
好啊  学习  学习

出0入0汤圆

发表于 2011-7-7 11:33:17 | 显示全部楼层
楼主  NB  总共发了9个帖子  有5个穿裤子   其他全是热门!  

不顶不行啊

出0入0汤圆

发表于 2011-7-7 13:38:30 | 显示全部楼层
我前些天帮一个师姐做了一个有温湿度和光照检测的毕设 和这个差不多 控制器是STM8S的 我整理一下发上来

出0入0汤圆

发表于 2011-7-7 13:48:38 | 显示全部楼层
mark!

出0入0汤圆

发表于 2011-7-7 13:57:14 | 显示全部楼层
这个真心好玩= -

出0入0汤圆

发表于 2011-7-7 14:02:49 | 显示全部楼层
mark!

出0入0汤圆

发表于 2011-7-9 22:58:14 | 显示全部楼层
不错.

出0入0汤圆

 楼主| 发表于 2011-7-31 22:49:42 | 显示全部楼层
温馨提示:
下了源码后,请修改一下源码中的手机号吗,修改为自己的。不然成功后就会把短信发到我的手机上了。
我有一天在我手机上收到一条“I LOVE YOU !” 想必是某人拿了源码不加修改就用了。。。

出0入0汤圆

发表于 2011-8-1 10:08:14 | 显示全部楼层
学习~~~

出0入0汤圆

发表于 2011-8-2 21:16:36 | 显示全部楼层
我是来马克的.

出0入0汤圆

发表于 2011-8-3 22:02:11 | 显示全部楼层
学习一下  接下来试着搞搞这个

出0入0汤圆

发表于 2011-8-4 16:03:09 | 显示全部楼层
牛人啊,想想我的四年本科,惭愧。

出0入0汤圆

发表于 2011-8-4 23:24:38 | 显示全部楼层
学习~~~

出0入0汤圆

发表于 2011-8-5 14:06:34 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-8-5 22:38:59 | 显示全部楼层
很好,也学习一下

出0入0汤圆

发表于 2011-8-16 11:09:42 | 显示全部楼层
这么好的论坛,我以前怎么没看到啊!!!很感谢楼主的上传!

出0入0汤圆

发表于 2011-8-23 18:33:02 | 显示全部楼层
恩,不错,刚好手头有个GSM模块

出0入0汤圆

发表于 2011-8-29 15:23:47 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-8-29 18:35:26 | 显示全部楼层
mark!!!!

出0入0汤圆

发表于 2011-8-29 21:07:35 | 显示全部楼层
回复【楼主位】QiYuan
-----------------------------------------------------------------------

看起来很先进哦

出0入0汤圆

发表于 2011-8-29 23:00:21 | 显示全部楼层
自己做一个手机,挑战!

出0入54汤圆

发表于 2011-8-30 12:20:12 | 显示全部楼层
回复【19楼】wenqing89
-----------------------------------------------------------------------
当然要钱咯!以前我们用的是动感地带!办的是50快钱的套餐!呵呵

出0入0汤圆

发表于 2011-9-14 19:31:51 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-9-17 10:27:11 | 显示全部楼层
我正好在做这个  顶起!

出0入0汤圆

发表于 2011-9-17 13:53:23 | 显示全部楼层
学习学习

出0入0汤圆

发表于 2011-9-18 01:17:35 | 显示全部楼层
mark,想学的要学的,做!

出0入0汤圆

发表于 2011-9-19 21:02:42 | 显示全部楼层
在楼主这个帖子的帮助下,去年的毕业设计顺利搞定,还是优秀哦!
今天转来看看,再次表示感谢!
楼主威武!!!!

出0入0汤圆

发表于 2011-9-19 21:52:13 | 显示全部楼层
回复【293楼】zfdpj  
在楼主这个帖子的帮助下,去年的毕业设计顺利搞定,还是优秀哦!
今天转来看看,再次表示感谢!
楼主威武!!!!
-----------------------------------------------------------------------

293楼你好,我有个同学也想做这个。你的和他是一模一样的吗?谢了

出0入0汤圆

发表于 2011-9-19 22:14:05 | 显示全部楼层
我今天才看到,楼主厉害。

出0入0汤圆

发表于 2011-9-20 19:28:41 | 显示全部楼层
回复【294楼】ouluolin
-----------------------------------------------------------------------

不是一模一样的!不过都是GSM控制,借鉴了楼主的思路、
我做的是室内安防系统,基本原理是一样的、、、
三个传感器:煤气、温度、红外,
检测到异常就会报警发送短信,
当然,三种不同的信号会分别发送三种不同的信息、
开机会自动拨号检测,
还加了一些附带的功能,比如2301、、、
由于51单片机内存有限,就把12864部分去掉了!
、、、不过跟楼主的相比、、、惭愧啊!哈哈、、

出0入0汤圆

发表于 2011-9-20 20:57:28 | 显示全部楼层
回复【4楼】QiYuan
-----------------------------------------------------------------------

佩服~~~~~~
我也有意向把兴趣投到这方面来,多做这种小制作不错

出0入0汤圆

发表于 2011-9-20 22:35:53 | 显示全部楼层
TC35I
这个玩意淘宝上要100+啊,有没有便宜的方案啊

出0入0汤圆

发表于 2011-9-22 12:00:21 | 显示全部楼层
回复【297楼】zfdpj  
回复【294楼】ouluolin
-----------------------------------------------------------------------
不是一模一样的!不过都是gsm控制,借鉴了楼主的思路、
我做的是室内安防系统,基本原理是一样的、、、
三个传感器:煤气、温度、红外,
检测到异常就会报警发送短信,
当然,三种不同的信号会分别发送三种不同的信息、
开机会自动拨号检测,
还加了一些附带的功能,比如2301、、、
由于51单片机内存有限,就把12864部分去掉了!
、、、不过跟楼主的相比、、、惭愧啊!哈哈、、
-----------------------------------------------------------------------
蒽,明白,那你这个东西也很不错啊。你那个煤气是用什么检测的?红外是什么?2301是温湿度检测的么?
求详细资料!谢了!

出0入0汤圆

发表于 2011-9-22 15:15:26 | 显示全部楼层
很好。学习一下。

出0入0汤圆

发表于 2011-9-23 00:56:01 | 显示全部楼层
回复【301楼】ouluolin
-----------------------------------------------------------------------
煤气是用MQ-5检测的,它同时可以检测烟雾,阈值可以自己设置。
红外用的就是一个热释电,很简单的。
“2301”是我打错了,应该是DS1302,时钟芯片,手误!抱歉!抱歉!
至于详细资料,现在已经工作了,还真是没有在手上,我帮你找找看能不能找到,
不过这个东西应该不难的,你应该能轻松解决的!

出0入0汤圆

发表于 2011-9-24 00:08:13 | 显示全部楼层
不错  不错 赞赞

出0入0汤圆

发表于 2011-9-24 00:13:45 | 显示全部楼层
威武~

出0入0汤圆

发表于 2011-9-24 17:27:43 | 显示全部楼层
谢谢楼主,下载了,以后研究一下。

出0入0汤圆

发表于 2011-9-25 03:16:21 | 显示全部楼层
回复【楼主位】QiYuan
-----------------------------------------------------------------------

lz真的好强大,那个单片机左边的主板芯片好像是nokia手机的,感觉可以试试,好好向lz学习。

出0入0汤圆

发表于 2011-9-25 10:35:43 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-9-25 10:42:42 | 显示全部楼层
如果只是简单的发短信大可不用TC35,这玩意目前还是挺贵的.可以用老一些的比如SIM100一类的.那类模块在二手市场上没人要,所以便宜.

出0入0汤圆

发表于 2011-9-25 11:11:17 | 显示全部楼层
码。

出0入0汤圆

发表于 2011-9-25 13:18:29 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-9-25 16:41:55 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-9-28 07:20:43 | 显示全部楼层
收藏了,学习
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-28 21:19

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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