基于zigbee无线光照传感器的设计说明.docx
- 文档编号:10345657
- 上传时间:2023-02-10
- 格式:DOCX
- 页数:38
- 大小:188.02KB
基于zigbee无线光照传感器的设计说明.docx
《基于zigbee无线光照传感器的设计说明.docx》由会员分享,可在线阅读,更多相关《基于zigbee无线光照传感器的设计说明.docx(38页珍藏版)》请在冰豆网上搜索。
基于zigbee无线光照传感器的设计说明
本科毕业论文(设计)
题目基于zigbee无线光照传感器的设计
学生
指导教师
年级
专业电子信息工程
二级学院信息工程学院
信息工程学院
2015年5月
重声明
本人的毕业论文(设计)是在指导教师的指导下独立撰写完成的。
如有剽窃、抄袭、造假等违反学术道德、学术规和侵权的行为,本人愿意承担由此产生的各种后果,直至法律责任,并愿意通过网络接受公众的监督。
特此重声明。
毕业论文(设计)作者(签名):
年月日
基于zigbee无线光照传感器的设计
摘 要
传感器是一种检测装置,它能感受到被测量的信息,同时将感受到的信息,按一定的规律转变成为电信号或者是其他所需要形式的信息输出,以达到信息的传输、处理、存储、显示、记录和控制等要求。
其中光照传感器是通过硅光电池在不同光照度下产生的不同电流来实现监测光照度的作用。
光照传感器能够测定一的地方的光照度,将其用具体的数值直观的表现出来以方便测定和记录该地的光照度。
本设计需要通过对普通光照传感器的驱动程序进行移植,通过CC2530模拟IIC驱动GY-30,实现CC2530驱动光照传感器,完成对光照度的测量。
同时利用Zigbee通讯协议,通过CC2530构建Zigbee网组,做到发送模块发送数据,接收模块接收数据的无线传输,使接收模块通过串口通讯将数据传送到上位机上,并在界面上显示测量值。
最终实现光照传感器数据的无线传输和数据显示。
关键词:
zigbee无线光照度光照传感器CC2530
TheDesignofWirelessIlluminativeSensorBasedonZigbee
HuangChongzhiDirectedbyJiangShaojunLecturer
Abstract
Thesensorisadetectiondevice,itcanfeelthemeasuredinformation,anditwillfeeltheinformationatthesametime,accordingtocertainrulesintoelectricalsignalsorotherrequiredinformationintheformofoutput,inordertoachievetheinformationtransmission,processing,storage,display,recordandcontrolrequirements.Thelightsensorisdifferentcurrentthroughthesiliconphotocellindifferentlightintensityproducedunderilluminationtoachievemonitoring.Theilluminationlightsensorcandetermineaplace,thespecificvaluedemonstratedtofacilitatethedeterminationandilluminationofthelandrecords.
Thisdesignneedstobetransplantedbythedriverofordinarylightsensors,lightsensorstoachieveCC2530driver,completemeasurementofillumination.Atthesametime,theuseofZigbeecommunicationprotocol,throughtheconstructionofCC2530Zigbeenetwork,wirelesstransmissionofdatatoeachnode,andcandisplaythemeasuredvalueattheinterface.Thefinalrealizationoflightwirelesstransmissionofsensordataanddisplay.
KEYWORDS:
zigbeewirelessluxThelightsensorCC2530
前 言
随着科技的发展,人们在生产生活上注意的方面也越来越多,光照度就是其中一个。
生活中的方方面面都需要对周围环境的光照度进行监测,如农业种植、生产车间、仓库、机房照明、智能楼宇自控、户外照明、交通灯控制等涉及光照度、灯光照明、自然光控制的各种场合包含了衣食住行各个方面,这些场合都需要利用光照传感器来对光照度进行监测。
本设计通过结合zigbee和光照传感器,在使用CC2530为核心模块的情况下,除去了数据连接线,同时由于使用CC2530在传感器的体积上有所减小。
本设计可以通过在不同位置放置发送模块,同时监测多点的光照度,通过zigbee传输数据在主机上汇总显示,实现观察和记录,由于数据能够保存一定时间,便于数据的对比,分析和运用。
随着智能家具和无线技术的发展和运用,无线光照传感器的运用会越来越广,市场的需求也会越来越大。
在本设计的开发过程中对使用的模块进行功能设计。
主要包括以下方面:
1)CC2530主程序编写实验:
实现数据的处理,分析和传送;
2)Zigbee技术实验:
模块间数据传送和接收;
3)界面运用程序实验:
实现数据显示和记录功能。
预计按着时间计划和目标进度能完成基于zigbee无线光照传感器的设计与开发。
1背景介绍
1.1选题背景
由指导老师提供了本次的设计题目,主要需要解决以下的问题:
1)怎么编写CC2530控制程序;
2)怎么实现多个终端机的添加;
3)怎么利用和编写网络协议实现zigbee无线通讯;
4)怎么使用串口协议;
5)怎么使用Qt软件编写界面;
6)怎么使用Qt软件与数据库结合,实现光照度的历史数据的存取。
最后完成并实现基于zigbee无线光照传感器的开发与设计。
现在的光照传感器都是通过数据线将传感器和显示器连接在一起,或者是传感器和显示器一体。
这两种光照传感器中,有线的传感器不方便布置,数据线的放置受环境影响比较大,占地比较广。
而一体光照传感器则不便于观察,在使用围上较有线传感器小。
无线光照传感器使用zigbee作为通讯方式,能够实现不用布线,节省了材料,降低成本,同时也方便放置和观察。
1.2研究目的和意义
光照强度对生活的影响不断的加强,对光照强度的判断不再基于刺眼,太暗等字眼,要求对光照强度的判断有更加精细,准确的判断。
此系统基于Zigbee无线通讯技术,通过发送模块将该点光照度发送到接收模块上,由接受模块将数据上传,实现同时监测多点光照度。
该设计可以添加到其他设备中,运用围广泛。
Zigbee作为一种新型的无线通信技术具有稳点,快速,小巧的优点,是当今无线通信技术领域的闪光点。
因此研究上具有巨大前景和意义。
在设计与开发过程中运用了Zigbee技术,硅光电池技术,采集电路模块等,可以刚好的熟悉和掌握各模块的特点与实际运用。
通过编写采集程序和数据处理程序,可以熟悉C语言编程。
通过模块间的通讯实现,可以了解Zigbee技术的通讯方式和特点。
2设计要求
由发送模块使用光照传感器测得光照度,通过zigbee发送数据到接收模块在显示界面上显示,实现光照度的实时监控。
通过CC2530片上系统构建的网络平台稳定,功耗低。
通过Qt构建显示界面,操作人员可在显示界面上直接读取测试值,结合数据库可以实现数据的储存。
省去数据线的构造,实现模块小巧化。
保证数据在传输过程中的稳定,确保数据的准确性和真实性。
2.1系统功能
1)通过Qt平台构建显示界面;
2)能够通过zigbee无线模块实现数据发送与接受;
3)能通过光照传感器检测光照度;
4)利用CC2530实现模块添加和减少;
5)利用Qt与数据库结合实现数据的在一定时间的保存。
2.2系统基本参数
1)CC2530核心模块工作电压:
2V~3.6V
2)Zigbee使用IEEE802.15.4通讯协议,全球通用2.4GHz频段
3)本系统使用C语言编写主要程序
4)使用Qt平台构建显示界面,可以储存数据
5)光照传感器模块需要使用独立电源
6)无线传输有效围:
0~80m
3方案验证
3.1光照传感器数据采集方案
对于光照传感器模块数据发送有两种参考方案:
第一个方案是多个光照传感器接一个CC2530核心,由一个核心转换所有光照传感器的信息,处理后发送到接收模块。
第二个方案是一个光照传感器接一个CC2530核心,处理后发送到接收模块。
第一个方案优点是使用的CC2530核心较少,成本低;缺点是在光照传感器和CC2530发送模块之间需要导线连接,多个光照传感器连接一个CC2530发送模块容易接线混乱,同时扩大监测围需要增加连接线长度,在一定程度上增加了成本。
第二个方案优点是一个光照传感器接一个CC2530发送模块,不用考虑连接线的增加,同时因为使用多个CC2530,是构建的网络平台更加稳定;缺点是每增加一个光照传感器就需要同时增加一个CC2530模块,成本较高。
比较方案一和方案二,方案一需要连接线,和设计要求不符合,因此选择方案二,使用一个光照传感器连接一个CC2530模块。
虽然提高了成本,但是在使用上更加方便,更加符合无线的要求。
3.2模块间数据传输方案
在现阶段模块间传输方案主要有两种方案,方案一是通过串口传输,利用串口传输将光照传感器测得的光照度数据传输给系统控制,方案二是利用目前流行的短距离无线组网技术即Zigbee技术,来对光照度数据进行传输。
串口传输适用于较短距离的数据传输,传输时简单方便,传输速度快,但在本设计系统中,需要满足无线传输的特点,所以利用串口传输来进行光照度数据的传输对于本设计而言,就显得不合适。
Zigbee作为一种提供控制或传感器等电子元器件之间无线连接的无线通信技术,能够通过使数千个微小的Zigbee模块之间相互协调从而实现通信,这些Zigbee模块自身的耗能很少,并且能够以接力一样的方式通过无线电波将数据从一个Zigbee模块传到另一个Zigbee模块,所以能够在传输距离比较远的时候,通过多个Zigbee模块进行数据传输。
而且Zigbee技术的通信效率也是非常之高的,这样的优点正好适合于本设计对于光照传感器无线传输光照度数据的要求。
对比方案一和方案二,本设计中对于光照度数据的传输,利用Zigbee技术进行温湿度数据的传输时比较好的方案。
3.3模块选择方案
3.3.1核心模块的选择
本设计需要构建无线通讯平台,要求网络节点强大,稳定,受干扰小。
同时考虑成本和实用方面,要求一个体积小,成本低,能满足zigbee功能需求的核心块。
CC2530作为用于解决使用IEEE802.15.4协议的ZigBee和RF4CE应用的一个真正的片上系统(SoC)。
它能够以非常低的总的材料成本建立强大的网络节点。
CC2530拥有和领先的RF收发器同样的优良性能,并且安装有标准的增强型8051CPU,系统具有编程闪存的能力,8-KBRAM以及其它强大的功能。
CC2530拥有的32/64/128/256KB四种不同闪存使CC2530所具备不同运行模式,使得它非常适合有超低功耗要求的系统。
同时因为运行模式之间的转换时间短暂,所以能进一步保证了CC2530低能源消耗。
因此本设计最后选择CC2530来作为核心模块,构建所需要的网络节点。
3.3.2光照传感器的选择
本设计中使用GY-30光照传感器。
GY-30光照传感器采用ROHM原装BH1750FVI芯片,其光照度围是0-65535lx,它自带置16bitAD转换器,可以直接输出数字,省略负责的计算,省略了标定。
作为主流光照传感器,GY-30具有不区分环境光源,接近视觉灵敏度的分光特性,对广泛的亮度达到1勒克斯的高精度,体积小和成本低的优点。
并且它的供电电源为3~5V,能够与CC2530很好的配合。
最终设计确定使用GY-30光照传感器做设计用光照传感器,用于测定所需光照度。
4硬件设计
4.1整体框架
系统整体框架如图4-1所示,使用CC2530片上系统作为zigbee在体。
通过zigbee网络在两块CC2530之间传递数据,实现数据的流通;利用zigbee网络的特性实现模块的添加和减少。
图4-1整体框架图
4.2CC2530片上系统设计
通过CC2530F32/64/128/256四个不同闪存版本的切换使CC2530具有不同的运行模式,使其能够适应超低功耗要求的系统。
它可应用于楼宇自动化,照明系统,工业控制和监测,消费型电子,医疗保健等领域。
使用的CC2530需要连接GY-30,模拟IIC串口驱动,要重新配置引脚。
对此要理解CC2530的各引脚连接到了什么地方,CC2530核心版电路如图4-2所示。
图4-2CC2530核心电路图
对于该系统使用的电源,需要满足CC2530片上系统的规定电压,同时要满足驱动光照传感器的光照电压。
接收模块可通过USB接线由上位机提供。
发送模块需要使用独立电源,本设计中使用手机12V移动电源对发送模块进行供电。
对12V电源需要进行转换,转换电路如图4-3。
图4-3电压转化电路
4.3GY-30光照传感器电路设计
GY-30光照传感器采用BH1750FVI芯片,光照度围大概是0-65535lx。
同时自带置16bitAD转换器,能够直接输出数字,省略负责计算的部分,省略也了标定。
而且GY-30具有不区分环境光源,接近视觉灵敏度的分光特性,对广泛的亮度达到1勒克斯的高精度的特点。
使用3~5V供电电源,有两个IIC总线引脚,分别为SCL时钟引脚和SDA数据引脚;一个BH1750IIC设备地址引脚ADDR。
同时还带有低功耗3.3V稳压器(3~5V供电兼容)和电平转换(3~5V系统通讯兼容)。
GY-30与CC2530之间的数据传输主要靠SCL和SDA两个引脚连接,通过拉高和拉低两个连接线电位,由SDA引脚产生的上升沿和下降沿来控制起始信号和停止信号。
SDA引脚同时也作为应答信号的接收与发送口。
核心电路如图4-4所示。
图4-4GY-30核心电路图
要驱动GY-30光照传感器需要一定的输出功率。
因为使用CC2530底板,存在引脚占用的现象,可能使输出功率不能够满足驱动GY-30光照传感器,所以需要编写一个简单的小灯闪烁程序,通过小灯时候闪烁来测试功率是否能够满足驱动GY-30光照传感器的要求。
经过测试,最终选定用P1_3和P1_4两个引脚接口来连接驱动GY-30光照传感器。
如图4-5所示。
图4-5GY-30连接示意图
5软件设计
5.1编写环境搭建
5.1.1环境搭建
1)第一步需要在PC机上安装IAR用于Zigbee程序的编写和下载;
2)打开IAR,新建工程开始程序的编写;
3)设置程序参数,确保程序参数和使用的CC2530片上系统一致;
4)编译程序,成功后将程序分别下载到发送模块和接收模块中。
安装SFR软件,完成后连接仿真器并安装驱动程序。
完成后在SRT软件窗口可看到当前连接的CC2530模块,该软件能够保证PC机同时连接多个CC2530模块,方便程序的下载。
软件运行完成后可正常使用CC2530。
5.2GY-30光照传感器驱动设计
设计中需要使用CC2530来驱动作为光照传感器的GY-30。
因为曾在STY89C51上使用过GY-30,所以要做的是将89C51上驱动GY-30的程序进行修改和移植,来实现利用CC2530驱动GY-30测量光照度。
使用在89C51上的驱动程序作为基础程序,在此程序的基础上进行修改移植。
驱动GY-30需要对接收到的数据进行处理,保证输出的数据满足需要,数据在经过发送后在接收模块上需要经过数据合成,将接收数据合成为符合显示要求的光照数据,方便在Qt界面上显示,部分合成代码如下:
dis_data=BUF[0];
dis_data=(dis_data<<8)+BUF[1];//合成数据,即光照数据
temp=(float)dis_data/1.2;
驱动GY-30时需要设置相应的端口,选取P1_3和P1_2做为光照传感器与CC2530的连接口,设定将光照传感器的SCL时钟引脚,SDA数据引脚分别和P1_3,P1_2对应。
在选取串口后需要测试,测试串口是否能够正常使用时,使用控制小灯亮灭的循环方式,程序如下:
while
(1)
{
SCL=1;SDA=1;
halMcuWaitMs(5);
SCL=0;SDA=0;
halMcuWaitMs(5);
}
在光照传感器GY-30采集到数据后,还需要使用CC2530读取其中数据,才能将光照传感器的数据进行发送,需要编写对应的读取程序,对应的部分读取代码如下:
ucharSingle_Read_BH1750(ucharREG_Address)
{
ucharREG_data;
BH1750_Start();//起始信号
BH1750_SendByte(SlaveAddress);//发送设备地址+写信号
BH1750_SendByte(REG_Address);//发送存储单元地址,从0开始
BH1750_Start();//起始信号
BH1750_SendByte(SlaveAddress+1);//发送设备地址+读信号
REG_data=BH1750_RecvByte();//读出寄存器数据
BH1750_SendACK
(1);
BH1750_Stop();//停止信号
returnREG_data;
成功读取数据后,数据将由CC2530发送模块通过zigbee通讯发送到CC2530接收模块,由CC2530接收模块处理后传输到上位机,最终在Qt界面上显示出来。
驱动流程图如图5-1所示。
图5-1GY-30驱动流程图
5.3数据传输
设计中一共使用了两种传输方式,一种是各节点之间的Zigbee无线传输,另一种是下位机与上位机之间的串口传输。
5.3.1Zigbee传输
Zigbee无线传输是本设计中个节点之间的传输方式。
CC2530模块分为接收模块和发送模块:
接收模块接收数据,与上位机连接,将接收到的数据传输到上位机上,并通过Qt界面显示数据;发送模块将GY-30光照传感器测量的数据发送到接收模块。
两种模块将通过zigbee传输数据。
在两个模块间的数据传输需要设定好发送频率,发送频率不能太高,频率太高可能使得光照传感器还没有测得数据就发送信息,使得接收到的数据成为无用数据,影响数据的处理。
发送频率太低,会造成数据的延时,使得数据的真实性受影响,不能做到数据的实时显示。
因此在模块间数据传输时,将数据的发送频率设定为每2秒发送一次,设定代码为:
halMcuWaitMs(2000),这样不会造成数据延时的同时,也保证了接收到数据都是有效数据,便于记录和使用。
模块间的zigbee传输可用图5-2表示。
图5-2模块间传输方式
不同模块直接的运行模式可简单的表示为:
初始化→发送(接收)数据的一个简单循环。
循环开始后,模块间不断的发送与接收,保证数据的连续性。
同时也避免了出现连接失败后需要重新设置连接。
接收模块反复判断是否有数据传入,同时将传入的数据发送给上位机;而发送模块则不断的发出信号,将从光照传感器读取到的数据发送给接收模块。
本设计使用了多个发送模块,在zigbee无线传输上存在数据对应问题,需要解决数据对应的问题,以方便界面显示。
解决方案有:
方案一:
对每个发送模块设定一个特定的地址,接受数据后由接收模块判断发送地址,实现数据的对应。
方案二:
接收模块上设定函数,对每个数据指定一个随机地址,实现数据的对应。
方案三:
在发送模块上添加程序,模块在发送数据时额外发送一个特定字符,实现数据的对面。
以上三个方案中,方案一设定特定地址的方法需要在接收模块上添加所有发送模块上的地址,工程量过大,且CC2530芯片储存有限,不能保存所以地址。
方案二不需要占用太多存储空间,但是容易造成数据混乱,是的显示的数据对应不一定是发送数据的模块,不方便数据的记录。
方案三不占用存储空间,且编写简单,对应明确不易出现数据对应混乱,所以设计选择方案三解决zigbee无线传输过程中数据对应的问题。
5.3.2串口传输
串口传输是将接收模块接收到的数据传输给上位机,实现数据在Qt界面上的显示。
在程序的编写上,需要设置对应波特率和频率。
编写串口函数,需要设定对应CC2530的晶振和相应波特率,部分代码如下:
CLKCONCMD&=~0x40;//设置系统时钟源为32MHZ晶振
CLKCONCMD&=~0x47;//设置系统主时钟频率为32MHZ
U0CSR|=0x80;//串口设置为UART方式
U0BAUD|=59;//波特率设为19200
设置好对应的串口连接方式,固定波特率,方便连接上位机时对串口的选取,减少了干扰的可能性。
5.4系统界面和Qt编写
5.4.1编写环境搭建
1)将压缩包解压到指定位置D/Qt/文件夹下;
2)右击本地电脑,选着属性进入修改环境变量,分别添加Path、QTDIR和QMAKESPEC三个变量;
3)运行D/Qt/bin下的qtcreator.exe,进入界面设计;
新建工程,按照要求开始设计界面。
5.4.2界面结构
系统界面使用Qt平台编写,主要分为实时显示和历史记录两大部分。
两部分实现系统对采集到的光照度数据的显示和对历史数据的显示,其中在历史数据部分有对数据整合后,求多点平均值的数据显示,这样能够对测试地的整体光照度做出总结,方便对数据的分析和利用。
在历史记录界面设有删除历史数据、删除当前数据和到出数据功能,确保数据的使用和保存。
界面结构框图如图5-3所示。
图5-3界面结构
5.4.3QtCreator简介
本次设计使用QtCreator编写显示界面。
QtCreator包括项目生成向导、高级C++代码编辑器、浏览文件及类的工具、集成了QtDesigner、QtAssistant、QtLinguist等同系列的软件,还有图形化GDB调试前端和集成qmake构建工具等。
QtCreator可以帮助刚开始使用Qt的用户更快速上手并且设计、运行项目。
同时QtCreator使用了功能强大的C++代码编辑器能够快速编写代码,拥有着语法标识和代码完善功能,以及在输入时进行静态代码检验以及提示样式上下文相关的帮助代码折叠括号匹配和括号选择模式高级编辑功能。
QtCreator在源代码的管理方面,使用浏览工具来管理源代码,集成了领先的版本控制软件,包括Git、Perforce和Subversion开放式文件,无须知晓确切的名称或位置搜索类和文件跨不同位置或文件沿用符号在头文件和源文件,或在声明和定义之间切换。
并且集成了特定于Qt的功能,如信号与槽图示调试器,对Qt类结构可一目了然集成了QtDesigner可视化布局和格式构建器只需单击一下就可生成和运行Qt项目。
5.4.4界面概述
本程序用QtCreator软件进行编写。
利用QT编写好的上位机程序可以在基于Windows操作系统下运行的,编写好的上位机程序,可以通过程序打包软件对编
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 zigbee 无线 光照 传感器 设计 说明