物联网工程与设计.docx
《物联网工程与设计.docx》由会员分享,可在线阅读,更多相关《物联网工程与设计.docx(18页珍藏版)》请在冰豆网上搜索。
物联网工程与设计
《物联网工程与设计》
课程设计报告
姓名:
滕玲
班级:
物联1301
学号:
131408119
指导老师:
张正华
日期:
2016.6.8
一、课程设计目标任务
1.1课程的背景
在计算机技术与通信技术高速发展的今天,智能化、网络化以超出想象的速度发展。
当今,世界上每一个事物都可能成为互联网连接和沟通对象,物联网也就作为一种新兴技术应运而生。
通过物联网,智能终端可以为人们提供便捷的信息和决策服务,除此之外,还可以通过个人设备及电脑获得特定服务。
智能家居的发展日新月异,用户可以更加方便的管理家用电器,也可以进行通信和信息的交流,从而使生活更加高效舒适。
1.2课程的目标
将ZigBee技术应用到智能家居当中,实现对窗帘的智能控制,方便对居室窗帘的控制与调节,提升了智能家居系统给用户带来的体验度,使生活更加舒适、方便、安全。
基于ZigBee技术,应运CC2530芯片,完成了智能窗帘的光控、温控等功能,并实现了对其的智能管理。
1.3课程设计任务
物联网是一个基于互联网、传统电信网等信息承载体,让所有能够被独立寻址的普通物理对象实现互联互通的网络。
通过物联网可以对机器、设备、人员进行集中管理和智能控制,对于基于物联网的窗帘控制系统的研究是非常必要的。
我们可以根据所学知识完成基于物联网的窗帘控制系统设计,提高分析问题、解决问题的能力。
1.4课程设计的意义
此系统通过光敏传感器采集室内光线强度,zigbee模块传输光强度信号并且控制窗帘的升降。
该系统能够不仅能够根据室内光强度自动控制窗帘的升降,也可以通过上位机来控制,具有很多优点:
(1)经济实惠,低成本。
采用开放的协议标准,支持多种产品,通过竞争降低成本。
设备可以DIY或者专业设计,推动节能意识和控制。
(2)方便容易。
采用无线技术降低了运行成本和铺设电线的麻烦,采用全球2,4GHZ频段简化了安装和认证的互操作性。
(3)安全性高,保密性好。
通过安装无线传感器监测各种情况,遇到异常事件接收信号后自动通知采用固定位加密个人信息,通过设备认证保证邻居网络安全。
(4)操作性强。
客户可以选择多种产品你满足需求,将照明、安全、家用电器等集成控制,进行监控。
二、方案设计
2.1系统总体方案设计
基于技术的智能家居采集控制系统主要由三部分构成,分别为远程用户监测、家庭控制器和家电控制节点。
在无线智能家居系统中,采集和传输各种设备的数据和运行信息是保证智能家居系统正常运行的关键。
基于上述设计思想,提出了智能家居数据采集控制系统的总体设计框架,如图所示
整个系统采用的无线传感器星型拓扑网络结构,由一个协调器节点与多个终端节点组成,基于点对点的形式完成数据的采集和信息的无线收发控制通过触摸式工业平板电脑作为上位机向串口发送命令到协调器,协调器接收到命令信息后,分析并将命令再发送到受控的智能终端节点并控制其动作,最终完成任务并返回终端状态信息。
各种设备可在信息交互的基础上实现互相操作,相互协作和远程控制的功能,因此系统具有万能联动的功能。
本系统包括数据采集终端、终端节点、协调器节点、遥控器和上位机五个部分。
1.数据采集终端
数据采集终端主要完成家庭里的环境参数温度、湿度、光照等诸多模拟量的采集和智能家电以及灯具的开关量采集。
各个采集模块均与终端节点相连接,集成到一个板子上。
2.ZigBee终端节点
ZigBee终端节点主要完成从数据采集终端接收数据,并通过无线通信方式发送接收到的数据,或者接收协调器节点发送的控制命令。
3.ZigBee协调器节点
ZigBee协调器节点是整个网络的发起者,管理整个网络的规模,存储有网络中各个节点的信息,担当入网络中的协调器的角色,主要任务就是组建和维护一个网络,收集网络中各个节点发出的信息,通过串口把数据传到上位机。
4.RF遥控器
RF遥控器采用标准对智能家居各个节点进行远程智能控制,通过发送命令集来实施双向通信。
5.上位机
上位机主要用于接收协调器节点发来的数据信息。
主要功能就是数据的存储、接收和显示,并作进一步处理和显示。
2.2各部分功能设计
2.2.1微控制器模块
本课题用了TI公司的CC2530芯片作为核心处理器模块。
CC2530芯片釆用的是2.4GHz的SOC片上系统,建立在基于标准协议的IEEE802.15.4之上的ZigBee协议栈Z-Stack。
Z-Stack采用模块化设计方法,是基于ZigBee规范中的协议栈结构进行设计的,这样防止用户对协议找的关键部分误改的可能性,也避免了用户在开发过程中浪费大量时间去读一些与应用实现无关的代码,在一定程度上加速了应用程序的开发。
它可以建立强大的网络节点,并且成本非常低。
CC2530结合了RF收发器的许多优良性能,具有业界标准的增强型8051CPU,以及系统内可编程闪存,8kBRAM和许多其它强大的功能。
因为CC2530共有四种不同的闪存版本,并具有不同的运行模式,所以它尤其适应超低功耗要求的系统,而且
运行模式之间的转换时间短的特点进一步确保了非常的低能源消耗。
CC2530非常适用于智能窗帘控制系统,该微控制器模块是整个系统的核心部分,完成对各个模块的控制以及协调整个系统的正常运转,同时也是组建智能家居内部网络的关键。
2.2.2信号采集模块
光敏二极管接口电路,主要由光敏二极管和PCF8591组成,PCF8591主要由总线接口电路、寄存器、逻辑控制电路、比较器和驱动电路等几部分组成。
光敏二极管将光信号转换为模拟电信号输入到芯片PCF8591进行模数转换,通过PCF8591内部I2C总线,将转换后的数字信号通过函数转换得到能代表光强度的量,由PCF8591的第15脚送出,通过
总线送到CC2530控制电机正反转,达到对窗帘的开关控制。
2.3本人设计部分
我主要负责完成ZigBee光照采集控制窗体界面功能实现。
(1)MyWidget构造方法:
当实例化MyWidget类对象时,执行MyWidget构造方法,在构造方法中,初始化各个状态变量。
(2)打开串口方法:
单击打开串口按钮时,执行打开串口方法。
首先通过主界面上的下拉列表框,选择串口COM3,构建串口对象,打开串口,设置波特率115200,设置无奇偶校验位,设置数据位为8位,停止位1位,最后通过connect函数建立信号和槽函数关联,使得当串口缓冲区有数据时,进行readMyCom()读串口操作。
(3)关闭串口方法:
单击关闭串口按钮时,执行关闭串口方法。
在该方法中首先将打开的串口对象进行关闭操作,然后将打开串口按钮变成可用状态,串口名称、波特率、奇偶校验、数据位和停止位的下拉列表框变成可用状态。
其他如控制灯光和窗帘打开和关闭的按钮变成不可用状态。
(4)读串口方法:
当缓冲区有数据时,进行readMyCom()读串口操作。
从串口读出数据之后,首先判断数据是否为空,当不为空时,在判断字符串是否以“0103”开始,如果成立,则取0103的后面两位字符表示光照度数据,在界面的控件中显示出来,同时发出光照度信号,等待setlightlot(int)方法处理。
(5)setlightlot(int)方法:
setlightlot信号一旦发出之后,setlightlot槽接受到光照度响应信号进行分析处理。
首先判断收到的光照度的数值是否大于设定的初值,如果小于设定的光照度值,则通过串口向ZigBee协调器发出“297”指令,执行打开灯光和窗帘操作。
如果大于设定的光照度值,则通过串口向ZigBee协调器发出“2A7”指令,执行关闭灯光和窗帘操作。
三、课题的研究现状
80年代初期,随着电子技术的不断发展,以家用电器为主导的住宅电子化概念被提出,开始出现了住宅电子化的概念。
80年代中期,将家用电器、通讯设备与安防设备各自独立的功能集中到一个系统,形成了家居自动化概念。
标志性事件就是世界第一幢智能大厦于年在美国康涅狄格州建成,次年日本东京也相继建成智能大厦。
80年代末,由于计算机、通信与信息技术的发展,诸如美国的WISEHOME和欧洲的SMARTHOME采用总线技术,出现了如下商用系统方案:
监控、控制和管理家庭住宅内各种通信、家电、安防设备,其他国家也陆续开始广泛应用适应各自国家的智能家居系统。
进入20世纪90年代,随着数字化技术和互联网技术的突飞猛进,智能化信息家电产品已经开始步入社会和家庭。
美国、德国、日本、加拿大、澳大利亚、新加坡等国家的智能家居如雨后春笋般不断涌现。
世纪相交之际,智能家居的脚步开始走进中国。
随着人们观念的转变和现实的需求,国内主要智能家居品牌诸如安居宝、索博、海尔家居等也开发集成出了相应的产品方案,积累了很多经验,占据了一定的市场份额。
年上海世博会的成功举办,是有史以来最大规模的智能家居宣传与推广活动。
2010上海世博会展示的“城市让生活更美好”的智能家居场景到处都是,像日木馆的各种机器人,上海联合馆的机器人表演炒菜,城市未来馆展示的未来城市生活,思科馆展示的“智能互联生活”生活,国家电网馆展示的智能电网与智能家居生活,“天下一家”展示的未来低碳智能生活,山东馆展示海尔智慧家居生活等无一不在宣传智能家居的美好生活。
四、研究的内容
4.1了解光敏传感器的基本原理以及硬件设计方法
光敏传感器中最简单的电子器件是光敏电阻,它能感应光线的明暗变化,输出微弱的电信号,通过简单电子线路放大处理,可以控制LED灯具的自动开关。
因此在自动控制、家用电器中得到广泛的应用,对于远程的照明灯具,例如:
在电视机中作亮度自动调节,照相机种作自动曝光;另外,在路灯、航标等自动控制电路、卷带自停装置及防盗报警装置中等
4.2掌握光敏传感器的驱动方法
4.3了解步进电机的基本原理以及硬件设计方法
步进电机是将电脉冲信号转变为角位移或线位移的开环控制元步进电机件。
在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角”,它的旋转是以固定的角度一步一步运行的。
可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
4.4掌握步进电机的驱动设计方法
4.5掌握光敏传感器网络的搭建以及窗帘控制系统的程序设计方法
4.6掌握Zigbee光照采集、窗帘控制系统Qt人机界面实现方法
上位机主程序主要完成一些变量和控件的初始化,然后等待窗口数据。
数据的接受和发送都是中断程序完成的。
上位机收到完整的数据包后,会根据数据包中的关键字进行不同的处理。
发送数据时,根据保存的网络数据计算中转数据的路径,然后等待窗口数据。
数据的接收和发送都是由中断程序完成的。
通信串口设置主要用于设置机与网络控制器的串口通信参数,包括串口端口的选择,波特率,奇偶检验位,数据位和停止位等。
通过向串口发送命令来控制每个节点,当有意外发生时,可以通过紧急按钮向控制中心求救。
五、研究方法
基于技术的智能家居采集控制系统主要由三部分构成,分别为远程用户监测、家庭控制器和家电控制节点。
在无线智能家居系统中,采集和传输各种设备的数据和运行信息是保证智能家居系统正常运行的关键。
整个系统采用的无线传感器星型拓扑网络结构,由一个协调器节点与多个终端节点组成,基于点对点的形式完成数据的采集和信息的无线收发控制通过触摸式工业平板电脑作为上位机向串口发送命令到协调器,协调器接收到命令信息后,分析并将命令再发送到受控的智能终端节点并控制其动作,最终完成任务并返回终端状态信息。
各种设备可在信息交互的基础上实现互相操作,相互协作和远程控制的功能,因此系统具有万能联动的功能。
本系统包括数据采集终端、终端节点、协调器节点、上位机四个部分。
(1)数据采集终端主要完成家庭里的环境参数温度、湿度、光照等诸多模拟量的采集和智能家电以及灯具的开关量采集。
各个采集模块均与终端节点相连接,集成到一个板子上。
(2)Zigbee终端节点主要完成从数据采集终端接收数据,并通过无线通信方式发送接收到的数据,或者接收协调器节点发送的控制命令。
(3)Zigbee协调器节点是整个网络的发起者,管理整个网络的规模,存储有网络中各个节点的信息,担当入网络中的协调器的角色,主要任务就是组建和维护一个网络,收集网络中各个节点发出的信息,通过串口把数据传到上位机。
(4)上位机主要用于接收协调器节点发来的数据信息。
主要功能就是数据的存储、接收和显示,并作进一步处理和显示。
六、研究过程
(1)系统总体设计
智能窗帘控制系统主要由微处理器模块、光线感应模块、温度湿度感应模块、用户按键选择模块、信息LED显示模块、步进电机驱动模块六部分组成。
通过ZigBee网络,用户可以用按键对居室内的所有窗帘进行集中管理和控制。
当系统没有接收到到用户的指令,处于默认工作状态时,可以通过光线采集,进行自动控制,完成窗帘的开放与闭合,保障居室的舒适度。
(2)系统硬件设计
微控制器模块:
CC2530非常适用于智能窗帘控制系统,该微控制器模块是整个系统的核心部分,完成对各个模块的控制以及协调整个系统的正常运转,同时也是组建智能家居内部网络的关键。
光敏感应模块:
光敏二极管接口电路,主要由光敏二极管和PCF8591组成,PCF8591主要由总线接口电路、寄存器、逻辑控制电路、比较器和驱动电路等几部分组成。
光敏二极管将光信号转换为模拟电信号输入到芯片PCF8591进行模数转换,通过PCF8591内部I2C总线,将转换后的数字信号通过函数转换得到能代表光强度的量,由PCF8591的第15脚送出,通过总线送到CC2530控制电机正反转,达到对窗帘的开关控制。
(3)系统软件设计
CC2530微控制器模块主要完成对控制信号的接受与任务的执行,并完成了与ZigBee智能网关进行通信的功能。
当程序初始化后进行对控制信号的检测,执行用户发来的命令,驱动电正反转进行窗帘的开关控制。
若没有检测到用户或者来自智能网管的信号,则进入自动模式,根据光线自动调整窗帘的开放与闭合,确保环境的舒适性。
Zigbee光照采集控制系统窗体界面功能的实现方法:
定义和使用类对象、Mywidget.cpp文件中方法的框架结构、方法说明(包括打开串口方法、关闭串口方法、读串口数据方法、setlightSlot方法、手动模式选项处理方法、联动模式选项处理方法、手动模式下灯光控制方法、手动模式下的窗帘控制方法)。
七、系统调试
在实验室环境下通过测试,系统实现了对于居室内窗帘的自动控制,根据温湿度自行调节窗帘的开关,光照强度强时,窗帘关起,反之,湿度低时,窗帘关起,反之开启,并完成了智能窗帘节点与ZigBee智能网关的通信,可以通过接受用户和智能网关的指令进行调节。
八、总结及体会
经过一个星期多的改进,本系统最终调试成功,从总体方案的确定直到最后调试通过,进行了相关的理论知识的学习,阅读了大量国内外相关领域的文献资料,从各个单独模块设计,到最后整体组合,前后经过了大量的实验,基本完成了方案的设计。
本课题通过对智能家居数据采集控制系统的研究与开发,主要取得了以下的成果在详细分析了现有的各种家居数据采集控制系统的解决方案基础上,针对目前的需求以及系统的特点,提出了适合本系统的总体方案。
分析了本系统应具有的功能,采用模块化的设计思想划分了系统的功能模块。
分成数据采集部分,数据传输部分以及控制中心部分,各部分通过基于巧标准的网络无线连接,实现了对家具各种数据的采集、智能化控制以及各种数据的储存。
系统采用了基于标准的智能遥控器,为整个系统的控制提供了巨大的便利,推动了智能家居远程控制的发展。
本课程设计由于时间以个人水平的限制,加上随着研究工作的不断深入,越发感到许多艰巨而有意义的内容急需改进和完成,下一步的工作个人认为从以下几方面展开一是上位机界面不够智能化和直观化,系统实时性有待改进,今后准备采用基于的嵌入式系统的处理器控制协调器,采用触摸屏液晶屏作为人机界面。
二是继续深入研究印照明灯具的调光系统,重点在于恒流驱动的设计。
改善包括闪烁、发光不均匀、音频噪声以及闪动等调光过程中遇到的问题,为下一代照明系统应用于智能家居系统中作出努力。
三是智能家居远程控制,继续深入研究基于标准的遥控器的设计,使得整套系统更加智能、高效和便携,为下一代遥控器应用于智能家居系统中作出努力。
在建立这样一个平台后,我们便一可以依照研究目的的不同,更改传感器及应用程序,为进一步的摺能家居数据采集控制系统打下了坚实的基础,推动物联网技术的发展,真正的实现“物物相连,感知世界”。
九、参考文献
1.吴培亚;王钢;;《基于ZigBee的智能家居远程监控系统的设计与实现》[J];微型机与应用;2012年08期
2.童晓渝;房秉毅;张云勇;;《物联网智能家居发展分析》[J];移动通信;2010年09期
3.陈耿新;陈鸿彬;龚绿绿;;《基于物联网的人性化智能家居系统研究》[J];自动化与信息工程;2013年
4.龚磊;刘向凤;冯婷婷;;《基于物联网技术的智能家居远程查询控制系统》[J];广东通信技术;2012年12期06期
5.夏军;唐民钦;;《基于ZigBee技术的智能窗帘控制器设计》[A];广西计算机学会2013年学术年会论文集[C];2013年
6.李志方;钟洪声;;《CC2530的分布式无线数据采集系统设计》[J];单片机与嵌入式系统应用;2011年09期
7.吕芳芳;佟国香;谭健;;《基于CC2530的智能家居控制系统》[J];信息技术;2014年06期
8.沈星星;《基于ZigBee的智能家居系统关键技术的研究》[D];南京邮电大学;2011年
十、部分实验代码
#include"mydialog.h"
#include"ui_mydialog.h"
MyDialog:
:
MyDialog(QWidget*parent):
QDialog(parent),
ui(newUi:
:
MyDialog)
{
ui->setupUi(this);
ui->closeMyComBtn->setEnabled(false);//开始“关闭串口”按钮不可用
ui->btnCurtain->setEnabled(false);
ui->btnLed->setEnabled(false);
ui->rbtAuto->setEnabled(false);
ui->rbtshoudong->setEnabled(false);
connect(this,SIGNAL(setLight()),this,SLOT(setLightStates()));
IsAuto=false;
IsCurtain_on=false;
IsLed_on=false;
ckLed=false;
ckCurtain=false;
}
MyDialog:
:
~MyDialog()
{
deleteui;
}
voidMyDialog:
:
on_openMyComBtn_clicked()
{
QStringportName=ui->portNameComboBox->currentText();//获取串口名
myCom=newWin_QextSerialPort(portName,QextSerialBase:
:
EventDriven);
//定义串口对象,并传递参数,在构造函数里对其进行初始化
isOpen=myCom->open(QIODevice:
:
ReadWrite);//打开串口
if(ui->baudRateComboBox->currentText()==tr("9600"))//根据组合框内容对串口进行设置
myCom->setBaudRate(BAUD9600);
elseif(ui->baudRateComboBox->currentText()==tr("115200"))
myCom->setBaudRate(BAUD115200);
if(ui->dataBitsComboBox->currentText()==tr("8"))
myCom->setDataBits(DATA_8);
elseif(ui->dataBitsComboBox->currentText()==tr("7"))
myCom->setDataBits(DATA_7);
if(ui->parityComboBox->currentText()==tr("无"))
myCom->setParity(PAR_NONE);
elseif(ui->parityComboBox->currentText()==tr("奇"))
myCom->setParity(PAR_ODD);
elseif(ui->parityComboBox->currentText()==tr("偶"))
myCom->setParity(PAR_EVEN);
if(ui->stopBitsComboBox->currentText()==tr("1"))
myCom->setStopBits(STOP_1);
elseif(ui->stopBitsComboBox->currentText()==tr("2"))
myCom->setStopBits(STOP_2);
myCom->setFlowControl(FLOW_OFF);
myCom->setTimeout(500);
connect(myCom,SIGNAL(readyRead()),this,SLOT(readMyCom()));////信号和槽函数关联,当串口缓冲区有数据时,进行读串口操作
ui->openMyComBtn->setEnabled(false);//打开串口后“打开串口”按钮不可用
ui->closeMyComBtn->setEnabled(true);//打开串口后“关闭串口”按钮可用
ui->btnCurtain->setEnabled(true);
ui->btnLed->setEnabled(true);
ui->rbtAuto->setEnabled(true);
ui->rbtshoudong->setEnabled(true);
ui->baudRateComboBox->setEnabled(false);//设置各个组合框不可用
ui->dataBitsComboBox->setEnabled(false);
ui->parityComboBox->setEnabled(false);
ui->stopBitsComboBox->setEnabled(false);
ui->portNameComboBox->setEnabled(false);
}
voidMyDialog:
:
on_closeMyComBtn_clicked()
{
myCom->close();
ui->openMyComBtn->setEnabled(true);//关闭串口后“打开串口”按钮可用
ui->closeMyComBtn->setEnabled(false);//关闭串口后“关闭串口”按钮不可用
ui->baudRateComboBox->setEnabled(true);//设置各个组合框可用
u