物联网智能家居系统设计.doc_第1页
物联网智能家居系统设计.doc_第2页
物联网智能家居系统设计.doc_第3页
物联网智能家居系统设计.doc_第4页
物联网智能家居系统设计.doc_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本科毕业设计论文题目: 物联网智能家居系统设计姓 名:机器猫学 号:2007081209系(部):信息科学与技术专 业:计算机科学与技术班 级:2007级2班指导教师:灰太狼完成时间: 2011 年 4 月邢台学院2011届本科毕业设计摘 要本设计结合了物联网和智能家居的相关技术,主要实现了使用无线传感器采集室内温度等数据,在嵌入式终端中进行处理,然后以短信方式发送到用户手机上的整个流程。其中涉及了基于ZigBee的无线传感网络,Qt跨平台图形界面和GPRS手机通信模块的应用。该设计分为以下几个部分:一、首先分析课题来源与市场需求,然后对整个系统进行了概述;二、对该系统的框架进行介绍,并进行可行性分析;三、对整个系统的软硬件设计进行详细的介绍;四、系统测试,这里对系统的多个临界点进行测试,保证系统的稳定性。关键字:物联网;智能家居;无线传感网络;GPRSAbstractThe design combined of The Internet of things related to Smart Home technology, mainly achieved the whole process of using wireless sensors to achieve the indoor temperature and other data collected, processed in the embedded terminal, and then send a text message to the user on the phone. In which involved the ZigBee wireless sensor network, Qt cross-platform graphical interface and the applications of GPRS mobile communication module. The design is divided into the following parts: First, we analyze the source and market demand issues, and then take an overview of the whole system; Second, the framework of the system are introduced, and feasibility analysis; Third, the entire system detail design of software and hardware; fourth, system testing, where a number of critical points of system testing to ensure system stability. Keywords:The Internet of things;Smart Home;Wireless Sensor Networks;GPRS 目 录前言1第1章 物联网智能家居系统整体构成21.1系统结构21.2可行性分析3第2章 物联网智能家居系统具体实现42.1硬件平台实现42.1.1 系统所使用的硬件设备及技术介绍42.1.2 硬件环境搭建52.2软件平台实现62.2.1软件开发环境搭建62.2.2 软件平台整体框架62.2.3 无线传感器数据处理模块82.2.4 GPRS通信处理模块102.2.5 数据存储与查询模块122.2.6 影音播放模块13第3章 系统测试143.1测试目的143.2测试设备143.3测试内容143.4结果分析15结论16致谢17参考文献18附录19前 言在互联网已经普及的今天,互联网已经联系起了每一个人,那么互联网之后将会是什么呢?随着各种消费电子的智能化,还有无线传感器的迅速发展,人们想到了是否可以用网络将每一个物体都联系起来,以实现对物体的智能化识别、定位、跟踪、监控和管理。这样就形成了一种新的网络,被称为物联网。物联网的核心仍然是互联网,通过各种有线和无线网络与互联网融合,将物体的信息实时准确地传递出去。而从20世纪80年代开始,随着大量采用电子技术的家用电器面世,直到现在,经过了30年的发展,家用电器已经普及,而且具有了很高的智能化。这时人们便开始追寻一种更加智能的家庭管理方式,希望实现安保,防灾,家电一体化控制,这就是智能家居的原型。对于物联网的出现,大大加快了智能家居的发展。物联网中的无线传感器应用对家庭的智能防灾,灯光控制,以及家电联网都提供了一种很好的解决办法。而且使用GPRS通信模块,可以将家庭中的突发事件信息告知户主,并且进行智能报警。这样就极大降低了家庭意外灾难的损失。可见该课题拥有明朗的设计背景和广泛的市场需要。物联网智能家居系统是将无线传感器网络,影音播放服务,GPRS通信进行整合,集中由嵌入式终端服务器进行处理和控制。整个流程就是:通过无线传感器采集温度等各种数据,然后传送到服务器中进行处理,当数据超出正常水平时便由服务器将数据通过GPRS模块以短信的形式发送到用户手机上。在嵌入式终端中还使用了人性化的图形用户界面,让用户直观地查看各种数据和进行各种设置。它还使用了嵌入式数据库,可以存储所获取的数据,供用户在界面上进行查询。系统中的无线传感网络是由基于ZigBee无线通信技术的多个传感器节点和一个基站组成。基站将各个无线传感器节点传来的数据进行简单缓存后通过串口传送给服务器,而服务器对这些数据进行解析,存储和判断,如果发现数据超出正常水平,便发出警报,并通过连接在服务器上的GPRS模块将信息传送给用户。第1章 物联网智能家居系统整体构成1.1系统结构整个系统主要由三部分组成:传感器节点WSN网络,嵌入式服务器终端,GPRS通信模块及其他装置。其中传感器节点网络中包含了多个无线传感器节点,每个节点都是由一个传感器模块加上一个无线通信模块组成的。它们通过无线射频网络将采集的数据传输到基站节点。基站节点通过串口将所有数据传送给嵌入式服务器终端,该服务器底层由ARM处理器和嵌入式Linux系统组成,在上面设计了Qt用户界面平台,用来完成数据处理和与用户交互等功能。服务器还可以根据用户设置,使用GPRS模块将数据以短信的方式传送给用户,或者进行报警。整个系统结构如图1-1所示。图1-1物联网智能家居系统结构图1.2可行性分析该系统采用了基于ZigBee技术的无线传感器网络和基于ARM核心的嵌入式处理器PXA270,具有极高的稳定性和可扩展性。(1)稳定性系统基于32位嵌入式微处理器为核心的硬件设计,系统结构简单,稳定性和实时性高。而ZigBee技术具有短距离,高可靠性等特点,可以抵抗各种干扰。(2)先进性嵌入式系统采用32位RISC结构微处理器,主频可达624MHz,处理能力大大超过了单片机系统,接近PC机水平,但体积更小,能够真正嵌入到设备中。ZigBee网络是现在最先进的无线传输网络之一,通信距离可达几十米,并且可以无限扩展。(3)人机交互通过大屏幕的触屏液晶显示器,而且使用了Qt设计的用户图形界面,使得用户可以很直观的来查看数据和进行其他各种设置。(4)开发周期Linux具有内核定制等功能,并且是开源的,再加上开源的Qt跨平台应用程序和UI开发框架,可以在很短时间内开发出整个系统。(5)开发成本Linux是免费的,而现在Qt也可以免费使用,ARM平台相比PC平台要便宜很多,所以系统开发成本很低。(6)系统升级ZigBee网络可以无限扩展,我们可以随意加入其它传感器模块;Linux平台可以定制内核,很容易支持各种设备驱动。第2章 物联网智能家居系统具体实现2.1硬件平台实现2.1.1 系统所使用的硬件设备及技术介绍(1)无线传感网络相关设备和技术无线传感器网络(Wireless Sensor Network, WSN)就是由部署在监测区域内大量的廉价微型传感器节点组成,通过无线通信方式形成的一个多跳的自组织的网络系统,其目的是协作地感知、采集和处理网络覆盖区域中被感知对象的信息,并发送给观察者。传感器、感知对象和观察者构成了无线传感器网络的三个要素。 随着微机电系统(Micro-Electro-Mechanism System, MEMS)、片上系统(SOC, System on Chip)、无线通信和低功耗嵌入式技术的飞速发展,孕育出无线传感器网络(Wireless Sensor Networks, WSN),并以其低功耗、低成本、分布式和自组织的特点带来了信息感知的一场变革。无线传感器网络就是由部署在监测区域内大量的廉价微型传感器节点组成,通过无线通信方式形成的一个多跳自组织网络。该系统的无线传感网络由多个无线传感器节点组成,而这些无线传感器节点由传感器模块和基于CC2430芯片的无线传输模块组成。其中CC2430是基于ZigBee技术的,它上面运行了TinyOS系统。下面分别介绍。1. ZigBee技术:ZigBee,在中国被译为“紫蜂”,它与蓝牙相类似,是一种新兴的短距离无线技术。Zigbee是IEEE 802.15.4协议的代名词。根据这个协议规定的技术是一种短距离、低功耗的无线通信技术。这一名称来源于蜜蜂的八字舞,由于蜜蜂(bee)是靠飞翔和“嗡嗡”(zig)地抖动翅膀的“舞蹈”来与同伴传递花粉所在方位信息,也就是说蜜蜂依靠这样的方式构成了群体中的通信网络。其特点是近距离、低复杂度、自组织、低功耗、低数据速率、低成本。主要适合用于自动控制和远程控制领域,可以嵌入各种设备。简而言之,ZigBee就是一种便宜的,低功耗的近距离无线组网通讯技术。2. CC2430芯片:CC2430是一颗真正的系统芯片(SoC)CMOS解决方案。这种解决方案能够提高性能并满足以ZigBee为基础的2.4GHz ISM波段应用,及对低成本,低功耗的要求。它结合一个高性能2.4GHz DSSS(直接序列扩频)射频收发器核心和一颗工业级小巧高效的8051控制器。 CC2430的设计结合了8Kbyte的RAM及强大的外围模块,并且有3种不同的版本,他们是根据不同的闪存空间32,64和128kByte来优化复杂度与成本的组合。3. TinyOS系统:TinyOS是UC Berkeley(加州大学伯克利分校)开发的开放源代码操作系统,专为嵌入式无线传感网络设计,该操作系统基于构件(component-based)的架构使得快速的更新成为可能,而这又减小了受传感网络存储器限制的代码长度。(2)嵌入式终端相关设备及技术ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。技术具有性能高、成本低和能耗省的特点。其适用于多种领域,比如嵌入控制、消费/教育类多媒体、DSP和移动式应用等。该系统使用的ARM处理器为PXA270。英特尔公司于2003年底推出了性能最为强劲的PXA27x系列嵌入式处理器,PXA27x系列嵌入式处理器基于ARMv5E的Xscale核心,最高频率可达624MHz。作为一款性能极其强劲的嵌入式处理器,配合嵌入式Linux或Wince操作系统,PXA270理论上可以支持任何媒体格式,并通过软件升级,支持未来媒体格式。(3)GPRS通信模块GPRS是通用分组无线服务技术(General Packet Radio Service)的简称,它是GSM移动电话用户可用的一种移动数据业务。GPRS可以说是GSM的延续。GPRS和以往连续在频道传输的方式不同,是以封包(Packet)式来传输,因此使用者所负担的费用是以其传输资料单位计算,并非使用其整个频道,理论上较为便宜。GPRS的传输速率可提升至56甚至114Kbps。在系统中,我们使用串口和GPRS模块进行通信,将我们的数据通过GPRS模块发送到用户手机上。2.1.2 硬件环境搭建整个系统的硬件由基于ZigBee技术的无线传感网络,基于ARM处理器PXA270的嵌入式开发平台和GPRS通信模块三部分组成。其中嵌入式开发平台作为核心,而无线传感网络使用基站点通过串口与嵌入式开发平台相连,GPRS模块也是通过串口与嵌入式平台相连。它们的整体构成如图2-1所示。图2-1 系统硬件连接示意图我们这里只需要将无线传感网络的基站点连接到嵌入式平台的串口1上,将GPRS模块连接到嵌入式平台的串口2上。对于无线传感网络的各个节点,我们还需要安装好相应的传感器和发射天线,安装好的基站节点如图2-2所示,其中的USB线缆使用来供电的。安装好的传感器节点如图2-3所示,它使用电池进行供电。 图2-2安装好的基站节点 图2-3安装好的传感器节点对于GPRS模块,我们需要将一个可以使用的GSM手机卡插入到相应的插槽中,然后使用电源线连接电源。2.2软件平台实现2.2.1软件开发环境搭建(1)建立Qt开发环境在PC机上安装Ubuntu 10.04。然后下载并解压交叉编译链arm-linux-gcc-4.4.3。从Qt官网下载linux版本的Qt开发框架,这里使用4.7.2版本,下载的安装包文件为qt-everywhere-opensource-src-4.7.2.tar.gz 。然后使用交叉编译链对Qt源码进行交叉编译,最后使用make install命令来安装Qt。我们再从Qt官网下载linux版本的Qt Creator 2.1,然后安装它,用它来进行Qt程序的开发。(2)嵌入式终端软件平台搭建嵌入式终端软件平台的搭建,包含以下几步。第一, 烧写BIOS。进入到“EELiod/Jflashmm”目录下,输入“tar xzvf Jflash Xsbase270.tar.gz”解压Jflash工具。进入到“Jflash-Xbase270”目录下,输入“./jflashmm boot”下载“”Bootloader。第二, 烧写Linux的内核。先在PC的Linux的根目录下建立一个“tftpboot”目录。把“EELiod/image”目录下的“zImage和rootfs.img”文件复制到“tftpboot”目录下。打开minicom并且重启目标板,按下数字键“3”选择第三个选项,把内核映像文件zImage文件下载到板子上。第三, 烧写文件系统。按下数字键“5”选择选项5,把文件系统的映像文件rootfs.img下载到目标平台上。2.2.2 软件平台整体框架本系统的软件设计及其图形界面实现都是基于Qt的。Qt是诺基亚开发的一个跨平台的应用程序和UI开发框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的,很容易扩展,并且允许真正地组件编程。该系统的主要软件功能如表2-1所示。其中的数据接收,数据处理,数据存储,GPRS数据发送等功能都是在后台进行的,而数据显示,用户设置与查询,多媒体播放等功能是在图形界面上实现的。表2-1软件功能表数据接收数据处理数据存储数据显示用户设置与查询多媒体播放GPRS数据发送Qt图形界面平台这些功能在程序设计中是通过几个模块实现的。对它们简单介绍如下:n 主界面模块:绘制界面,完成数据显示、用户设置等功能,它需要调用其他几个模块;n 无线传感器数据处理模块:完成数据接收,数据处理等功能;n GPRS通信处理模块:完成GPRS数据发送功能;n 数据存储与查询模块:完成数据存储、查询等功能;n 影音播放模块:完成多媒体播放功能。这些模块的结构,如图2-4所示。图2-4软件模块结构图在软件界面设计上添加了图片等元素,使得界面更加美观和人性化。程序的主界面最终效果如图2-5所示,温度查看与设置界面最终效果如图2-6所示。图2-5用户主界面最终效果图图2-6温度查询与设置界面最终效果图2.2.3 无线传感器数据处理模块该模块主要实现对传感器传来的数据进行接收和解析处理。传感器的基站节点通过串口将数据传送给服务器,所以在程序中主要是应用串口进行数据的接收和处理。整个程序设计流程图如图2-7所示。当在程序中打开串口后,传感器的基站节点就会每隔一秒钟向串口发送一帧数据,但并不是每次发送的数据都是有效数据,所以我们在程序中需要对数据帧进行测试判断,如果是有效数据,才进行解析。最后将得到的有效数据提供给主界面进行显示,并由主界面模块将该数据送往数据存储模块,将它存入数据库,以便用户以后查询。图2-7读取串口流程图对于串口数据帧的内容如图2-8所示。数据帧一共有12字节,只有最后两个字节是有效的传感器数据,我们只需要处理这两个字节,然后将它显示到界面上。对于不同的传感器,传过来的数据帧的内容是不同的,所以我们从数据帧的TYPE字段获取传感器类型,然后从DATA字段获取有效数据。对于不同的传感器,我们需要使用不同的公式将DATA数据转换为可读数据。例如对于温度传感器,我们需要进行下面这样的操作:QByteArray temp = myCom-readAll();/读取串口缓冲区的所有数据给临时变量tempQString a1 = QString(temp.at(24); /读取第25个字节QString a2 = QString(temp.at(25); /读取第26个字节QString aa = a1+a2;QString b1 = QString(temp.at(27); /读取第28个字节QString b2 = QString(temp.at(28); /读取第29个字节QString bb = b1+b2;QString cc = aa+bb; /将温度数据合并起来if(cc != ff00)int temperature = cc.toInt(0,16)*0.01-40; /将温度数据转换成十进制,然后使用公式ui-label_temp-setText(tr(现在的温度是:%1).arg(temperature);图2-8传感器串口数据帧2.2.4 GPRS通信处理模块在GPRS通信处理模块中,主要是根据GPRS的使用原理,将我们要发送的数据通过串口发送到GPRS通信模块中,进而发送到用户手机上。一般GPRS模块都提供一个DB9接头或扩展通信接口实现RS232通信,该DB9接头可以直接和PC的串口COM1或是嵌入式平台的串口相连。 使用ARM或者单片机通过RS232串口与GPRS模块通信,使用标准的AT命令来控制GPRS模块实现各种无线通信功能,例如:发送短信,拨打电话,GPRS拨号上网等。基于GPRS模块产品的开发往往都是基于ARM平台,使用嵌入式系统进行开发。AT命令使计算机或终端与调制解调器通讯。可以按照自己的需要设置您的调制解调器,AT指令的所有命令行必须由ASCII字符“AT”开始并由 结束。字母AT用以提醒调制解调器注意,其后将有一条或多条命令出现, AT及其后的字母可以是大写或小写。常用的AT指令如表2-2所示。一串命令可以写在一行里。为了便于阅读可以加或不加空格。命令中或命令间的空格会被忽略,命令行的最多字符数为39(包括AT)。在输入一条命令期间,可以用退格键(backspace)改正除AT以外的错误。若命令行中任一处出现语法错误,本行其后的内容将被忽略,并返回ERROR。大数带有超出正常范围的参数的命令将不被接收并返回 ERROR. 表2-2部分AT指令表AT 指令功能ATE0 GSM模块复位指令AT+CMGC Send an SMS command(发出一条短消息命令) AT+CMGD Delete SMS message(删除SIM卡内存的短消息) AT+CMGF Select SMS message formate(选择短消息信息格式:0-PDU;1-文本) AT+CMGLList SMS message from preferred store(列出SIM卡中的短消息PDU/text: 0/“REC UNREAD”-未读,1/“REC READ”-已读,2/“STO UNSENT”-待发,3/“STO SENT”-已发,4/“ALL”-全部的) AT+CMGR Read SMS message(读短消息) AT+CMGS Send SMS message(发送短消息) AT+CMGW Write SMS message to memory(向SIM内存中写入待发的短消息) AT+CMSS Send SMS message from storage(从SIM内存中发送短消息) AT+CNMI New SMS message indications(显示新收到的短消息) AT+CPMS Preferred SMS message storage(选择短消息内存) AT+CSCA SMS service center address(短消息中心地址) AT+CSMP Set SMS text mode parameters(设置短消息文本模式参数) AT+CSMS Select Message Service(选择短消息服务)假设需要送一条短信“Hello”,那么我就需要输入下列的AT指令:AT+CMGF=0 AT+CMGS=21 0891683108200105F011000B91683118483146F900000006C8329BFD0E01后面这一长串的数字就是PDU数据,它的长度为60位,扣掉前面短信中心的号码18位(即前9个字节不计数),同时除以2,得到21(字节长),填入“AT+CMGS=_”; 而PDU数据的具体含义如表2-3所示。表2-3 PDU格式说明表分段含义说明08 SMSC地址信息的长度共8个八位字节(包括91) 91 SMSC地址格式(TON/NPI) 用国际格式号码(在前面加+) 68 31 08 20 01 05 F0 SMSC地址8613800250500,补F凑成偶数个 11 基本参数(TP-MTI/VFP)发送,TP-VF用相对格式 00 消息基准值(TP-MR) 0 0B 目标地址数字个数 共11位,不包括补足的F 91 目标地址格式(TON/NPI) 用国际格式号码(在前面加+) 68 31 18 48 31 46 F9 目标地址(TP-DA) 8613818413649,补F凑成偶数个 00协议标识(TP-PID)是普通GSM类型,点到点方式 00用户信息编码方式(TP-DCS) 007-bit编码 048-bit编码 08 UCS2 编码7-bit编码00有效期(TP-VP)5分钟 06短信长度(TP-UDL) 实际长度6个字节 C8 32 9B FD 0E 01短信内容(TP-UD) “Hello!” 在这里我们可以看到这条短信的内容是“Hello”,通过7-bit编码编译成“C8 32 9B FD 0E 01”。这样我们便可以在串口中将获得的数据发送出去。2.2.5 数据存储与查询模块软件平台中使用了SQLite数据库进行数据的存储。SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。表2-4是主要的数据表及其内容。在这个模块中我们主要是建立SQLite数据库连接,然后创建数据表,将主界面传来的传感器数据信息写入表中。这个模块也要完成数据查询功能,它将主界面传来的关键字在表中进行查询,然后将结果返回给主界面。表2-4数据库wsn_data表信息表项类型含义id整型编号time字符型时间temperature浮点型温度humidity浮点型湿度luminosity浮点型光度2.2.6 影音播放模块在这个模块中我们主要是在软件中添加影音播放功能,这是通过调用MPlayer实现的。这里主要是将MPlayer进行交叉编译,然后在播放多媒体文件时调用MPlayer程序。MPlayer是一款开源的多媒体播放器,以GNU通用公共许可证发布。此款软件可在各主流作业系统使用,例如Linux和其他类Unix作业系统、微软的视窗系统及苹果电脑的Mac OS X系统。MPlayer是建基于命令行界面,在各作业系统可选择安装不同的图形界面。(1)下载源码包 源代码包选用目前最新的MPlayer-1.0pre7try2.tar.bz2,这个可以从官网上下载。(2)解压缩源代码该解压MPlayer的源代码了。将MPlayer-1.0pre7try2.tar.bz2拷贝到工作目录下。在终端中使用下面的命令:cp /src/MPlayer-1.0pre7try2.tar.bz2 /developcd /developtar jxvf MPlayer-1.0pre7try2.tar.bz2mv MPlayer-1.0pre7try2 MPlayer (3)编译首先是配置,命令如下:./configure -host-cc=gcc -cc=arm-linux-gcc -target=arm-armv4l-linux -enable-static -prefix=/tmp/mplayer -disable-win32 -disable-dvdread -enable-fbdev -disable-mencoder -disable-live 2&1 | tee logfile其中-host-cc=gcc是用来编译一些需要在host上执行的中间文件的。然后进编译make,编译完成后使用make install来进行安装(4)将编译完成的程序在Qt程序中调用第3章 系统测试3.1测试目的在设计本系统时,已经考虑到了数十个关键点和临界点,以保证系统的正确稳定运行,但是再多的思考也会出现遗漏的地方,所以这里进行了一些测试,来发现系统漏洞,从而进行修改和补充,使系统达到比较理想的状态。3.2测试设备装有Ubuntu 10.04的PC机,PXA270实验箱一套,基于CC2430的无线传感器若干,GPRS模块一个。3.3测试内容我们对整个系统的各个模块进行了多方面的测试,所有的测试项以及实际结果如表3-1所示。表3-1系统测试表编号测试项操作步骤预期结果实际结果1系统开机为实验箱连接好电源线和串口线,打开实验箱电源系统正常开机后可以进入图形用户界面,开机时间10秒系统开机后进入了图形用户界面,用时8秒2用户界面与触屏使用手指点击触摸屏来操作用户界面通过触摸屏流畅的来操作用户界面通过手指操作触屏,效果很流畅3在界面上获取传感器数据连接温度传感器模块,打开软件上温度设置界面,查看是否显示温度可以正常显示温度信息显示出了温度信息4温度变化时传感器数据变化使用冰块和热水杯先后靠近温度传感器模块,查看界面上的温度变化当测试冰块温度时,数值应该50测试冰块温度时,数值显示为-3,当测试热水杯温度时,数值显示为655传感器实际传输距离将温度传感器模块远离基站,查看界面上是否显示正常数据当距离30米时,可以正常接收数据当距离在30米以内时,都可以接收到数据6温度超出时报警设置温度上限为40度,然后使用热水杯靠近温度传感器模块当温度超过设置的温度上限时,应急灯会亮起在温度到达40度时,LED灯亮起7数据查询在数据查询界面输入日期,如20110420,进行数据查询可以显示出所查日期的数据信息信息输出栏中显示出了所查日期的各种数据信息8GPRS模块发送短信连接GPRS模块,设置当温度超过温度上限时进行短信发送,并输入用户手机号,然后使用热水杯靠近温度传感器模块温度信息可以发送到指定号码的手机上当温度超过40度时,在指定的手机上接收到了短信9多媒体播放打开多媒体界面,然后选择播放一个音乐文件和视频文件应该可以播放常见的音频和视频文件可以正常播放MP3音频文件和AVI视频文件3.4结果分析通过上一节的测试内容以及实际结果,可以确定该系统可以进行稳定的工作,各个模块均可以正常工作,整个系统不存在较大的系统漏洞。该系统可以很好的完成传感器数据的采集与存储、图形界面的显示与操作、数据的查询、发送预警短信和播放多媒体文件等功能。结 论物联网智能家居系统是基于嵌入式ARM平台,以Linux为操作系统,使用Qt设计用户图形界面,结合了ZigBee无线传感网络和GPRS通信模块的嵌入式智能产品。它很好的实现了家庭防灾的需求,使家庭的意外灾害损失降到最低。它也包含了影音娱乐等功能,满足家庭的娱乐需求。由于时间和资源有限,这里并没有将自己所有的想法都付诸实践。其实物联网和智能家居都是很大的项目,它们涉及了太多的内容,这个系统只是实现了其中的很小一部分功能。而且,由于知识水平所限,在系统设计当中也必然存在着很多漏洞和不足。不过,我始终觉得这是一个很好的项目,很具有实际意义,如果有可能,我会继续将它完善,做得更好!致 谢在最后,我要感谢大学四年里给我们传授知识的各科老师,他们的言传身教使我快速的成长,成熟。这里特别要感谢我的指导教师赵丙辰老师,该设计就是在他的用心指导下完成的。在该系统设计过程中,赵老师为我提供了多次的指点,每次都让我豁然开朗,就是在他的帮助下,我才能克服一个又一个难题,最终成功完成了该系统的设计。这里再次对他表示衷心的感谢。其次,我还要感谢大学四年里曾经帮助过我的同学和朋友,他们曾给我提出过很多宝贵的意见,也在很多知识上给予了我很大的帮助。参 考 文 献1 蔡志明.卢传富.李立夏.精通QT4编程M.电子工业出版社 20082 萨师煊.王珊.数据库系统概论.(第四版)M.北京:高等教育出版社 20063 孙琼.嵌入式Linux应用程序开发详解M.人民邮电出版社 20084 杜春雷.ARM结构体系和编程M.清华大学出版社 20035 翟雷.刘盛德.胡咸斌.ZigBee技术及应用M.北京航空航天大学出版社 2007附 录程序源代码main.cpp主函数文件:#include #include mainwidget.h#include int main(int argc, char *argv) QApplication a(argc, argv); QApplication:setFont(QFont(wenquanyi); QTextCodec:setCodecForTr(QTextCodec:codecForLocale(); mainWidget w; w.show(); return a.exec();room.h头文件:#ifndef ROOM_H#define ROOM_H#include #include posix_qextserialport.h#include #include led.h#include gprs.hnamespace Ui class room;class room : public QWidget Q_OBJECTsignals: void readOver();public: explicit room(QWidget *parent = 0); room();private: Ui:room *ui; void alarm(int ); void alarmOff(); Posix_QextSerialPort *myCom; QTimer *readTimer; QTimer *keyboardTimer; gprs gprs1; QString phoneStr; QString temperatureStr; int temperature; enum inputenum_temperature, phone; input inputMethord;private slots: void readMyCom(); void setPhoneNumber(); void on_dialBtn1_clicked(); void on_dialBtn2_clicked(); void on_dialBtn3_clicked(); void on_dialBtn4_clicked(); void on_dialBtn5_clicked(); void on_dialBtn6_clicked(); void on_dialBtn7_clicked(); void on_dialBtn8_clicked(); void on_dialBtn9_clicked(); void on_dialBtn0_clicked(); void on_dialBtnDel_clicked(); void on_dialBtnClear_clicked(); void on_tempLineEdit_lostFocus(); void on_phoneLineEdit_lostFocus(); void on_tempLineEdit_editingFinished(); void on_phoneLineEdit_editingFinished(); void on_pushButton_clicked(); void on_checkBox_clicked(); void on_checkBox_clicked(bool checked); void on_pushButton_2_clicked(); void on_pushButton_2_clicked(bool checked);signals: void returnMainWidget();#endif / ROOM_Hroom.cpp源文件:#include room.h#include ui_room.h#include phone.h#include room:room(QWidget *parent) : QWidget(parent), ui(new Ui:room) ui-setupUi(this); readTimer = new QTimer(this); keyboardTimer = new QTimer(this); readTimer-start(10); keyboardTimer-start(1000); connect(readTimer, SIGNAL(timeout(), this, SLOT(readMyCom(); connect(keyboardTimer, SIGNAL(timeout(), this, SLOT(setPhoneNumber(); myCom = new Posix_QextSerialPort(/dev/ttyS2, QextSerialBase:Polling); myCom-open(QIODevice:ReadWrite); myCom-setBaudRate(BAUD9600); myCom-setDataBits(DATA_8); myCom-setParity(PAR_NONE); myCom-setStopBits(STOP_1); myCom-setFlowControl(FLOW_OFF); myCom-setTimeout(10); ui-dialBtn0-setCursor(Qt:PointingHandCursor); ui-dialBtn1-setCursor(Qt:PointingHandCursor); ui-dialBtn2-setCursor(Qt:PointingHandCursor); ui-dialBtn3-setCursor(Qt:PointingHandCursor); ui-dialBtn4-setCursor(Qt:PointingHandCursor); ui-dialBtn5-setCursor(Qt:PointingHandCursor); ui-dialBtn6-setCursor(Qt:PointingHandCursor); ui-dialBtn7-setCursor(Qt:PointingHandCursor); ui-dialBtn8-setCursor(Qt:PointingHandCursor); ui-dialBtn9-setCursor(Qt:PointingHandCursor); ui-dialBtnDel-setCursor(Qt:PointingHandCursor); ui-dialBtnClear-setCursor(Qt:PointingHandCursor); inputMethord = phone; /ui-frame-hide(); ui-tempLineEdit-setFocus();room:roo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论