文档库 最新最全的文档下载
当前位置:文档库 › 基于GSM短消息的远程温度监测系统.doc

基于GSM短消息的远程温度监测系统.doc

基于GSM短消息的远程温度监控报警系统

完成人:指导老师:

摘要:远程温度监控报警系统是可以随时随地接收远端现场情况并发出报警信息的系统。管理职守人员可以通过收到的信息及时了解前端现场的情况并进行处理从而节省了大量的人力、物力和财力,提高了安全防范和监管的力度和效率。因此研究及应用基于GSM短消息的远程温度监控报警系统具有非常重要的现实意义。GSM短消息的远程温度监控报警系统由无线收发模块、核心控制模块、显示模块、温度采样模块、键盘模块等模块构成。无线收发模块采用西门子公司生产TC35i模块,核心控制模块采用A T89C52单片机,以数字温度传感器DSl8B20作为的温度采集芯片,显示模块选用LCD1602液晶显示器。该系统能够实现对远端现场温度的实时监测和遇到突发情况的报警,任务,此外通过键盘模块和软件的设计可以实现报警温度阀值以及报警号码的设置。经过对硬件和程序的不断改进和调试,在最后的测试过程中系统工作稳定可靠,达到了设计要求。

关键词:远程温度报警系统;GSM模块;AT89C52 DS18B20

1 设计要求

本系统主要要求实现对远端现场的监控和报警任务。具体结构和功能要求如下:

(1)利用温度传感器采集环境温度并进行显示。

(2)当温度达到设定的温度时,产生报警信号并通过GSM模块来实现短信报警。

(3)报警温度和报警电话号码均可设置。

2 总体设计

2.1系统组成及工作原理

本系统使用DS18B20温度传感器芯片采集环境温度,然后把采集到的原始温度数据发给单片机,经单片机通过一定的算法计算处理后送往LCD1602液晶进行显示。期间可以根据实际需要用按键对报警温度在一定范围内进行设置,报警号码也可以灵活设置。在此过程中TC35模块一直处于待机状态,一但环境温度发生剧烈变化或者出现险情使环境温度达到报警阀值时,单片机会立刻做出反应,运用AT指令对GSM模块进行操作,根据实际情况进行短信报警工作。

图1 系统组成框图

3 硬件设计

以单片机为核心连接键盘、液晶、蜂鸣器、LED,GSM模块和DS18B20等6个部分。

3.1 GSM模块

TC35i模块是一个支持中文短信息的工业级GSM模块,工作在EGSM900和GSM1800双频段,电源范围为直流3.3~4.8V ,电流消耗——休眠状态为3.5mA,空闲状态为25mA,发射状态为300mA(平均),2.5A峰值;可传输语音和数据信号, 功耗在EGSM900(4类)和GSM1800(1类)分别为2W和1W ,通过接口连接器和天线连接器分别连接SIM卡读卡器和天线。SIM电压为3V/1.8V,TC35i的数据接口(CMOS电平)通过AT命令可双向传输指令和数据,可选波特率为300b/s~115kb/s , 自动波特率为1.2kb/s~115kb/s。它支持Text和PDU格式的SMS(Short Message Service,短消息),可通过AT 命令或关断信号实现重启和故障恢复。图2为本系统所使用的TC35模块实物。由于GSM模块在待休眠状态、空闲状态和发射状态需要的电流有很大的差别,因此为了减少电流突变对整个系统的影响,我们选择用四节5号电池为GSM独立供电。

图2 TC35模块实物

3.3单片机控制模块

本系统采用AT89C52单片机作为核心控制芯片。AT89C52是一个低电压,高性能CMOS 8位单片机。

该单片机具有以下几个特点:

1) 兼容MCS51指令系统

2) 8k可反复擦写(大于1000次)Flash ROM;

3) 32个双向I/O口;

4) 256x8bit内部RAM;

5) 3个16位可编程定时/计数器中断;

6) 时钟频率0-24MHz;

7) 2个串行中断,可编程UART串行通道;

8) 2个外部中断源,共8个中断源;

9) 低功耗空闲和掉电模式,软件设置睡眠和唤醒功能;

AT89C52管脚排列以及在设计中的管脚连接如图3所示。

图3 AT89C52连接图

图3中除了晶振电路、复位电路以及单片机组成最小系统外,P0口接了一个排阻,P1口用做连接LCD1602的数据端口,P2口以及P0^6和P0^7用作手动设号的按键。RXD,TXD则与GSM模块进行通信。外部中断0和外部中断1分别作为手动设置高低温报警值和手动设置接收短信号码。

3.4 DS18B20温度传感器

本系统采用DS18B20可编程分辨率的单总线数字温度传感器作为温度采集芯片。DS18B20是Dallas公司继DS1820后推出的一种改进型智能数字温度传感器,只需一根线就能直接读出被测温度值,并可根据实际需求来编程实现9~12位数字值的读数方式。DS18B20封装形式及引脚功能如图4

图4 DS18B20引脚图

如图4所示,DS18B20的外形如一只三极管,引脚名称及作用如下:GND:接地端。DQ:数据输入/输出脚,与TTL电平兼容。VDD:可接电源,也可接地。

因为每只DS18B20都可以设置成两种供电方式,即数据总线供电方式和外部供电方式。采用数据总线供电方式时VDD接地,可以节省一根传输线,但完成数据测量的时间较长;采用外部供电方式则VDD接+5V,多用一根导线,但测量速度较快。此处用USB供电。

1. 下面对DS18B20进行简单地介绍:

(1)64位ROM。64位ROM是由厂家使用激光刻录的一个64位二进制ROM代码,是该芯片的标识号,如表2.1所示:

(2)温度传感器。温度传感器是DS18B20的核心部分,该功能部件可完成对温度的测量通过软件编程可将-55~125℃范围内的温度值按9位、10位、11位、12位的分辨率进行量化,以上的分辨率都包括一个符号位,因此对应的温度量化值分别为0.5℃、0.25℃、0.125℃、0.0625℃,即最高分辨率为0.0625℃。

(3)高速缓存器。DS18B20内部的高速缓存器包括一个高速暂存器RAM 和一个非易失性可电擦除的EEPROM。非易失性可点擦除EEPROM用来存放高温触发器TH、低温触发器TL和配置寄存器中的信息。

(4)配置寄存器。配置寄存器的内容用于确定温度值的数字转换率。DS18B20工作是按此寄存器的分辨率将温度转换为相应精度的数值,它是高速缓存器的第5个字节如下所示:

TM R0 R1 1 1 1 1 1

TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式,在DS18B20出厂时该位被设置为0,用户不要去改动;R1和R0用来设置分辨率;其余5位均固定为1。DS18B20分辨率的设置如表1所示.

表1 DS18B20分辨率

R1 R0 分辨率最大转换时间/ms 0 0 9位93.75

0 1 10位187.5

1 0 11位375

1 1 12位750

表2给出了温度值和输出数据的关系。数据通过单线接口以串行方式传输。DS18B20测温范围-55℃~+125℃,以0.5℃递增。

表2 温度数据关系

温度℃数据输出(二进制)数据输出(十六进制)

+125 00000000 11111010 00FA

+25 00000000 00110010 0032

+0.5 00000000 00000001 0001

0 00000000 00000000 0000

-0.5 11111111 11111111 FFFF

-25 11111111 11001110 FFCE

-55 11111111 10010010 FF92

2. DS18B20温度传感器电路:传感器只有三个管脚分别接地、5V电源和单片机P3^4。电路图如图9

图9 温度传感器电路

3.5 LCD1602液晶显示及蜂鸣器、LED报警模块

本系统采用1602液晶做显示用,1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。

1.LCD1602特性

1) +5V电压,对比度可调(和单片机一样用USB供电);

2) 内含复位电路;

3) 提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能;

4) 有80字节显示数据存储器DDRAM。

2.液晶显示电路:液晶的8个数据端口和52单片机的P1口相连用于数据的传输。液晶显示器的控制端口RS,WR,和EN分别与单片机的P3^5,P3^6, P3^7相连,便于单片机对液晶的初始化和读写操作。显示电路如图5所示

图5 LCD1602液晶显示电路

3. 蜂鸣器、LED报警电路:电路由一个蜂鸣器,一个LED灯,一个三极管和两个电阻组成。三极管的基极和LED阳极分别与P0^4和P0^2连接。当环境温度超过报警阈值时,通过单片机给P0^4和P0^2不断的变化的高低电压,此时蜂鸣器鸣响,LED闪烁。其电路如图6

图 6 蜂鸣器鸣响LED闪烁电路

3.5 键盘模块

51单片本模块包括两种按键一种带锁存功能,另一种不带锁存功能。带锁的按键用于高低温报警温度的设置,无锁的键盘用于外部中断和报警号码的设置。

1.中断电路:有两个弹性按键一段接地,另一端分别与单片机的INT0和INT1相连,当按下时触发中断进入相应的中断程序。电路如图7所示。

图 7 中断电路

2.报警温度设置键盘电路:此模块中有两个按键和两个红色的LED灯,LED 用来指示按键闭合和断开的状态,LED亮时说明按键闭合,不亮说明断开。两个开关共有四种状态:

1)当Sjiang和HL均断开状态时,通过中断可以提高高温报警温度;

2)当Sjiang和HL均处于闭合状态时,通过中断可以降低低温报警温度;

3)当Sjiang断开且HL处于闭合状态时,通过中断可以提高低温报警温度;

4)当Sjiang闭合且HL处于断开状态时,通过中断可以降低高温报警温度;

报警温度设置电路图如图8所示。

图 8 报警温度设置电路

2. 接收报警短信号码设置键盘电路:由10个弹性按键构成,分别接至单片机的P2和P0^6, P0^6端口,每个按键代表一个数字(0~9)。在设号中断过程中每按下一个按键就会通过单片机录入一位手机号,当11位全部输入后,号码设置成功,电路如图9所示。

图 9 手机号码设置电路

4软件设计

4.1 软件总体设计

本程序主要是实时监控DS1820数字温度传感器的采样温度,当实时温度超过事先设置好的阈值温度时,51单片机给GSM模块发送AT命令,控制其向默认手机发送温度报警短信。当温度回落安全温度时,单片机控制GSM模块发送一条安全短信。另外可以通过外部中断分别设置阈值温度以及报警短信接收的手机号码也可通过短信远程设置报警温度和手机号码。

因此需要设计采样函数,显示函数,发送函数,报警函数,收发短信函数,删除短信函数,号码和温度的设置函数。

4.2 主程序设计

程序全局变量是程序read_temp()的返回值,现定义变量TA,程序不断扫描TA值与温度阈值HH和LL的大小关系。通过ds1820disp(uint xianshi),调用LCD1602的wr_dat()子程序实时显示温度并同时判决TA是否超出阈值。主程序流程图如图10所示。

图10 主程序流程图

5 调试及结果

调试方案及结果:

1.首先在系统默认的报警温度和报警号码的条件下进行测试。步骤如下:

1)首先打开GSM模块的电源开关,当网络指示灯大约每三秒中亮一次时说明网络注册成功。然后接通单片机和显示部分的电源,使LCD1602进入显示工作

状态,此刻显示报警温度和实时温度值。

2)此时给温度传感器一个较高的温度,测试能否发送远程报警短信。

测试结果:以上两步测试均正确,达到设计要求。

2.用键盘改变报警温度值,并改变报警号码其余操作同上。

测试结果:以上两步测试均正确,达到设计要求。

3.测试远程短信对报警温度和号码进行设置. 在系统初始化完成后,LCD1602液晶显示无误后,用手机向GSM模块中的SIM卡发送如下信息:Set 133******** 313 125意思是接受短信手机是133********高温报警温度设置为31.3C,低温设置为12.5C。如图11所示。

图11 远程设置短信发送图

此时液晶会显示设置后的温度值和报警号码(只显示一下没拍到)。如图12所示:

图 12 设置后的显示状态

给一个DS18B20一个较高温度,测试能否正确报警。结果如图13所示:

图 13 成功接收报警短信图

上图的手机是通过远程短信设置的号码所属的手机,从上图可以看出第一条是T high 31.9C说明现场温度过高,系统做出反应向“控制室”发送了高温报警短信。一段时间后温度恢复正常,此时系统继续做出反应恢复了一条T return safe,说明温度恢复到安全水平

以上三项内容的测试均圆满完成,达到预期目标。

附录1 实物照片

附录2 电路图

相关文档