英语原文共 9 页,剩余内容已隐藏,支付完成后下载完整资料
第九届国际网络通信发展会议(FNC-2014)
利用Raspberry Pi和Arduino的无线环境监测传感器网络系统设计
Sheikh Ferdoush, Xinrong Li
电机系, 北德克萨斯大学,丹顿, 德克萨斯,76203,USA
摘要:经过超过十年的研究和发展,无线传感器网络技术已逐渐开始出现各种创新型应用。在本文中,我们描述了我们使用开源硬件平台,Arduino和Raspberry Pi开发了无线传感器网络系统。该系统就传感器的类型和数量来讲具有低成本高度可扩展性的特点,这使得它非常适合于各种各样的有关环境监测方面的应用,本文介绍了系统架构和软硬件组件的有关设计,还提供了一些部署示例和测量结果以验证该系统的有效性。
关键词:Arduino;环境监测; Raspberry Pi;无线传感器网络; ZigBee
1.介绍
经过超过十年的研究和发展,无线传感器网络技术已逐渐开始出现各种创新型应用。早期的传感器网络和网络系统主要是通过解决诸如多跳路由,通信抽象,中间设备,操作系统(OS)和数据共享这样的技术难题得以发展。大多数早期的测试平台系统已经使用了初期传感器网络作为研究平台,如CrossBow(现MEMSIC)网络和TinyOS的软件框架[1]。这些传感器网络硬件平台,基本上都是基于低功耗的嵌入式微控制器系统的一些关于车载传感器和模拟/端口连接传感器的硬件平台。配套的软件组件也需要开发,包括操作系统,传感器/硬件驱动程序,网络协议和处理算法等。
在编写这篇文章之前我们在有关构建无线传感器网络系统有过许多的尝试。例如,使用CrossBow网络开发的大规模的土壤水分监测传感器网络系统,它被集成到一个综合环境基础设施体系,得克萨斯州环境观测站(TEO);由杨[1]等人设计的MoteLab[2]被部署在哈佛大学。MoteLab是一个实验性无线传感器网络,它通过一个基于Web的直观界面提供了开发测试传感器网络应用的公共平台,并在2014年一月退役。INDRIYA[3]是新加坡国立大学开发出的一种三维无线传感器网络测试平台,和MoteLab遵循相同的设计。还有其他的一些相关作品,例如利用传感器网络[4]设计的Web服务和基于Web的应用程序和软件架构设计的无线传感器网络[5,6]。
最近,我们发现了无线传感器网络技术的开源化,标准化和商业化发展的新热潮。IEEE 802.15.4标准规定了低速率数据无线个人区域网[9]控制层的物理和媒体接入标准。ZigBee是根据802.15.410建立的一种低成本,低功耗无线网状网络标准。802.15.4 RF收发器和
图1.整体系统架构
ZigBee协议模块现已作为商用现货(COTS)的无线传感和驱动系统的快速原型模块。例如,Digi XBee系列OEM模块实现了IEEE802.15.4射频和ZigBee网络协议[11],在应用系统的开发方面很受欢迎。传感器网络系统,比如大多数的嵌入式系统,都需要进行紧密耦合到他们的应用程序。然而,最新的进展已经可以帮助减少上述的无线感测和致动系统的复杂性,并相当容易设计一个用于验证概念和示范目的的原型系统。在本文中,我们将介绍我们利用开源硬件平台,Arduino,Raspberry Pi,ZigBee模块和S2B XBee开发的无线传感器网络系统。这样的设计相比于一些诸如TEO系统[1]的早期设计,具有成本低,容易建立和维护方便的优势。阻止传感器网络技术在工程,科学和商业应用领域的广泛应用的主要障碍在于它缺乏可靠性,灵活性,可扩展性,互操作性,并且在长期的部署,运营和维护方面有很大的困难,尤其是对于那些非专业人员来说。在本文提出的系统在解决这些棘手问题方面取得了一些成效。
本文的其余部分安排如下,在第2节中,对整个系统结构进行说明;第3节中,呈现硬件和软件组件的细节设计;第4节中,给出了一些样品的实验部署和测定结果用来证明了设计的有效性。最后,第5节是本文的结论与摘要。
2.整体系统架构
建立无线传感器网络系统需要许多硬件和软件组件的开发和集成,图1示出了我们已经开发出的一种环境监测的无线传感器网络系统的整体系统架构,该系统包括一个原位基站和多个分布式无线传感器节点。每个传感器节点是传感器,微控制器(UC)和一个ZigBee无线收发器的组合,即上面提到的XBee模块。此外,每个传感器节点都有一个用户应用程序,用于从传感器采样数据和以某固定方式与该基站通信。
基站上的XBee模块被配置为网络协调器以及传感器节点上的XBee模块被配置为路由器将在第3节中讨论,随后,XBee模块分别开始工作并使用ZigBee网络协议形成网状网络拓扑。为了支持远程在线配置和传感器节点的管理,我们还增加了在基站的网关应用。它用来控制分布式传感器节点的行为和查询所有或某组传感器节点的检索数据。上述基站还包括一个关系型数据库管理系统(RDBMS)MySQL用于数据存储和管理。为了访问传感器节点并接受来自外界的数据,Web应用程序是使用Apache HTTP Web服务器基站开发的。
在我们的系统架构中,我们将无线传感器网络的网关节点,数据库服务器,和web服务器布置在一个单板计算机(SBC)的硬件平台,这有助于减少布线的成本和复杂性。Web应用程序的开发是为了给用户提供简明的网络交流界面。用户可以通过局域网或因特网上任何终端的web应用程序来访问上述传感器数据或执行传感器节点的远程配置和管理。相比
图.2.(a)Raspberry Pi模型 B; (b) Arduino UNO R3; (c) XBee Pro S2B; (d) RHT03温湿度传感器
于我们之前开发的大型TEO环境监测系统[1],在本文提出的系统设计非常适合于小规模的环境监测和数据采集应用。
3.硬件和软件组件的设计
3.1传感器节点的设计
在这项研究中,我们利用Arduino和Digi XBee模块开发了网络传感器节点。Arduino是一种被广泛使用的灵活的开源单板微控制器开发平台,它拥有很多易于使用的硬件和软件组件。Arduino Uno R3基于Atmel Atmega328微控制器并具有16 MHz的时钟速度它有6个模拟输入和14个数字I / O管脚,因此它可以将多个传感器连接到单个Arduino板。Arduino的专用传感器兼容扩展板,被称为盾(shield),能够直接插入Arduino UNO板的标准化引脚头。
我们使用市售ZigBee模块,利用Digi11的XBee Pro S2B,令其工作在2.4GHz的ISM频带以用于无线通信和多跳网状网络中,该XBee模块的室内通信距离为90m,而室外范围近2英里。凭借低功耗和高达250kbps的数据传输率,ZigBee设备特别适合快速无线传感器网络原型应用,利用这些器件可以构建简单星形结构网络或复杂的网状网络。要利用一些ZigBee的高级功能,我们需要在网关和传感器节点都开发相应的应用。为了保证我们开发过程的简单,我们在传感器节点中只是用了一种传感器,我们使用的是低成本的RHT03温湿度传感器。本设计中使用的硬件组件示于图2。
上述的XBee模块封装了802.15.4 RF收发器和ZigBee网络协议,并且它可以通过UART串行通信接口容易地集成到微控制器或微处理器系统,例如Arduino和Raspberry Pi。 该XBee模块可以配置成三种类型的设备:网络协调器,路由器和终端设备。协调器用来控制整个网络;路由器可以在作邮件中继或网状网络拓扑;终端设备只能与协调器或路由器进行通信。一个网络中只能有一个网络协调器,路由器和终端设备的数目不限。
上述XBee模块支持全透接口(AT)和应用程序编程接口(API)模式两种模式。在AT模式下, XBee模块表现为串行线路配件;在API模式下,进入和离开该模块的所有数据都会被定义成模块中的操作帧或事件帧。当需要形成多节点网格或树形拓扑网络时,我们采用API模式。在这项工作中,我们设计了一个API模式下简单的基于帧的通信方案来实现在网状网络中的两个功能:1)收集从传感器节点到基站的数据;2)从基站发送的配置命令到传感器节点。
在XBee网状网络中,协调器节点可以使用多点传输或单点传输通信方式查询传感器节点。单点传输通信方式在图.3a中示出,而我们所使用的API帧的结构示于图.3B。这种方案中,每个单点传输的帧都可以直接从基站使用传感器节点上的XBee模块的64位的唯一
图.3(a).基站和传感器节点间的通讯方式;(b).TX帧的帧结构
的装置地址发送到特定的传感器节点。更具体地来说,如图.3a所示,基站首先发送一个TX帧到传感器节点,其中嵌入了TX帧接收器的64位器件地址。因此,连接至传感器节点的XBee模块接收到了包含所述TX帧的射频数据并发送ACK到基站;同时,它也发送一个RX帧到传感器节点。传感器节点上的应用程序处理上述的RX帧,获得其中的有效信息;然后,根据该信息,准备包含传感器数据和基站的XBee模块的64位地址在内的另一TX帧;然后,第二TX帧被发送回基站。
3.2基站的设计
基站的设计方面,我们采用了低功耗的信用卡大小的Raspberry Pi模型B板单片机,CPU是700 MHz的主频的ARM处理器。CPU的性能大约和奔腾II 300 MHz处理器,GPU性能与早先的Xbox类似。它有多种外设接口,包括USB接口,HDMI接口,512MB RAM,SD卡存储以及 8 GPIO端口扩展。显示器,键盘和鼠标可以通过HDMI接口和USB接口连接到Raspberry Pi,它可以像台式电脑一样使用。它支持多种操作系统,包括我们在设计中所使用的Raspbian,它一个基于Debian的Linux发行版。Raspberry Pi可以通过以太网
图.4.基站的功能框图
图.5. 在UNT办公楼部署的无线传感器网络结构
电缆或USB Wi-Fi适配器连接到局域网,然后就可以通过SSH进行远程登录访问。
基站的功能模块,包括网关应用,数据库和网络应用程序,示于图4。Raspberry Pi通过USB电缆和USB转UART串行转换电路连接到XBee协调器模块,网关应用是传感器网络和数据库之间的中间层。它负责向传感器节点发送配置和数据收集命令,并将从传感器节点接收到的数据插入至MySQL数据库中,网关应用使用内建有Raspbian的Python编写。其中用到了一些Python拓展包,包括PySerial 2.7, MySQL-python 1.2.5, Advanced Python Schedule (APScheduler 2.1.2), 和XBee 2.1.0。 Web应用程序是建立在Apache HTTP Web服务器的基础上的,而服务器端Web服务程序使用了PHP编写。用户可以通过以太网或Wi-Fi连接局域网或Internet来访问HTML网页界面,以完成路由器的配置工作。
3.3 Web界面的设计
客户端的网络接口通过HTML,CSS,JavaScript,Ajax,jQuery和FLOT实现。HTML和CSS一起被用来设计网页框架,JavaScript用于客户端的脚本,以实现动态显示和交互式用户界面,jQuery是一种广泛使用的JavaScript库,可以极大地简化JavaScript编程。Ajax是异步JavaScript和XML的缩写,它是对在创建异步Web应用程序[8]过程中在客户端使用的一系列Web开发技术的总称。使用Ajax,客户端的Web应用程序可以与服务器在后台异步交换信息,而无需与显示和现有网页交换数据。
FLOT是服务于jQuery的一个JavaScript库,优点是是使用的简单,美观和强大的互动性[7]。通常情况下,它支持支持HTML5 canvas标签所有浏览器。在我们的设计中,FLOT用于在静态和动态的实时图形显示可视化的传感器数据,通常情况下,它支持所有支持HTML5 canvas标签的浏览器。在我们的设计中,FLOT用于传感器数据的静态和动态可视化实时图形显示。在实时显示模式下,FLOT只会根据从服务器获取的新定期数据更新图表,而不重新绘制整个网页。Ajax和jQuery在我们的设计中结合从MySQL数据库得到的连续数据流用于向FLOT图表提供数据, The数据Web服务连续流功能被序列化到JSON(JavaScript对象符号)格式进行通信服务器和客户端之间。该数据序列化到JSON(JavaScript对象符号)格式的服务器和客户端之间传输。该数据被变成JSON(JavaScript对象符号)格式在服务器和客户端之间传输。
在当前的实践中,我们设计了用于实验和演示目的三台前端工具:实时显示图标(CHART),数据存取(DATA),和系统配置(CONFIGERE),如图.4所示。为了数据存取的方便,用户可以下载并存储在数据库里的传感器数据视图,用户还可以使用实时显示工具监测传感器数据。通过系统配置程序,授权用户可以设置多个全球节点,设置参数包括测量周期,参与测量的传感器节点和节点中哪个传感器参与测量。由网络接口上生成的用户配置请求被异步发送到Web服务器,并被插入到MySQL数据库中的命令表中,网关应用定期监视任何新的被发送到传感器节点的配置命令表,命令表被用来共享的网关和web应用之间的数据。这样的设计解耦了网关应用和web应用,大大简化音响ES进程间数据共享问题。一般情况下,环境监测应用可以接受几秒钟或几分钟量级的延迟,
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[29327],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。