基于物联网的智能仓储温湿度检测系统.docx
《基于物联网的智能仓储温湿度检测系统.docx》由会员分享,可在线阅读,更多相关《基于物联网的智能仓储温湿度检测系统.docx(22页珍藏版)》请在冰豆网上搜索。
基于物联网的智能仓储温湿度检测系统
*******************
实践教学
*******************
兰州理工大学
计算机与通信学院
2014年春季学期
物联网综合应用实践课程设计
题目:
基于物联网的智能仓储温湿度检测系统
专业班级:
姓名:
学号:
指导教师:
成绩:
目录
摘要3
前言4
一基本原理5
1.1硬件方面5
1.1.1芯片SHT10介绍5
1.1.2CC2530介绍7
1.2软件方面10
1.2.1zigbee协议介绍10
1.2.2zigbee协议栈结构11
二系统分析15
2.1程序流程图15
2.2具体步骤15
三详细设计16
3.1总体软件结构16
3.2硬件模块设计19
3.3总体结构软件设计19
四总结27
六致谢29
摘要
针对现有仓库温湿度检测存在的问题,结合无线传感器网络技术,提出一种基于ZigBee技术的仓库温湿度采集系统设计方法。
该系统采用Zigbee无线通信技术结合传感器,通过运用Zigbee协议架构组建无线传感网络,实现主从节点的数据采集和传输,以及一点对多点,两点之间的通信。
并详细阐述了基于Zigbee协议栈的中心节点和终端节点的协议传输,主要是从Zigbee协议栈网络层里AODV路由协议着手,阐述在网络层如何通过AODV路由协议进行节点间的连接以及数据的收发。
关键字:
仓储环境监测;CC2530;Zigbee协议栈;无线传感网络
前言
防潮、防霉、防腐、防爆是仓库日常工作的重要内容,是衡量仓库管理质量的重要指标。
它直接影响到储备物资的使用寿命和工作可靠性,为保证日常工作的顺利进行,首要问题是加强仓库内温度与湿度的监测工作,但传统的方法采用测试器材,通过人工进行检测,这种人工测试方法费时费力、效率低,且测试的温度及湿度误差大,随机性大。
因此,仓库的测控无线化、智能化和信息化管理已成为仓库储备技术的发展趋势。
本设计是一种基于CC2530和数字温湿度传感器的智能仓储管理系统。
即该系统是采用ZigBee无线通信技术结合传感器,并通过运用ZigBee协议构架组建无线传感网络,来实现主从节点的数据采集和传输的,同时,需要在网络层通过AODV路由协议来进行节点间的连接以及数据的收发。
总之,基于无线传感技术的无线网络传感器是一种将传感器、控制器、计算能力、通信能力完美的结合于一身的嵌入式设备。
它们跟外界的物理环境交互,适时地采集信息,并且将采集到的信息通过无线传感网络传送给远程用户。
无线网络传感器一般是由一个低功耗的微控制器(MCU)和若干个存储器,无线电/光通信装置、传感器等组件所集成的,通过传感器及通信装置和它们所处的外界物理环境进行交互。
一.基本原理
本实验将使用CC2530读取温湿度传感器SHT10的温度和湿度数据,并通过CC2530内部的ADC得到光照传感器的数据,将采样到的温湿度及光照传感器采集数据通过串口发送到CORTEXA8DB开发板上。
在CORTEXA8DB开发板上通过软件将采集到的光、湿度、温度值通过曲线描述出来。
其中对温湿度的读取是利用CC2530的I/O(P1.0和P1.1)模拟一个类IIC的过程。
其中该系统所使用的SHT10是一款高度集成的温湿度传感器芯片,提供全标定的数字输出。
CORTEXA8DB开发板作为最终的显示设备.
1.1硬件方面
1.1.1芯片SHT10介绍
SHT10是一款高度集成的温湿度传感器芯片,提供全标定的数字输出。
它采用专利的CMOSens技术,确保产品具有极高的可靠性与卓越的长期稳定性。
传感器包括一个电容性聚合体测湿敏感元件、一个用能隙材料制成的测温元件,并在同一芯片上,与14位的A/D转换器以及串行接口电路实现无缝连接。
SHT10引脚特性如下:
1.VDD,GNDSHT10的供电电压为2.4~5.5V。
传感器上电后,要等待11ms以越过“休眠”状态。
在此期间无需发送任何指令。
电源引脚(VDD,GND)之间可增加一个100nF的电容,用以去耦滤波。
2.SCK用于微处理器与SHT10之间的通讯同步。
由于接口包含了完全静态逻辑,因而不存在最小SCK频率。
3.DATA三态门用于数据的读取。
DATA在SCK时钟下降沿之后改变状态,并仅在SCK时钟上升沿有效。
数据传输期间,在SCK时钟高电平时,DATA必须保持稳定。
为避免信号冲突,微处理器应驱动DATA在低电平。
需要一个外部的上拉电阻(例如:
10kΩ)将信号提拉至高电平。
上拉电阻通常已包含在微处理器的I/O电路中。
向SHT10发送命令:
用一组“启动传输”时序,来表示数据传输的初始化。
它包括:
当SCK时钟高电平时DATA翻转为低电平,紧接着SCK变为低电平,随后是在SCK时钟高电平时DATA翻转为高电平。
后续命令包含三个地址位(目前只支持“000”,和五个命令位。
SHT10会以下述方)式表示已正确地接收到指令:
在第8个SCK时钟的下降沿之后,将DATA拉为低电平(ACK位)。
在第9个SCK时钟的下降沿之后,释放DATA(恢复高电平)。
测量时序(RH和T):
发布一组测量命令(‘00000101’表示相对湿度RH,‘00000011’表示温度T)后,控制器要等待测量结束。
这个过程需要大约11/55/210ms,分别对应8/12/14bit测量。
确切的时间随内部晶振速度,最多有±15%变化。
SHTxx通过下拉DATA至低电平并进入空闲模式,表示测量的结束。
控制器在再次触发SCK时钟前,必须等待这个“数据备妥”信号来读出数据。
检测数据可以先被存储,这样控制器可以继续执行其它任务在需要时再读出数据。
接着传输2个字节的测量数据和1个字节的CRC奇偶校验。
需要通过下拉DATA为低电平,uC以确认每个字节。
所有的数据从MSB开始,右值有效(例如:
对于12bit数据,从第5个SCK时钟起算作MSB;而对于8bit数据,首字节则无意义)。
用CRC数据的确认位,表明通讯结束。
如果不使用CRC-8校验,控制器可以在测量值LSB后,通过保持确认位ack高电平,来中止通讯。
在测量和通讯结束后,SHTxx自动转入休眠模式。
通讯复位时序:
如果与SHTxx通讯中断,下列信号时序可以复位串口:
当DATA保持高电平时,触发SCK时钟9次或更多。
在下一次指令前,发送一个“传输启动”时序。
这些时序只复位串口,状态寄存器内容仍然保留。
1.1.2CC2530介绍
CC2530是基于2.4-GHzIEEE802.15.4、ZigBee和RF4CE上的一个片上系统解决方案。
其特点是以极低的总材料成本建立较为强大的网络节点。
CC2530芯片结合了RF收发器,增强型8051CPU,系统内可编程闪存,8-KBRAM和许多其他模块的强大的功能。
如今CC2530主要有四种不同的闪存版本:
CC2530F32/64/128/256,分别具有32/64/128/256KB的闪存。
其具有多种运行模式,使得它能满足超低功耗系统的要求。
同时CC2530运行模式之间的转换时间很短,使其进一步降低能源消耗。
CC2530包括了1个高性能的2.4GHzDSSS(直接序列扩频)射频收发器核心和1个8051控制器,它具有32/64/128kB可选择的编程闪存和8kB的RAM,还包括ADC、定时器、睡眠模式定时器、上电复位电路、掉电检测电路和21个可编程I/O引脚,这样很容易实现通信模块的小型化。
CC2530是一款功耗相当低的单片机,功耗模式3下电流消耗仅0.2μA,在32k晶体时钟下运行,电流消耗小于1μA。
CC2530芯片使用直接正交上变频发送数据。
基带信号的同相分量和正交分量由DAC转换成模拟信号,经过低通滤波,变频到所设定的信道上。
当需要发送数据时,先将要发送的数据写入128B的发送缓存中,包头是通过硬件产生的。
最后经过低通滤波器和上变频的混频后,将射频信号被调制到2.4GHz,后经天线发送出去。
CC2530有两个端口分别为TX/RX,RF端口不需要外部的收发开关,芯片内部已集成了收发开关。
CC2530的存储器ST-M25PE16是4线的SPI通信模式的FLASH,可以整块擦除,最大可以存储2M个字节。
工作电压为2.7v到3.6v。
CC2530温度传感器模块反向F型天线采用TI公司公布的2.4GHz倒F型天线设计。
天线的最大增益为+3.3dB,天线面积为25.7×7.5mm。
该天线完全能够满足CC2530工作频段的要求(CC2530工作频段为2.400GHz~2.480GHz)。
图1.CC2530芯片引脚
CC2530芯片引脚功能
AVDD128电源(模拟)2-V–3.6-V模拟电源连接
AVDD227电源(模拟)2-V–3.6-V模拟电源连接
AVDD324电源(模拟)2-V–3.6-V模拟电源连接
AVDD429电源(模拟)2-V–3.6-V模拟电源连接
AVDD521电源(模拟)2-V–3.6-V模拟电源连接
AVDD631电源(模拟)2-V–3.6-V模拟电源连接
DCOUPL40电源(数字)1.8V数字电源去耦。
不使用外部电路供应。
DVDD139电源(数字)2-V–3.6-V数字电源连接
DVDD210电源(数字)2-V–3.6-V数字电源连接
GND-接地接地衬垫必须连接到一个坚固的接地面。
GND1,2,3,4未使用的连接到GND
P0_019数字I/O端口0.0
P0_118数字I/O端口0.1
P0_217数字I/O端口0.2
P0_316数字I/O端口0.3
P0_415数字I/O端口0.4
P0_514数字I/O端口0.5
P0_613数字I/O端口0.6
P0_712数字I/O端口0.7
P1_011数字I/O端口1.0-20-mA驱动能力
P1_19数字I/O端口1.1-20-mA驱动能力
P1_28数字I/O端口1.2
P1_37数字I/O端口1.3
P1_46数字I/O端口1.4
P1_55数字I/O端口1.5
P1_638数字I/O端口1.6
P1_737数字I/O端口1.7
P2_036数字I/O端口2.0
P2_135数字I/O端口2.1
P2_234数字I/O端口2.2
P2_333数字I/O模拟端口2.3/32.768kHzXOSC
P2_432数字I/O模拟端口2.4/32.768kHzXOSC
RBIAS30模拟I/O参考电流的外部精密偏置电阻
RESET_N20数字输入复位,活动到低电平
RF_N26RFI/ORX期间负RF输入信号到LNA
RF_P25RFI/ORX期间正RF输入信号到LNA
XOSC_Q122模拟I/O32-MHz晶振引脚1或外部时钟输入
XOSC_Q223模拟I/O32-MHz晶振引脚2
1.1.3温湿度传感器模块
温湿度探头直接使用IIC接口进行控制,光敏探头经运放处理后输出电压信号到AD输入。
IIC接口将同时连接EEPROM以及温湿度传感器两个设备,将采用使用不同的IIC设备地址的方式进行区分。
其电路原理图如下所示:
图
(1)温湿度传感器模块原理图
使用10~12bit的AD采集器进行光敏信号采集,使用专用温湿度传感器
(IIC接口)进
行温湿度信号采集。
一次采样使用2字节描述,MSB方式,温湿度及光电传感器模块输出数据结构如下:
(1)仅采集温度信息
温度数据高字节,温度数据低字节。
(2)仅采集湿度信息
湿度数据高字节,湿度数据低字节。
(4)采集全部信息
温度数据高字节,温度数据低字节,湿度数据高字节,湿度数据低字节。
注意:
本指令一次测量,最多只上传1次采集数据,不支持连续采集数据上传。
1.2软件方面
1.2.1zigbee协议介绍
ZigBee协议标准采用分层结构,每一层为上层提供一系列特殊的服务:
数据实体提供数据传输服务;管理实体则提供所有其他的服务。
所有的服务实体都通过服务接人点SAP为上层提供接口,每个SAP都支持一定数量的服务原语来实现所需的功能。
ZigBee标准的分层架构是在OSI七层模型的基础上根据市场和应用的实际需要定义的。
其中IEEE802.15.4—2003标准定义了底层协议:
物理层(physicallayer,PHY)和媒体访问控制层(mediumaccesscontrolsub—layer,MAC)。
ZigBee联盟在此基础上定义了网络层(networklayer,NWK),应用层(applicationlayer,APL)架构。
在应用层内提供了应用支持子层(applicationsupportsub—layer,APS)和ZigBee设备对象(ZigBeedeviceobject,ZDO)。
应用框架中则加入了用户自定义的应用对象。
ZigBee的网络层采用基于AdHoc的路由协议,除了具有通用的网络层功能外,还应该与底层的IEEE802.15.4标准一样功耗小,同时要实现网络的自组织和自维护,以最大限度方便消费者使用,降低网络的维护成本。
应用支持子层把不同的应用映射到ZigBee网络上,主要包括安全属性设置、业务发现、设备发现和多个业务数据流的汇聚等功能。
ZigBee无线测温系统的组成及原理基于ZigBee技术的无线测温系统主要由基于ZigBee技术的底层无线传感器网络、远程数据传输网络以及功能完善的上位监控系统3部分组成,,该系统是由大量的传感器点、汇节点以及远程传输模块组成的分布式系统。
基于簇的分层结构具有天然的分布式处理能力,簇头就是分布式处理中心,即无线传感器网络的一个汇节点。
每个簇成员(传感器节点)都把数据传给簇头,数据融合后直接传给远程传输网络,中央控制中心通过远程传输网络与多个汇节点连接,汇节点和传感器节点之间通过ZigBee技术实现无线的信息交换。
带有射频收发器的无线传感器节点负责对数据的感知和处理并传送给汇节点;通过远程传输网络获取采集到的相关信息,实现对现场的有效控制和管理。
1.2.2zigbee协议栈结构
ZigBee协议栈定义了四层,分别是物理层、媒体访问控制层、网络层、应用层。
物理层和媒体访问控制层由IEEE802.15.4-2003定义,上层的网络层和应用层由Zigbee联盟定义。
应用层分别包括ZDO(Zigbee设备对象),APS(应用支持子层)和AF(应用框架)组成。
Zigbee协议栈每一层负责完成所规定的任务,并且向上层提供服务,各层之间的接口通过所定义的逻辑链路来提供服务。
ZigBee协议栈结构如图4-1所示。
图2ZigBee协议栈结构图
1.物理层
物理层由半双工的无线收发器及其接口组成,主要作用是激活和关闭射频收发器;检测信道的能量;显示收到数据包的链路质量;空闲信道评估;选择信道频率;数据的接受和发送。
2.媒体访问控制层
媒体访问控制(MAC)层建立了一条节点和与其相邻的节点之间可靠的数据传输链路,共享传输媒体,提高通信效率。
在协调器的MAC层,可以产生网络信标,同步网络信标;支持ZigBee设备的关联和取消关联;支持设备加密;在信道访问方面,采用CSMA/CA信道退避算法,减少了碰撞概率;确保时隙分配(GTS);支持信标使能和非信标使能两种数据传输模式,为两个对等的MAC实体提供可靠连接。
3.网络层
网络层负责拓扑结构的建立和维护网络连接,主要功能包括设备连接和断开网络时所采用的机制,以及在帧信息传输过程中所采用的安全性机制。
此外,还包括设备的路由发现和路由维护和转交。
并且,网络层完成对一跳(one—hop)邻居设备的发现和相关结点信息的存储。
一个ZigBee协调器创建一个新网络,为新加入的设备分配短地址等。
并且,网络层还提供一些必要的函数,确保ZigBee的MAC层正常工作,并且为应用层提供合适的服务接口。
网络层要求能够很好地完成在IEEE802.15.4标准中MAC子层所定义的功能,同时,又要为应用层提供适当的服务接口。
为了与应用层进行更好的通信,网络层中定义了两种服务实体来实现必要的功能。
这两个服务实体是数据服务实体(NLDE)和管理服务实体(NLME)。
网络层的NLDE通过数据服务实体服务访问点(NLDE—SAP)来提供数据传输服务,NLME通过管理服务实体服务访问点(NLME—SAP)来提供管理服务。
NLME可以利用NLDE来激活它的管理工作,它还具有对网络层信息数据库(NIB)进行维护的功能。
在这个图中直观地给出了网络层所提供的实体和服务接口等。
NLDE提供的数据服务允许在处于同一应用网络中的两个或多个设备之间传输应用协议数据单元(APDU)。
NLDE提供的服务有:
产生网络协议数据单元(NPDU)和选择通信路由。
选择通信路由,在通信中,NLDE要发送一个NPDU到一个合适的设备,这个设备可能是通信的终点也可能只是通信链路中的一个点。
NLME需提供一个管理服务以允许一个应用来与协议栈操作进行交互。
NLME需要提供以下服务:
①配置一个新的设备(configuringanewdevice)。
具有充分配置所需操作栈的能力。
配置选项包括:
ZigBee协调器的开始操作,加入一个现有的网络等。
4.应用层
应用层包括三部分:
应用支持子层(APS)、ZigBee设备对象(ZDO)和应用框架(AF)。
应用支持子层的任务是提取网络层的信息并将信息发送到运行在节点上的不同应用端点。
应用支持子层维护了一个绑定表,可以定义、增加或移除组信息;完成64位长地址(IEEE地址)与16位短地址(网络地址)一对一映射;实现传输数据的分割与重组;应用支持子层连接网络层和应用层,是它们之间的接口。
这个接口由两个服务实体提供:
APS数据实体(APSDE)和APS管理实体(APSME)。
APS数据实体为网络中的节点提供数据传输服务,它会拆分和重组大于最大荷载量的数据包。
APS管理实体提供安全服务,节点绑定,建立和移除组地址,负责64位IEEE地址与16位网络地址的地址映射[4]。
ZigBee设备对象负责设备的所有管理工作,包括设定该设备在网络中的角色(协调器、路由器或终端设备),发现网络中的设备,确定这些设备能提供的功能,发起或响应绑定请求,完成设备之间建立安全的关联等。
用户在开发ZigBee产品时,需要在ZigBee协议栈的AF上附加应用端点,调用ZDO功能以发现网络上的其他设备和服务,管理绑定、安全和其他网络设置。
ZDO是一个特殊的应用对象,它驻留在每一个ZigBee节点上,其端点编号固定为0。
AF应用框架是应用层与APS层的接口。
它负责发送和接收数据,并为接收到的数据寻找相应的目的端点。
1.2.3CC2530串口通信原理
UART接口可以使用2线或者含有引脚RXD、TXD、可选RTS和CTS的4线。
UART操作由USART控制和状态寄存器UxCSR以及UART控制寄存器UxUCR来控制。
这里的x是USART的编号,其数值为0或者1。
当UxCSR.MODE设置为1时,就选择了UART模式。
当USART收/发数据缓冲器、寄存器UxBUF写入数据时,该字节发送到输出引脚TXDx。
UxBUF寄存器是双缓冲的。
当字节传输开始时,UxCSR.ACTIVE位变为高电平,而当字节传送结束时为低。
当传送结束时,UxCSR.TX_BYTE位设置为1.当USART收/发数据缓冲寄存器就绪,准备接收新的发送数据时,就产生了一个中断请求。
该中断在传送开始之后立刻发生,因此,当字节正在发送时,新的字节能够装入数据缓冲器。
当1写入UxCSR.RE位时,在UART上数据接收就开始了。
然后UART会在输入引脚TXDx中寻找有效起始位,并且设置UxCSR.ACTIVE位为1.当检测出有效起始位时,收到的字节就传入到接收寄存器,UxCSR.RX_BYTE位设置为1.该操作完成时,产生接收中断。
同时UxCSR.ACTIVE变为低电平。
通过寄存器UxBUF提供到的数据字节。
当UxBUF读出时,UxCSR.RX_BYTE位由硬件清0。
二系统分析
该系统通过具有IIC总线接口的单片全校准字式新型相对温湿度传感器SHT10实现对温湿度的采集,将信号送至ZigBee技术,从节点采集温湿度数据每隔一定的时间轮流向主节点发送,主节点收到数据之后通过串口将各节点的温湿度数据传给智能主板。
2.1程序流程图
图3软件流程图
2.2具体步骤
1、给智能主板供电(USB外接电源或2节干电池)。
2、将一个无线节点模块插入到带LCD的智能主板的相应位置。
3、将温湿度及光电传感器模块插入到智能主板的传感及控制扩展口位置。
4、将CC2530仿真器的一端通过USB线(A型转B型)连接到PC机,另一端通过10Pin下载线连接到智能主板的CC2530JTAG口(J203)。
5、将智能主板上电源开关拨至开位置。
按下仿真器上的按钮,仿真器上的指示灯为绿色时,表示连接成功。
6、使用IAR7.51打开“…\OURS_CC2530LIB\lib10(HumiTempLight)\IAR_files”下的HumiTempLight.eww文件,下载运行程序。
7、观察LCD上温度、湿度和光照强度的变化。
8、用一个物体挡住光照传感器的光线,观察LCD上光照强度数据的变化。
9、向温湿度传感器吹一口气体,观察LCD上温湿度数据的变化。
三详细设计
3.1总体结构构成
温湿度采集模块主要有无线模块和数据采集模块,由数据采集模块完成温湿度的采集。
温湿度及光照传感器采集数据,并把采集的数据通过串口发送到CORTEXA8DB开发板上。
在CORTEXA8DB开发板上通过软件将采集到的光、湿度、温度值通过曲线描述出来。
3.1.1无线传感模块
无线传感器网络在设计目标方面与传统的无线网络有所区别,前者是以数据为中心的,后者以传输数据为目的。
在无线传感器网络中,因为节点通常运行在人无法接近的恶劣甚至危险的远程环境中,所以除了少数节点需要移动以外,大部分节点都是静止不动的。
在被监测区域内,节点任意散落,节点除了需要完成感测特定的对象以外,还需要进行简单的计算,维持互相之间的网络连接等功能。
并且由于能源的无法替代以及低功耗的多跳通信模式节,设计无线传感节点时,有效的延长网络的生命周期以及节点的低功耗成为无线传感器网络研究的核心问题。
在节省功耗的同时增加通信的隐蔽性,避免长距离的无线通信易受外界噪声干扰的影响,也都是在设计传感器网络时需要攻克的新难题。
图4无线传感器节点模型
无线传感网络的建立是基于传感器加无线传输模块的,传感器采集的数据,简单处理后经过无线传输模块传到服务器或应用终端。
目标、观测节点传感节点和感知视场是无线传感器网络所包括的4个基本实体对象。
另外,要完成对整个系统的