基于物联网的环境监测实现研究报告Word文档格式.docx
《基于物联网的环境监测实现研究报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于物联网的环境监测实现研究报告Word文档格式.docx(27页珍藏版)》请在冰豆网上搜索。
![基于物联网的环境监测实现研究报告Word文档格式.docx](https://file1.bdocx.com/fileroot1/2023-1/3/45974985-6f25-4247-b13b-f0d4835cd83e/45974985-6f25-4247-b13b-f0d4835cd83e1.gif)
国物联网产品的研发与标准化工作还处于起步阶段。
作为物联网技术基础的无线传感器网络(WirelessSensorNetworks,WSN)是当前国际上备受关注的、涉及多学科高度交叉、知识高度集成的前沿热点研究领域。
它综合了传感器、RFID技术、嵌入式计算、现代网络及无线通信和分布式信息处理等技术,能够通过各类集成化的微型传感器协同完成对各种环境或监测对象的信息的实时监控、感知和采集,这些信息通过无线方式被发送,并以自组织多跳的网络方式传送到用户终端,从而实现物理世界、计算世界以及人类社会这三元世界的连通。
本文报告了物联网技术在环境监测系统的应用,尤其是在严酷环境中对环境参数的检测和采集,对几种关键技术,如节点供电、自组织路由,以及和互联网的连接等进行了研究,给出了具体解决方案结构设计、路由设计等。
2物联网与无线传感网
一般来说,传感器网络相当于物联网中的“感知层”,对于物体的运动和所处环境通过传感器网络进行搜集和整理,数据则通过传输网络传输到应用层,进行运算、处理、反馈或者实施等等,有人把物联网等同于传感器网,这是不全面的。
以互联网为代表的计算机网络技术是二十世纪计算机科学的一项伟大成果,它给我们的生活带来了深刻的变化,然而在目前,网络功能再强大,网络世界再丰富,也终究是虚拟的,它与我们所生活的现实世界还是相隔的,在网络世界中,很难感知现实世界,很多事情还是不可能的,时代呼唤着新的网络技术。
可以预见,在不久的将来,无线传感网络将给我们的生活带来革命性的变化
图1物联网数据链
1.1.环境监测典型应用
在某些严酷环境中,如桥梁、水坝、矿山等部署相应的传感器节点,通过自组织路由形成无线传感网,再由网关接入互联网。
也同样适用远端无人值守机房、感知家庭、农作物灌溉情况、土壤空气情况、牲畜和家禽的环境状况和大面积的地表监测、气象和地理研究、洪水监测等场所。
参数传感器可以是位移传感器、震动传感器、液位传感器、压力传感器、温度传感器等。
其典型应用如图2、图3所示。
图2矿井环境检测系统
图3桥梁状态检测
举例来说,目前我国煤矿采用的煤矿支架压力监测系统都是以工业CAN总线为基础,井下监测系统与地面信息中心通过电缆或光纤连接,构成有线信息传输网络,网络结构相对固定,不适合掘进工作面延伸的动态变化要求。
将带有压力传感器的节点嵌入到各支架上形成自组织路由传感器,即可有效解决压力等环境参数采集和检测任务,随着工作面的移动而通信不受影响,如图4所示。
图4.矿井环境监测系统
在图4中,各个无线矿压采集节点和无线网关之间形成一个自组织的网络,无线矿压采集节点采用电池供电,无线网关采用稳压电源供电,通过CAN总线实现地面数据监视和处理部分与井下设备通信。
系统可以通过光纤环网、线或者电缆实现地面系统与井下压力采集系统的通信和传输。
上位机实现数据分析与处理并接入互联网。
3物联网环境监测系统设计
作为环境参数监测的一个具体应用,在下述描述中以压力参数为例。
3.1无线采集节点设计
3.1.1节点结构及功能设计
无线传感器节点是无线传感网络的组成单元,可以看作是一种非常小型的计算机,一般由以下四个部分组成:
传感器模块、处理器模块、无线通信模块和能量供应模块。
无线传感器网络可以在任何时刻、任何地点不需要任何现有基础网络设施,包括有线和无线设施支持的条件下,快速构建起一个移动通信网络。
网络的运行维护管理等完全在网络部实现,网络还需要一些基站来建立传感器网络与外界的联系,但各传感器节点构成的网络依然是一个自组织的无中心的无线网络。
图5无线传感节点结构
如图5所示,传感器模块主要是用来采集各类信息,如温度、湿度、声音、加速度、全球定位信息等,并负责将模拟信息量化为数字信息,传递给其它模块进行处理;
处理器模块包括处理器和存储器两部分,负责控制整个传感器节点的操作,存储和处理本身采集的数据以及其它节点发来的数据;
无线通信模块负责与其它传感器节点进行通信,交换控制消息和收发采集数据;
能量供应模块为传感器节点提供运行所需要的能量。
节点的能量靠电池提供,其能量有限由于条件的限制,难以在使用中给节点更换电池,所以传感器节点的能量限制是整个系统设计瓶颈,它直接决定了网络的工作寿命;
另一方面,传感器节点的计算能力和存储能力都较低,使得其不能进行复杂的计算和数据存储,有效的路由协议是系统设计的关键。
无线传感器网络的能量管理主要体现在传感器节点电源管理上和有效节能的通信协议设计上,WSN是通过能量管理协议来负责网络能量的管理。
其中和电源单元发生关联的有很多的模块,包括感应单元、处理单元、通信单元定位系统和移动装置等模块。
其中,从传感器节点的结构来看,除了供电模块外,其它的模块都存在着电源能量消耗。
在某个传感器应用现场,节点的主要任务就是监测事件,一旦事件发生就要快速执行本地采集数据的处理,然后发送数据到目的节点。
因此,耗能可以分成三个组成部分:
感应、通信和数据处理部分。
传感器网络的协议主要考虑如何在通信部分实现有效的节能。
很多研究和测量成果都表明:
节点空闲监听会消耗接收数据所需能量的50%-100%左右。
在实际应用中,如果没有感应事件发生,节点大多数时间处于空闲模式,这是能量浪费的主要来源。
能量管理协议的核心思想就是让不执行感应任务的节点直接进入睡眠状态。
因此,无线传感网络能耗的特点如下:
①节点能耗与其操作模式关系较大,②无线传感器的能耗主要来源于无线的传输以及传输的数据量。
对于无线传感网,能量浪费主要来源于下面几个方面:
①由于数据包冲突造成的能量浪费,如多个节点向同一个节点传输数据造成数据包碰撞、重传从而造成能量浪费;
②由于不必要侦听造成能量浪费,比如一个节点侦听到不是自己的数据包所造成的能量浪费;
③无线模块长期处于空闲状态所造成能量浪费,节点处于空闲状态的能耗可以和接收状态及发送状态的能耗比拟,如果节点无线模块长期处于空闲状态就会造成大量能量浪费:
④由于收发节点没有协调好所造成的不必要数据发送,比如当发送端发送数据时,接收端处于睡眠状态,此时发送的数据会造成能量的浪费。
系统设计中我们采用了专为嵌入式无线传感网络设计的TinyOs操作系统。
TinyOS采用了组件的结构,它是一个基于事件的系统。
TinyOS设计的主要目标是代码量小、耗能少、并发性高、鲁棒性好,可以适应不同的应用,其技术特点表现在:
轻线程:
解决节点操作可能比较频繁,线程较短,传统进程/线程调度无法满足。
主动消息:
在发送消息的同时传送处理这个消息的相应处理函数ID和处理数据,接收方得到消息后可立即进行处理,从而减少通信量事件驱动:
整个系统的运行是因为事件驱动而运行的,没有事件发生时微处理器进入睡眠状态,从而可以达到节能的目的。
组件化编程:
组件就是对软硬件进行功能抽象。
整个系统是由组件构成的,通过组件提高软件重用度和兼容性。
程序员只关心组件的功能和自己的业务逻辑,而不必关心组件的具体实现,从而提高编程效率。
依据以上设计思路,设计完成的本系统采集节点主要由处理器、通信控制器、RTC实时时钟电路、数据显示、数据存储、油压采集以及射频通信模块组成。
结构框图如图6所示。
图6环境参数采集节点功能图
各模块功能和设计:
①网络节点采用模块化设计,包含射频通讯模块、传感器AD采集模块、RTC实时时钟模块、LCD显示模块、数据存储模块。
②节点每隔规定时间(通常2秒)采集数据,并将数据记录,同时加上时间信息,然后节点尝试将数据再上传至网关。
③若上传失败,则数据将被记录在存储模块中,存储空间为128KB,等待通讯恢复后再将数据上传回来。
④每个监控节点间可以转发其它节点信息,以实现多跳的特性,节点间自动完成MESH网络,并可快速适应环境变化,保证数据传输稳定。
3.1.2硬件设计
节点硬件主处理器采用TI公司生产的一款专用于IEEE802.15.4和Zigbee通信协议的片上系统(SoC)CMOS解决方案。
如图7所示,这种解决方案能够提高性能并满足以ZigBee为基础的2.4GHzISM波段应用,及对低成本,低功耗的要求。
它结合一个高性能2.4GHzDSSS(直接序列扩频)射频收发器核心和一颗工业级小巧高效的8051控制器。
CC2430的设计结合了8Kbyte的RAM及强大的外围模块,并且有3种不同的版本,他们是根据不同的闪存空间32,64和128kByte来优化复杂度与成本的组合。
图7SoC系统框图
针对协议栈,网络和应用软件的执行对MCU处理能力的要求,CC2430包含一个增强型工业标准的8位8051微控制器核,运行时钟32MHz。
由于更快的执行时间和通过除去被浪费掉的总线状态的方式,使得使用标准8051指令集的CC2430增强型8051核,具有8倍的标准8051核的性能。
CC2430包含一个DMA控制器。
8k字节静态RAM,其中的4k字节是超低功耗SRAM。
32k,64k或128k字节的片Flash块提供在电路可编程非易失性存储器。
CC2430集成了4个振荡器用于系统时钟和定时操作:
一个32MHz晶体振荡器,一个16MHzRC-振荡器,一个可选的32.768kHz晶体振荡器和一个可选的32.768kHzRC振荡器。
CC2430也集成了用于用户自定义应用的外设。
一个AES协处理器被集成在CC2430,以支持IEEE802.15.4MAC安全所需的(128位关键字)AES的运行,以实现尽可能少的占用微控制器。
中断控制器为总共18个中断源提供服务,他们中的每个中断都被赋予4个中断优先级中的某一个。
调试接口采用两线串行接口,该接口被用于在电路调试和外部Flash编程。
I/O控制器的职责是21个一般I/O口的灵活分配和可靠控制。
CC2430包括四个定时器:
一个16位MAC定时器,用以为IEEE802.15.4的CSMA-CA算法提供定时以及为IEEE802.15.4的MAC层提供定时。
一个一般的16位和两个8位定时器,支持典型的定时/计数功能,例如,输入捕捉、比较输出和PWM功能。
CC2430集成的其他外设有:
实时时钟;
上电复位;
8通道,8-14位ADC;
可编程看门狗;
两个可编程USART,用于主/从SPI或UART操作。
为了更好的处理网络和应用操作的带宽,CC2430集成了大多数对定时要求严格的一系列IEEE802.15.4MAC协议,以减轻微控制器的负担。
射频及模拟收发器:
CC2430的接收器是基于低--中频结构之上的,从天线接收的RF信号经低噪声放大器放大并经下变频变为2MHz的中频信号。
中频信号经滤波、放大,在通过A/D转换器变为数字信号。
自动增益控制,信道过滤,解调在数字域完成以获得高精确度及空间利用率。
集成的模拟通道滤波器可以使工作在2.4GHzISM波段的不同系统良好的共存。
3.2节点路由协议实现
无线传感器网络是一种能量有限的网络,且能量通常无法得到补充。
因此,在无线传感器网络中,有效利用有限的能量资源是任何路由算法首要考虑的因素。
无线传感器网络设计的一个主要目标是最大化网络生命期。
如果网络中某些节点能量消耗过快,这对网络的生存期有很大的影响。
所以,每个节点能耗均衡也是路由算法的重要考虑因素。
本项目主要研究基于最小跳数的能量自适应路由算法(minimumhopsenergy-adaptedprotocol,MHEP)。
该路由算法的关键思想是利用到sink节点的最小跳数和路径节点最小剩余能量作为路由选择度量来完成信息包的转发。
传感节点发送信息时,首先搜索本节点的下一跳可用节点集,从中选择路径节点最小剩余能量最大的节点进行转发,下跳节点接收到该信息后作同样的处理,直至发送到目的节点为止。
下面给出的是单跳路由描述。
单跳路由实现过程
配置文件NodeC
使用的组件:
MainC主组件
NodeP节点实现组件
LedsCLED组件
HalFlashPFlash读写组件
HplCC2430Timer1P定时器1组件
HplCC2430Timer3P定时器3组件
HplCC2430I2CbusPI2C组件
HplCC2430GeneralIOCIO组件
AdcPADC组件
SimpleMacCRF组件
SmsLcdBasicCLCD驱动组件
使用的接口:
Boot启动接口
LedsLED接口
HalFlashFlash操作接口
HplCC2430Timer16asTimer1定时器1接口
InitasTimer1Init定时器1初始化接口
HplCC2430Timer8asTimer3定时器3接口
InitasTimer3Init定时器3初始化接口
HplCC2430I2CBusasI2CI2C接口
InitasAdcInitADC初始化接口
AdcControlADC控制接口
Read<
int16_t>
asAdcReadADC读接口
SimpleMacRF接口
StdControlasSimpleMacControlRF控制接口
SmsLcdBasic液晶接口
GeneralIOasPAEnablePA控制脚
提供的接口:
Init软件初始化:
读出Flash中存储的节点地址号。
实现文件NodeP
任务:
taskvoiddelay()延时10ms
taskvoiddelay1()延时时间由节点号决定,相邻节点号间隔10ms。
事件:
eventvoidBoot.booted()
启动上电启动后进入该事件,该事件中完成时钟,定时器寄存器初始化,无线发送变量的初始化,无线寄存器初始化,功放控制设置。
asynceventvoidTimer3.fired()
定时器3中断程序。
停止定时器。
如果没找到子节点:
本节点作为最后一级节点,向父节点发送自身节点号。
如果找到了子节点:
向子节点发送设置消息。
eventvoidAdcRead.readDone(error_tresult,int16_tval)
读ADC中断程序。
ADC值转换成压力整数和小数位,LCD显示压力值;
每5s采集一次,采集后立即休眠;
直到采集12次(也就是一分钟采集结束),不休眠,读出时间值,打开定时器1,定时时间和节点跳数有关(目的是为了叉开各个节点发送数据的时间,避免冲突)。
eventpacket_t*SimpleMac.receivedPacket(packet_t*packet)
无线接收中断程序。
Switch接收数据长度:
(1)length=10若packet->
data=0,表明收到的是查询消息,向发送查询消息的节点回应一个消息。
若packet->
data=1,表明收到的是应答消息,从有效覆盖围的节点回应中,找出RSSI值最大的节点。
(2)length=11表明是父节点发送到本节点的设置消息,设置父节点为发送设置消息的节点号。
跳数MHC为父节点跳数加一,设置定时器1溢出值为391*MHC(每个节点错开200ms),设置地址过滤。
启动定时器3,发送查询子节点消息。
(3)length=9+全部子节点字节数表明收到的是节点号上传消息,将消息转发到自己的父节点。
(4)length=21表明收到的是时间设置消息,将其转化为BCD码格式,写入RTC,启动RTC,设置定时中断时间(5s)。
将时间转发至子节点。
设置外部中断寄存器。
(5)length=36表明是发到本节点的数据消息,转发至父节点。
MCS51_INTERRUPT(SIG_P1INT)
外部中断服务程序。
在我们的系统中,外部中断为RTC中断。
中断服务程序中,清外部中断标志位,调用读ADC命令。
asynceventvoidTimer1.fired()
定时器1中断服务程序。
停止定时器,打开无线,发送数据包至父节点。
3.3无线网关设计
无线网关的功能是建立和各采集节点的通信路由并保持通信,与上位机或通信网络接口和数据处理单元通信将各节点采集数据上传,同时上位机可以通过网关向各个采集节点发送命令。
其硬件部分和节点设计基本相同。
网关结构如图8所示。
(1)网关包含射频通讯模块、串口通讯模块、RTC实时时钟模块、通信协议处理模块、数据存储模块;
(2)网关通过射频模块,收集所有节点上传的数据报;
(3)若监控服务软件与网关保持连接,则网关将即时的将数据通过CAN总线通讯上报数据信息;
(4)若监控服务软件与网关通讯断开,则网关将收集到的数据存储至存储系统中;
(5)监控服务软件与网关通讯恢复,则网关可将存储的数据再次传回;
图8网关结构功能图
(6)U盘存储
作为网关重要功能,当与上位机通信中断时,各采集点采集到的环境数据存储在U盘,操作人员通过更换U盘取出存储的数据。
U盘驱动电路采用“U盘和SD卡文件管理控制专用芯片,用于单片机系统读写U盘或者SD卡中的文件,与单片机采用SPI接口。
考虑到本安要求,即防火花,对5V优盘供电进行限流。
见图9。
.
图9U盘供电和驱动电路
3.3.1网关与上位机通讯协议
网关报告节点即时数据(Gateway->
PC)
字段
长度
大小端
备注
标志1
1字节
SOP1:
0x37
标志2
SOP2:
0xA9
包类型标志
CMD:
0x01
包负载长度
2字节
BE
LEN:
DATA段长度
检验码
HCS:
为CMD和LEN逐字节异或结果
行业编码
0x06
应用编码
应用数据类型码
节点类型号
转发地址
源地址的下跳地址
源地址
顺序号
跳数
心跳数据头
12字节
格式参见2.1.1
本次记录数量
本数据包所包含的数据量
记录数据
16*N字节
数据列表,格式参见2.1.2
校验码
PCS:
为前面除两个标志外所有字节异或的结果
RTC时间
year:
年
month:
月
day:
日
hour:
时
minute:
分
second:
秒
节点剩余包数
节点上所剩余的数据记录的数量(含本次数据)
节点历史数据包
节点上所含所有的历史记录量
剩余电量
节点剩余电量百分比
信号质量
信号质量状态
节点ID
记录所属的节点ID号
传感器数据1
4字节
AD采集值(浮点数)
传感器数据2
网关报告节点历史数据(Gateway->
此类数据为节点因为发生错误无确上传所保存下来的数据:
节点转发失败的数据
网关板上报未成功的数据
所有的数据组成相应的片段,保存到FLASH中,可能无序。
0x02
获取网关当前RTC时间(PC->
Gateway)