物联网的家庭传感器网络组网设计毕业论文.doc

上传人:yyf 文档编号:3963489 上传时间:2019-10-11 格式:DOC 页数:32 大小:296.10KB
返回 下载 相关 举报
物联网的家庭传感器网络组网设计毕业论文.doc_第1页
第1页 / 共32页
物联网的家庭传感器网络组网设计毕业论文.doc_第2页
第2页 / 共32页
物联网的家庭传感器网络组网设计毕业论文.doc_第3页
第3页 / 共32页
物联网的家庭传感器网络组网设计毕业论文.doc_第4页
第4页 / 共32页
物联网的家庭传感器网络组网设计毕业论文.doc_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《物联网的家庭传感器网络组网设计毕业论文.doc》由会员分享,可在线阅读,更多相关《物联网的家庭传感器网络组网设计毕业论文.doc(32页珍藏版)》请在三一文库上搜索。

1、教学单位 学生学号 200995014013 编 号 本科毕业论文(设计)题目 物联网的家庭传感器网络组网设计 学生姓名 专业名称 电气工程及其自动化 指导教师 年 月 日物联网的家庭传感器网络组网设计摘要本系统在正常工作时,用户通过手机发送指令,指令被GSM模块接受并将指令传送给单片机,单片机处理信号发出控制指令通过继电器等控制电路的通断、电动机的正转反转等达到控制家用电器设备的效果。本系统是基于全球移动通信系统进行设计的。系统采用GSM模块进行短信收发,以 STC89C52RC单片机系统为控制核心,进行信息的反馈和远程控制,从而实现远程报警、远程控制等功能。关键词:GSM模块 单片机The

2、 networking design of home sensor based on the Internet of thingsAbstracts When this system works in good condition, the users could send messages through cell phone or telephone .the GSM module accept the instructions and send it to the microcontroller. The SCM processes signals, send the orders ou

3、t and control the on-off switch or the forward/reversal of the electromotor to control household appliances.This system is designed on the basis of the global mobile communication system. The system, which with the core of STC89C52RC SMS,sends and receives messages by using GSM module. It can realiz

4、e the functions of remote alarm, remote control through giving information feedback and controlling appliances remotely.Key words: GSM module singlechip目 录1.前言V2.系统的总体设计方案与主要功能VI2.1系统的总体设计方案VI2.2系统主要功能VII3.1传感器单元硬件设计方案VIII3.2控制系统单元硬件设计方案IX3.3 GSM 模块方案IX3.4电源模块方案X4硬件电路设计XI4.1 GSM与单片机硬件连接XI4.2执行机构电路XI

5、5系统软件设计XIII5.1系统流程图XIII5.2 AT 指令XIV6.各模块核心程序XV6.1GSM模块收发程序XV6.2烟雾传感器模块核心代码:XXII6.3 DS18B20核心代码:XXIII6.4 ADC0809功能核心代码XXVII结论XXX参考文献XXXI谢 辞XXXII1.前言 随着经济的快速增长,快节奏的生活状态得人们越来越注重生活的质量和品位,人们对舒适,方便,高效的生活环境的渴望愈来愈强烈。如何建立一个高效率、低成本的智能家居系统已经成为当今世界的一个热点问题。目前国内外各种类型的智能家居产品越来越多,但其中大部分是基于电话网的安防控制系统,并且只是应用于高档住宅。一般的

6、普通民众都无法接受其高昂的价格。并且目前国内固定电话的用户正在急剧减少,手机用户的数量在飞速增长。所以一种价格低廉且功能齐全的基于GSM模块的的家居智能控制系统就将应运而生。 本系统介绍的家居智能控制系统采用GSM模块进行短信收发,以 STC89C2RC芯片为控制核心,实现远程控制、信号采集、远程报警等功能。2.系统的总体设计方案与主要功能2.1系统的总体设计方案 图1 系统总体结构框图系统的总体结构框图如图1所示。当用户家里有盗贼出入或者门窗没有关好,发生火灾或者煤气泄漏,温度低于或者高于预设温度时相应的传感器发出信号,此时数据采集模块将传感器发出的信号转换成数字量,然后送给单片机控制系统进

7、行计算和分析后,通过RS232串口将数据传送给GSM模块将家里即时信息发送到用户手机上,同时单片机控制系统将控制启动相应的执行机构,如打开启动报警器,打开照明灯,打开电磁阀,打开空调等等。当GSM模块接受到用户短信指令后,将其转换成数字量,通过串口送给单片机系统分析指令的意思,然后开启相应的家电设备,比如提前打开灯,电视,热水器,或者空调,实现远程控制功能。智能家居系统各单元的组成与功能简介:1. 传感器单元:传感器单元主要包括有红外传感器、烟雾传感器、温度传感器等,主要是对家中各指标进行检测,例如烟雾浓度,温度高低等,并将这些离散量装换成数字量送给控制系统单元。2. 控制系统单元:控制系统单

8、元主要有STC89C52芯片和外部必要的复位、电源电路等构成。主要是对传感器单元和GSM模块传送过来的数据进行分析和计算,从而发出正确的指令。3. GSM模块单元:GSM全称为全球移动通讯系统。是用户与系统通讯连接的最重要的单元。4. 电源模块:采用UPS供电,保证系统能在断电的情况下能正常运行。2.2系统主要功能1. 远程控制功能:该系统能接收并识别用户发送来的控制命令并由单片机处理,来实现不同家电工作及停止功能。2. 远程报警功能:在用户住宅出现异常情况时,比如火灾、盗贼入侵、门窗未关好等,系统会自动发送报警短信给预先设定手机号码的用户,同时启动现在相关的执行机构,如启动报警器等。3. 永

9、不断电功能:系统采用UPS电源供电,在断电时可继续工作,可以在断电情况下监控家里安全信息,克服了停电时不能报警等缺点。3.硬件技术方案 硬件的技术方案包括传感器单元硬件设计方案,控制系统单元硬件设计方案,GSM模块单元硬件选择方案,电源模块硬件选择方案。3.1传感器单元硬件设计方案本系统传感器单元包括红外传感器、烟雾传感器、温度传感器和A/D转换模块。1. 红外传感器采用主动红外探测器,主动红外探测器由红外发射机,红外接收机和报警控制器组成。红外发送端和接收端之间有一道红外光束,当人体穿越此光束时,必将部分或全部遮挡红外光束,接收端输出电信号的强度会发生变化从而启动报警控制器发出报警信号,同时

10、发报警短信信息给用户。2. 烟雾传感器采用MQ-2,它是一种电阻控制型的气敏器件,其阻值随被测气体的浓度(成分)而变化。气敏器件又是一种“气电”传感器件,它将被测气体的浓度(成分)信号转换成相应的电信号。其响应时间5s,恢复时间30s。探测液化气的浓度在300ppm-5000ppm。足以满足本系统设计要求。3. 温度传感器采用DS18B20,它是一种可编程的温度传感器,其内置EPROM,限温报警功能,最高分辨率12位,检测温度为-55 +125,在-10+85时精度为0.5。其外观图2所示。1号引脚接地,2号数据输入/输出引脚,3号引脚当工作在寄生电源时,改引脚接地。由于DS18B20可以由数

11、据线本身提供电源,因此与单片机连接是需要一根数据线和一根地址线。(郑峰.51单片机应用系统典型模块开发大全P369)图2 3引脚T0-92DS18B204. A/D转换模块,主要采用ADC0809芯片,其主要是将各传感器采集回来的数据转 换成数字量送给STC89C52RC单片机进行计算和分析。0809具有8路模拟输入端口,地址线(23-25脚)可决定对哪一路模拟输入作A/D转换,22脚为地址锁存控制,当输入为高电平时,对地址信号进行锁存。6脚为AD转换启动控制,当输入电平由低到高再到低后A,就开始A/D转换。7脚为A/D转换结束标志,当A/D转换结束时,7脚输出高电平。9脚为A/D转换数据输出

12、允许控制,当OE脚为高电平时,A/D转换数据从端口输出。3.2控制系统单元硬件设计方案控制系统单元主要由STC89C52RC芯片及其复位和电源电路组成。8位STC89C52RC单片机是STC公式开发的一款增强型的51单片机芯片。具有低功耗,运行稳定,存储空间大等特点。用户应用程序空间为8KB。片上集成512字节RAM,具有ISP/IAP功能,无需专用编程其,可直接通过串口下载用户程序,数秒即可完成。节约购买专用编程器的资金。具有3个16位定时/计数器。最主要的是该芯片与51芯片兼容,给使用者带来极大的便利。3.3 GSM 模块方案 本系统设计使用的GSM 模块是Siemens公司的TC35I。

13、TC35I是西门子公式最新推出的无线模块。,该模块集射频电路和基带于一体,向用户提供标准的AT命令接口,为数据、语音、短消息和传真提供快速、可靠、安全的传输,方便用户的应用开发与设计,TC35I的组成如图3所示。TC35I模块主要由GSM基带处理器、GSM射频模块、供电模块、闪存、ZIF连接器、天线接口6部分组成。作为TC35I的核心,基带处理器主要处理GSM终端的语音、数据信号,并涵盖了蜂窝射频设备的所有的模拟和数字功能。在不需要额外硬件电路的前提下,可支持FR、HR和EFR语音信道编码。(郑峰.51单片机应用系统典型模块开发大全P559)图3 TC35I的组成框图3.4电源模块方案本系统采

14、用UPS进行供电,以保证在掉电情况下防盗报警功能依然能正常运行。不间断电源(UPS)是当交流输入电源(俗称市电)发生异常或断电时,还能继续向负载供电,并能保证供电质量,是负载供电不受影响的装置。其基本结构原理图如图4所示图4 UPS基本结构框图当市电正常时通过整流器将交流电整流成直流点给蓄电池充电,同时通过逆变器又变换成交流电供给负载。当市电断电后,则蓄电池放出直流电通过逆变器逆变成交流电后,继续给负载供电。这样在有市电时供给负载的同时给蓄电池充电,当市电断电时,蓄电池则充当电源通过逆变给负载继续供电,实现不间断供电。4硬件电路设计本系统的硬件电路主要包括GSM模块与STC89C52RC芯片的

15、连接电路和执行机构电路。4.1 GSM与单片机硬件连接 GSM与STC89C52RC的硬件连接图如图5所示。图5 GSM与单片连接原理图单片机与GSM 模块的硬件连接TC35I的数据接口采用串行异步收发, 数据接口配置为8 位数据位、1 位停止位、无校验位,可以在300-115103 bps 的波特率下运行。由于数据通信电路中TC35I数据接口工作在CMOS电平,而STC89C52RC芯片工作在TTL点电平,所以在STC89C52RC芯片和TC35I 之间加入TI公式的电平转换芯片MAX232。实现串口通讯的功能。4.2执行机构电路执行机构部分电路如图6所示。图6 执行机构部分电路图本系统共有

16、八路通过继电器通断实现对电器控制的执行机构电路。单片机管脚通过10K限流电阻与三极管基极相连,当相应的管脚呈高电平时,那么相对应的三极管就会导通,信号继电器线圈也就会通电吸合,从而实现家用电器的开关。当单片机管脚输出为低电平时,三极管失去导通电压关断,由于继电器线圈并联了一个续流二极管,此时继电器线圈产生的巨大的感应电流会通过续流二极管与线圈形成通路,最后电能将全部在线圈上消耗,从而感应电流就不会冲向三极管,保证了电路的稳定性和可靠性。5系统软件设计5.1系统流程图图7 系统流程图本系统的软件部分由C语言编写,C语言有较好的可阅读行和移植性,大大的方便了程序的编写。系统流程图如图7所示。首先对

17、系统进行初始化,初始化包括串行通讯口的初始化,中断初始化,TC35I的初始化。然后单片机对是否接受到短信指令和与传感器连接的I/O进行循环检测。当GSM接收到短信指令时,通过单片机的分析计算启动相应的电器,同时给用户发送操作成功的短消息,然后继续对传感器进行检测,如果没有传感器没有信号,则又返回继续对GSM是否接收到短信指令进行检测,就这样循环进行检测。当家里发生险情或温度过高时,软件进入中断服务程序,对三个传感器分别进行判断,然后进行相应的处理同时完成对报警信息的发送。5.2 AT 指令AT指令是以AT作首,字符结束的字符串,AT指令的响应数据包在 中。每个指令执行成功与否都有相应的返回。对

18、TC35I 的操作均采用AT 指令,它包含了GSM 语音和短信息的控制。其指令格式为“AT+XXXX”,根据AT 指令的GSM07.05 标准,发送和接收中文或中/英文混合的短信息必须采用PDU 模式,Text 模式只支持传送英文及数字信息。根据本系统的要求采用Text模式。系统所用基本命令如下:a) 设置短消息发送格式(0-PDU,1-文本)AT+CMGF=1;b) 发送短消息(短消息内容为“OK”)AT+CMGS=15173236799(用户电话)OKz(z 表示OK+z);c) 本地中心号码设置AT+CSCA=+8613800732500(湘潭);d) 读取短信息内容AT+CMGR=1;

19、e) GSM网络状态查询“AT+CREG?”;f) 删除短息防止溢出AT+CMGD=1;6.各模块核心程序6.1GSM模块收发程序单片机实现短信自动发送进行短信发送的前提是短信内容的正确编码。经过以上对短信发送过程的分析,可以通过单片机对其进行实现。下面是实现程序例程:/*-函数名:PDU_SMS()功能 :发送短信参数说明:SMS_Center为短信中心号码 11位SMS_Telenum为短信接收方的号码 11位SMS_Context为短信的内容-*/int PDU_SMS(char *SMS_Center, char *SMS_Telenum,char *SMS_Context,char

20、is_GB)int i,j;unsigned char len,time;char lens3;time=0;for(i=0;i300;i+) PDU_Codei=PDU_ti;/*-设置短信中心号码-*/for (i = 0, j = 0; i strlen(SMS_Center) / 2; i+)PDU_Code6+(j+) = SMS_Center2 *i + 1;PDU_Code6+(j+) = SMS_Center2 *i;PDU_Code6+j+ = F; /在最后补上的FPDU_Code6+j = SMS_Centerstrlen(SMS_Center) - 1;/*-*/*-设

21、置接收号码-*/for (i = 0, j = 0; i 4) 9 ? (len 4) + 55: (len 4) + 48;PDU_Code45 = (len &0x0f) 9 ? (len &0x0f) + 55: (len &0x0f) + 48;/*-*/*-编码短信内容-*/if(is_GB=0)/如果不是GB码,短信内容为ascii码字符串for (i = 0,j=0; istrlen(SMS_Context);i+)szzh16(SMS_Contextj+,lens);PDU_Code46+i*4 = 0;PDU_Code46+i*4+1 = 0;PDU_Code46+i*4+2

22、 = lens0;PDU_Code46+i*4+3 = lens1;PDU_Code46+i*4 = 0x1a;PDU_Code46+i*4+1 = 0xff;else/短信内容为GB码,如果要使手机能够显示,改到UNICODE编码for (i = 0,j=0; istrlen(SMS_Context);i+)szzh16(int)SMS_Contextj+,lens);PDU_Code46+i*2 = lens0;PDU_Code46+i*2+1 = lens1;PDU_Code46+i*2 = 0x1a;PDU_Code46+i*2+1 = 0xff;/*-*/if(PDU_HandSha

23、ke()doPDU_EnablePDU();if(is_GB=0)PDU_SetLength(Strlen(SMS_Context)*2);elsePDU_SetLength(Strlen(SMS_Context);PDU_Send(PDU_Code);for(i=0;i25;i+)delay(20000);sbufcounter=0;counter=0;time+;/判断是否发送成功,如果不成功继续发送,最多4次,如仍不成功,返回0while(strpos(sbuf+strlen(sbuf)-20,G)=-1&time4);if(strpos(sbuf+strlen(sbuf)-20,G)=

24、-1)return 0;elsereturn 1; /成功的话返回0elsesbufcounter=0;counter=0;return 0;以上程序成功实现短信的发送。单片机对短信的读取与解码单片机可以通过AT指令对短信猫中的短信进行读取,并对读入的短信数据进行分析与解码。读出的短信格式与发送时的短信编码大致是相同的,下面给出相应的程序例程。读取某一条短信,并将其进行显示:/*-函数名:LAD_SMS()(short for Load And Display the Short MessageS)功能:用户函数,读取第n条短信,并在LCD的(x,y)位置显示出来-*/unsigned cha

25、r LAD_SMS(unsigned char n,unsigned char x,unsigned char y)unsigned char i,len,t;char temp5;char temp13;/IN_Draw_BlankorBlackRect(0,20,30,72,0);szzh10(n,temp1);/将n转为相应的字符串,如n=21,则字符串为21,用以与AT指令拼接。t=85;clear_sbuf();counter=0;send_s(AT+CMGR=);/AT+CMGR为读取短信的AT指令send_s(temp1);/上面所得的字符串send(0x0d);send(0x0

26、a);for(i=0;i10;i+) delay(10000); /等待读取完毕sbufcounter=0; /在收到的数据末尾附加0temp0=sbuf23;temp1=sbuf24;temp2=sbuf25;temp3=0;if(sbuf25!=0x0d) t+;for(i=0;i短信空);delay(50000);return 0;len-=20;if(len90)/LCD_PutEng(5,96,MTL);/LCD_PutChn(x,y,短信太长);delay(50000);return 0;for(i=0;ilen;i+)temp0=sbuft+2*i;temp1=sbuft+2*i

27、+1;temp2=0;sbufi=_hex_(temp);/收到的短信内容是内存方式的显示表示,转为十六进制数sbufi=0;Analysis_Pro();/解码后的内容在sbuf中,此函数对其进行显示输出delay(50000);clear_sbuf();counter=0;return 1;检测新短信:/*-函数名:Check_New()功能:用户函数,检测有无新的短信,如果有返回1,否则返回0-*/unsigned char Check_New()int i;send_s(AT+CMGL=0); /AT+CMGL=0为读取新短信的AT指令send(0x0d);send(0x0a); /发

28、送回车delay(10000); /等待接收完毕if(sbuf12=O) return 0xff;if(sbuf12=+)for(i=18;i23;i+)if(sbufi=,) sbufi=0;return atoi(sbuf+19); /返回新短信的位置删除某条短信:/*-函数名:Delete()功能:用户函数,删除第n条短信-*/unsigned char Delete(unsigned char n)char t10;char t15;strcpy(t,AT+CMGD=); /AT+CMGD为删除短信的AT指令szzh10(n,t1);strcpy(t+8,t1);while(Send_

29、AT_CMD(t)!=1);delay(60000);return 1;6.2烟雾传感器模块核心代码:uint AD_Conver(uchar port)uchar i;uint AD= 0;CLOCK = 0;CS= 0;EOC=1;port = 4;for (i = 0; i 12; i+) /注意:在12个时钟周期的下降沿产生了数据输出 /在前4个时钟周期内,TLC2543已经知道下一次将if (DOUT)AD |= 0x01; /哪个通道做转换,在后8个时钟内就一直对此通道DIN = (bit)(port & 0x80); /进行采样,并保持到第12个时钟周期结束,此后才CLOCK =

30、 1; /开始进行A/D转换,转换时间需要10us._nop_(); _nop_(); _nop_(); /在第4-8个时钟周期内输入的是命令控制字CLOCK= 0;_nop_(); _nop_(); _nop_(); /可根据需要输入port = 1;AD =1;return AD;#endif6.3 DS18B20核心代码:void delay(uint z) /延时函数 uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void dsreset(void) /DS18B20复位,初始化函数 uint i;ds=0;i=103;while(i0)i-;ds=1

31、;i=4;while(i0)i-;bit tempreadbit(void) /读一位数据函数uint i;bit dat;ds=0;i+; /i+起延时作用ds=1;i+;i+;dat=ds;i=8;while(i0)i-;return (dat);uchar tempread(void) /读一个字节数据函数 uchar i,j,dat;dat=0;for(i=1;i=8;i+)j=tempreadbit();dat=(j1); /读出的数据最低位在最前面,这样刚好一个字节在dat里return (dat);void tempwritebyte(uchar dat) /向DS18B20写一

32、个字节数据函数uint i;uchar j;bit testb;for(j=1;j1;if(testb) /写1ds=0;i+;i+;ds=1;i=8;while(i0)i-;elseds=0; /写0i=8;while(i0)i-;ds=1;i+;i+;void tempchange(void) /DS18B20开始获取温度并转换 dsreset();delay(1);tempwritebyte(0xcc); /写跳过读ROM指令tempwritebyte(0x44); /写温度转换指令 uint get_temp() /读寄存器中存储的温度数据 uchar a,b; dsreset();

33、delay(1); tempwritebyte(0xcc); tempwritebyte(0xbe); a=tempread(); /读低8位 b=tempread(); /读高8位 temp=b; temp0;i-) dis_temp(get_temp(); /获取温度并显示deal(temp); /进行温度处理sprintf(buff,%f,f_temp); /将浮点型温度格式化为字符型for (i=10;i0;i-) dis_temp(get_temp(); /温度显示comm(buff); /串口发送数据for(i=10;i0;i-)dis_temp(get_temp(); /温度显示

34、6.4 ADC0809功能核心代码void control(uchar num1,uchar num2) uint i; uchar s,j; s=num1; for(i=6;i0;i-) p17=0; p15=s%2; s=s/2; p17=1; j=num2;for(i=8;i0;i-) p17=0; p15=j%2; j=j/2; p17=1;p16=1;p16=0;void init()/产生500khz信号TMOD=0x01;TH0=(65536-1)/256;TL0=(65536-1)%256;/取余EA=1;TR0=1;ET0=1;void main()/uchar temp;u

35、char a1,a2,a3,adval;init();start=0;oe=0;/P2=0xff;while(1)start=0;start=1;start=0;/while(eoc=0);oe=1;adval=P0;/读入转换的数字量oe=0;/disp_buffer0=temp4;/disp_buffer1=temp&0X0F;/delayms(1); disply(a1,a2,a3);/delayms(1); a1=adval/100; a2=adval%100/10; a3=adval%10;void timer() interrupt 1TH0=(65536-1)/256;TL0=(

36、65536-1)%256;clk=clk;结论随着我国的经济迅猛发展,人们的生活水平要求不断的提高,相信在不久的将来只能家居系统将会被越来越多的人接受并使用。本文介绍的只能家居系统是基于GSM 网络通信技术以单片机为控制核心,辅以各种传感器实现了对家居的智能化安防监控和远程控制。可以有效的保护人民的生命财产安全,为人们提供了一个更加舒适,安全,时尚,简洁的家居生活。参考文献1王迎旭.单片机原理与应用.北京:机械工业出版社,2004.72郑峰.51单片机应用系统典型模块开发大全.北京:中国铁道出版社,2010.13张小梅,陆俊,彭冰沁,等.嵌入式智能家居监控系统的设计与实现J.微计算机信息.20

37、074孙钊.嵌入式操作系统在智能家居中的应用与研究D.哈尔滨工业大学,2006.65姜仲秋等主编.C语言程序设计,南京大学出版社,1998.16赵丽娟,邵欣,房世平. 基于单片机的温度监控系统的设计与实现. 机械制造2006年 第1期 7柳青 戴立坤.单片机实验系统中GSM、GPRS实验模块的设计与应用 广州航海高等专科学校学报2008年 第2期 8刘君华.传感器技术与应用实例 .电子工业出版社 2008.5.23 谢 辞走的最快的总是时间,来不及感叹,大学生活已近尾声,四年多的努力与付出,随着本次论文的完成,将要划下完美的句号。本论文设计在马鸣老师的悉心指导和严格要求下业已完成,从课题选择到具体的写作过程,论文初稿与定稿无不凝聚着马鸣老师的心血和汗水,在我的毕业设计期

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1