基于Arduino和AppInventor2的无线传感器网络网关设计

时间:2022-08-01 08:48:35

基于Arduino和AppInventor2的无线传感器网络网关设计

摘要:最近十年,无线传感器网络(wireless Sensor Networks,WSN)发展的速度越来越快,并广泛应用在环境监测、智能家居、智能交通等多个领域。现阶段无线传感器网络发展的核心关键是如何充分让现有设备真正发挥自身作用,物尽其用。提出了一种基于Arduino和Google AppInventor2的物联网无线传感器网关设计方案。该系统在现有各种专用无线传感器网络基础上,增加开源Arduino硬件实现网关功能;Google AppInventor2则提供简单易用的人机接口。该方案的两个子模块均具有低成本,兼容现有软硬件系统和开源自定义等特征,为物联网的快速定制和部署提供了新的参考。

关键词:WSN; Arduino; AppInventor2

中图分类号:TP274.2文献标识码:A文章编号:10053824(2014)06005405

0引言

2009年IBM率先提出“智慧地球”的概念,为我们描述出这样一幅蓝图:无论你身在何处,环境信息能够按需被处理和提供给你;同时,大至国家计算中心的巨型机,小至一个室内电源插座或者电灯,它们之间也能互联互通,协同工作,即物联网。为此针对各种物理参数的感知和传输,存在多种基于特定应用目标的物联网无线传感器网络[12]:ZigBee,Xbee、WiFi、GPRS、蓝牙等。从文献[3-5]来看,这些无线传感器网络目前在电力监测、新生儿监测、矿井监测等领域取得了众多成功应用。然而,随之而来的问题是,针对纷繁复杂的多种协议和人机接口,是建立一套功能强大全新的系统还是具有兼容并包的系统。基于前一思路,多家公司推进力度非常大:谷歌公司的Nest,苹果公司的HomeKit等,这些公司力图在未来十至二十年成为标准的制定者。

另一个问题是如何让普通大众参与新技术的开发和订制应用。正如Symbian与Android在智能手机市场的竞赛,在电子信息领域,精英有领导作用,但决定权在大众。应该让“高科技”的物联网成为普通大众可以参与的有趣活动,从而为物联网的快速定制和部署提供一种普适技术方案。

基于上述分析,物联网技术推广的重点在于无线传感器网络,而无线传感器网络的关键在于解决多协议共存和人机接口问题。如何充分让现有设备真正发挥自身作用,物尽其用,并真正达到无线传感器网络的多协议共存,便捷的物人相接目标是目前急需解决的核心问题之一。

本文研究了一种基于开源Arduino和Google AppInventor2为核心的物联网无线传感器网络网关设计方案。两个子模块均具有低成本,兼容现有软硬件系统和开源自定义等特征。

1技术方案

该技术方案由硬软件2个子系统构成:Arduino实现多协议无线传感器网络网关硬件架构;Google AppInventor2和Arduino共同实现网关软件系统和人机功能,系统架构如图1所示。其上方表示物联网可能采用的多种无线通信协议,如Zigbee、Xbee、单片机控制为基础的其它通信方案形成的多元化信息采集无线传感器网络。中间的Arduino连接各种网络系统,解决各个硬件标准不统一、协议无法兼容的问题。对各种多元化信息采集无线传感器数据进行简单处理、融合之后,Arduino采用WiFi、LAN、GPRS/LTE、蓝牙等多种无线通信技术将信息传递至云端或大型机(服务器)进行进一步的数据存储和处理,并负责向人机介面终端机传输文本、音视频信息。

在图1下方表示通过AppInventor2用户由手机、平板、笔记本等多种移动(可穿戴)设备随时随地地接收需要的信息。通信链路在家里可以通过WIFI、蓝牙,而在室外则通过GPRS/LTE等。

2设备

基于技术方案,以下分别讨论3个主要设备的性能特点和选择理由。

2.1Arduino

Arduino来源于意大利的一个开发团队,设计初衷是开发教学用的开源电子原型平台。在2005年制成第一批成品后,Arduino发展迅猛,于2011年被Google选作标准,可以直接接入到采用Android系统的手机或平板电脑等各类电子设备。英特尔则于2013年10月宣布,与Arduino达成合作协议,了基于英特尔架构全新兼容Arduino的可开发电路板――英特尔伽利略(Intel Galileo)电路板。现在,越来越多的软硬件开发者使用Arduino来开发自己的创意项目。

从总体上来说,Arduino[6]是1款简洁方便并且使用灵活的通用可编程输入输出端口开源电子原型平台,包含了Arduino 各型硬件电子板和Arduino IDE软件平台。

从硬件上来看,通过兼容性极佳的各型电子板,Arduino区分了使用场景,为简单和复杂的项目均提供了很好的硬件平台。例如5美元即可采购到的Arduino UNO板采用了ATmega328微处理器,提供了丰富的硬件资源,包括:14个可编程通用数字输入输出口(其中6个可提供脉冲宽度调制),6个可编程通用模拟输入口,USB接口,电源接口,16MHZ晶体,烧录头,复位按钮等。丰富的扩展接口保证了Arduino可以跟各种无线通信的硬件设备相连接,完成网关功能。

从软件上来看,开源Arduino IDE拥有跨平台的兼容性,同时适用于Windows、Max OS和Linux。其由Java、Processing、avrgcc等开源软件写成,因其界面人性化,语法简便,能方便的下载调试程序,强大的内置库函数,使得Arduino的程序开发调试变得简单高效,利于大众化参与。

正是由于Arduino有如此多的优势,特别是开放的源代码和优秀的软硬件兼容性,对无线传感器网络的数据融合和标准化等方面都有极大的帮助。2.2AppInventor2

人机交互过程中最注重的品质是可用性和用户友好性,而把当今人手必备的手机作为交互过程中使用的设备,无疑同时具备了这两个品质。安卓作为市场占有率最高的手机操作系统,其可开发性和强大的功能性都毋庸置疑。因此,我们选择了安卓手机应用来进行人机交互。

而开发安卓手机应用则采用了安卓系统的开发公司Google推出的基于Android平台的AppInventor2手机应用开发软件。其图形化的界面设计,人性化的搭积木式程序编码,在线式网页云开发,为全民编程带来了一丝契机,只有你富有创意,你即可随时随地编写自己的应用。《旧金山大学记事》称:“Google让大众成为应用的生产者”;《无线》杂志则描写了“编程普及的时代正在来临”。

从类型上讲,Google AppInventor2是一款可视化的,人性化的在线网页编程工具,也可以支持离线化操作,用于在全Android平台上搭建应用。开发流程分为两个步骤,首先使用基于web图形化的界面生成器来设计应用的用户界面(外观);然后将部件的“代码块”拼在一起,来定义应用的行为,完成应用。AppInventor2利用可视化“代码块”语言的编程方法,大大降低了为Android平台开发应用的门槛,利于大众化参与。

2.3ZigBee

最后简单介绍下现有的无线传感器网络中应用最多、最具有代表性的物联网传感控制器ZigBee。其是基于IEEE802.15.4工作组制定的低功耗个域网标准协议,为无线传感器网络提供了一个互联互通的国际化标准。ZigBee技术正是由此协议而来的一种短距离、低功耗的双向无线通信技术。ZigBee技术的特点是低复杂度,自组织,低成本,低功耗,低数据速率,近距离。ZigBee技术的出现很好的推进了无线传感器网络的发展。

3演示系统

基于上述介绍的技术方案,我们已开发出一个简单高效的环境监测系统用于演示,直观地体现出该方案的技术优势。

3.1系统结构

本演示系统完整结构如下图2所示:其中ZigBee包括了终端节点、路由节点和协调器节点3大类,其功能为组建无线网络,采集和传输数据; Arduino连接上ZigBee网络,接收数据,处理后由蓝牙发送至手机;AppInventor2编机应用,显示和保存采集的数据,并可发送指令代码来控制系统。

3.2ZigBee网络

ZigBee网络中研究的重点是终端节点和协调器节点,下面就工作流程分别进行详细描述。

终端节点选用了DHT11温湿度传感器和MQ2烟雾传感器来采集温度、湿度和烟雾数据。其工作流程框图如下图3a所示:在节点启动之后进行设备初始化,等待接收协调器发送的广播并加入网络,成功加入网络之后开始驱动传感器采集数据并打包发送,发送成功则进入休眠等待下一次数据采集,否则会尝试重新发送。

协调器节点串口与Arduino进行了连接,其工作流程框图如下图3b所示:同样是启动之后进行初始化并建立网络,如果成功则广播等待节点加入网络或发送来数据,若有网络内终端节点发送来的数据则接收并转发给Arduino进行处理,成功之后进入休眠等待下一个请求。

3.3Arduino

作为承上启下的核心网关,Arduino的选用尤为关键,相比于2560和Leonardo等版型,Arduino UNO价格更为便宜,体积小巧且配置更为合理,因此更适用于本次演示系统。Arduino UNO通过串口连接ZigBee协调器,获取网络采集到的信息,配置蓝牙模块与安卓手机通信。整套系统的硬件设备图如下图4所示:左侧的设备A即为终端节点连接了B两个传感器;右侧D为Arduino UNO配置了蓝牙模块并连接了C协调器。

使用蓝牙作为连接用户的设备优势在于,现在的智能手机和笔记本电脑等各种移动电子设备均有提供蓝牙,通用性和便捷性都极为优越,同时价格也十分低廉。

硬件选型连接完成,下面即是软件编码。Arduino IDE强大的库函数使得编程变得便利:一行“SoftwareSerial mySerial(10, 11); // RX, TX”代码即可完成自定义串口,用于连接ZigBee协调器及蓝牙模块;一行“Serial.write(mySerial.read());”代码即可完成各自定义串口设备的输出工作。

3.4AppInventor2

本次监测系统的安卓手机端应用设计采用的是Google AppInventor2,设计功能为连接蓝牙,显示监测数据,发送指令,以及保存监测数据。开发过程分为界面设计和“代码块”编程两个部分。

首先来说界面设计,布局如图5a所示:中间的Viewer方框内即为手机屏幕,屏幕第一行为功能按钮区,依次为蓝牙连接按钮,数据保存按钮以及蓝牙断开按钮;屏幕第二行为数据显示区,从“output:”往下可以一直显示监测数据,点击save按钮后提示“Data was saved.”,并在手机中保存一个Arduino_data.txt文档存储监测数据;屏幕第三行为指令发送区,左边的TXT方框用于输入指令,Send按钮按下即发送,并会清空已发送的指令;最后需要说明的是待使用的组件也需要在界面布局中拖入,如本应用中使用到的蓝牙和时钟组件。

然后来讲“代码块”编程,图形代码如图5b所示,一条语句即为一个“代码块”,只需将所需功能的代码块拖出拼接在一起,即可完成模块功能。AppInventor2的“代码块”功能齐全,操作简便,例如,图片中部右侧的发送蓝牙指令的图形代码:在界面设计中将蓝牙组件拖入待用后,就可以在代码编程界面的左侧选框中拖选蓝牙的“块代码”;语句为当Send按钮被点击时,启动蓝牙串口发送功能,发送的文本设置为TXT方框内输入的指令,而后清空TXT方框。

2界面设计图

b AppInventor2图形化代码图4结果

此次环境监测演示系统设计了一个ZigBee终端节点负责连接多个传感器,用于搜集环境中的温度、湿度、烟雾报警信息;一个ZigBee协调器负责接收终端节点无线发送而来的数据并由串口传递给Arduino UNO;一个Arduino UNO负责接收协调器串口发送来的数据并由蓝牙与安卓手机通信;一个安卓手机负责接收蓝牙数据并在屏幕上实时显示,也可通过发送指令来控制系统。

本系统中运用了IAR Embedded Workbench软件来编写和调试ZigBee终端节点和协调器的代码;运用了Arduino IDE来编写和调试Arduino UNO的代码;运用了Google AppInventor2来编写和调试安卓手机端的应用。最终经过实验室,寝室,楼道,旷野等多处场景测试,整套系统均能稳定地运行,由安卓手机端显示数据。

其中,在实验室环境下,手机端监测数据如下图6所示。从图中可以看到手机端显示的温度为26,湿度为37,无烟雾报警信息,RSSI(接收信号强度)为-54左右。在点击了保存按钮后,已在手机内存中保存了一个Arduino_data.txt的文档来存储数据,手机屏幕中对应显示了“Data was saved.”。至此,整套演示系统完整地完成了设计功能。

图6手机应用数据图需要说明的是,全套设备(不含手机)的核算成本大致为两百元人民币,开发周期大致为一个月,低廉的价格和精简的开发周期使之非常适合大规模推广。本系统中所采用的两个传感器(DHT11和MQ-2)仅仅针对的是本演示系统,在各个实际的应用场景中可任意增减各类传感器,加之ZigBee网络采样和传输间隔可以非常方便地更改,以适应不同的项目所需,达到物联网中各个场景均能适用的目的。

5结论

研究了一种基于Arduino和Google AppInventor2为核心的物联网无线传感器网络网关设计方案。其核心优势在于成本低廉,开发周期短,兼容现有软硬件系统,开源自定义,通用性强且利于普及。结合Arduino、 AppInventor2和ZigBee构建了完整的环境监测演示系统,为无线传感器网络在多个网络间互联互通和标准化进程提供了一个参考。进一步的工作应该构建种类更多的、网络更大的系统进行研究。

参考文献:

[1]王殊,阎毓杰,胡富平.无线传感器网络的理论及应用[M]. 北京:北京航空航天大学出版社, 2007.

[2]LEE J S,SU Y W,SHEN C C.A comparative study of wireless protocols:Bluetooth,UWB,ZigBee,and WiFi[C]//IECON 2007.33rd Annual Conference of the IEEE.[S.l.]:IEEE,2007:4651.

[3]ANBYA M F B, SALEHUDDIN M, HADISUPADMO S, et al. Wireless sensor network for single phase electricity monitoring system via Zigbee protocol[C]//Control, Systems & Industrial Informatics (ICCSII), 2012 IEEE Conference on.[S.l.]:IEEE, 2012: 261266.

[4]Chen W, Nguyen S T, Coops R, et al. Wireless transmission design for health monitoring at neonatal intensive care units[C]//Applied Sciences in Biomedical and Communication Technologies, 2009. ISABEL 2009. 2nd International Symposium on.[S.l.]:IEEE, 2009: 16.

[5]谢晓佳, 程丽君, 王勇. 基于 ZigBee 网络平台的井下人员跟踪定位系统[J]. 煤炭学报, 2007, 32(8): 884888.

[6]TATSIOPOULOS C, KTENA A. A smart Zigbee based wireless sensor meter system[C]//Systems, Signals and Image Processing, 2009. IWSSIP 2009. 16th International Conference on.[S.l.]:IEEE, 2009: 14.

作者简介:

王馨(1976),女,四川自贡人,电子科技大学在读工程硕士,中学高级教师,主要从事电子工程领域研究。

上一篇:中国凭什么是一个大IP? 下一篇:大数据理念下的发展性学习评价系统设计研究