基于Arduino和Android的环境监测系统设计

2016-04-09 02:03北京林业大学理学院朱建林王龙飞陈志良
电子世界 2016年5期
关键词:无线传感器网络程序设计

北京林业大学理学院 王 卓 朱建林 王龙飞 陈志良



基于Arduino和Android的环境监测系统设计

北京林业大学理学院 王 卓 朱建林 王龙飞 陈志良

【摘要】随着物联网的不断发展,无线传感器网络技术也得到快速的发展。本文为无线传感网络技术的一个实例,介绍运用Arduino开源平台和Android智能操作系统,实现具有环境检测与数据智能分析的环境监测系统。

【关键词】无线传感器网络;Arduino/Android;Yeelink;程序设计

0 引言

无线传感器网络(Wireless Sensor Networks, WSNs)是由部署在监测区域内大量传感器节点相互通信形成的多跳自组织网络系统,是物联网底层网络的重要技术形式[1]。随着无线通信、传感器技术、嵌入式应用和微电子技术的日趋成熟,WSNs 可以在任何时间、任何地点、任何环境条件下获取人们所需信息,为物联网(Internet of Things)

的发展奠定基础。本文研究的内容是利用现有的成熟互联网实现方法获取实时的环境状况信息,这种实现方法简单快速,成本低廉。

1 系统组成

1.1Arduino Mega2560 Rev3主控板及扩展板

Arduino是一个开放源代码的硬件项目平台,该平台包括一块具备简单I/O功能的电路板及一套程序开发环境软件。本设计使用Arduino Mega2560微控版,使用UBS接口或9VDC 外部电源供电。

为了实现网络传输,使用Arduino Mega2560 Wi-Fi扩展板,该扩展板可以使Arduino成为简单的Web服务器。由于设计模块化,Wi-Fi扩展板只需堆叠插入Arduino Mega2560主控板接口即可。

在扩展板上连接土壤湿度传感器、温湿度传感器、陀螺仪传感器、超声波测距传感器、光照度传感器、GPS接收器,用于获取环境的数据。系统框架如图1所示。

图1 系统框架

1.2智能手机

Android平台由操作系统、中间件、用户界面、应用软件组成。开发人员在该平台开发的应用程序,是使用Java语言编写的、在Dalvik虚拟机上运行的。Android 的底层是以开放性的Linux kernel为其架构,也可以理解为Google 推出的手机操作系统和相关软件的总称[2]。核心系统服务依赖于Linux2.6内核,包括安全性、内存管理、进程管理、网络协议和驱动模型。我们编写的APP是获取传感器上传到Yeelink的数据,同时自动对数据进行分析,并具有语音播报的功能。

1.3Yeelink平台

Yeelink是国内较早提供免费传感器数据接入管理的互联网服务提供商。在Yeelink网站上能够完成对传感器数据的接入管理,数据存储,以及将数据随时呈现给用户。所有的数据存入和取回等API手册完全开放,并支持客户进行二次开发。

本设计使用个人电脑接入互联网访问Yeelink网站,查看Arduino mega2560 上传的数据。使用个人电脑查看Yeelink服务器上的传感器数据,需要注册成为网站会员,获得唯一的API-key,添加设备和传感器。登录网站就可以看到传感器数据。图2是实验时上传到Yeelink平台的温度数据。

图2 上传到Yeelink平台的温度数据

2 系统的软件设计

2.1Arduino mega2560主控板程序设计

Arduino程序设计语言类似于C,C++,由于Arduino项目组预先在集成环境软件开发环境中提供了常用的库文件,开发人员在使用它的基本功能时只需调用他们即可[3]。这种设计体现了低门槛和硬件无关性,使开发者迅速掌握,不用考虑硬件底层实现原理,而把注意力集中在应用本身。

为了实现网络传输功能,本设计采用了以ESP8266模块为核心的Wi-Fi扩展板,ESP8266 是一个完整且自成体系的 Wi-Fi 网络解决方案,能够独立运行,也可以作为slave 搭载于其他 Host 运行。无线标准为802.11 b/g/n。

Arduino mega260主控板程序设计分为两个部分,第一个部分用于使用传感器收集外界环境的数据,第二部分用于向Yeelink平台上传数据。

2.2Android数据接收与通信程序设计

Android手机端应用的设计需要搭建开发平台。本设计采用JDK6+Eclipse+AndoridSDK的方案。使用Yeelink网站提供的API。

借助Android的开源环境与Yeelink的API,通过Google Development Kit即能很快搭建出所需的开发环境[4]。数据处理与远程通信模块的Android程序由UI层、Service层和持久层组成,在UI层进行用户交互,和传感器数据显示设计,在Service层建立线程执行并进行Web数据的交互处理,在持久层通过SQLite小型数据库储存传感器相关数据与信息,并进行文件读写。

所开发的APP包含的功能有显示传感器所收集的数据,数据自动分析,语音播报功能。

图3为手机显示环境温度页面,图4为用户想了解环境数据时,语音输入想问的问题软件会自动对所收集的数据进行分析,并以语音和文字的形式同时播报出来。

图3 APP 显示环境温度页面

图4 数据自动分析和语音播报

3 实验设计

在本实验中,使用具有Wi-Fi功能的路由器,Wi-Fi扩展模块与路由器相连从而将数据上传到Yeelink平台。

4 结论

本文设计系统的功能实现是基于Arduino mega2560主控板及安卓智能手机,利用Wi-Fi模块实现向服务器上传传感器数据功能。整个系统实现简单,方便快捷,达到了预期目的。

参考文献

[1]Liu Q,Huang X H,and Leng S P.Deployment strategy of wireless sensor networks for Internet of Things[J].China Communications,2011,8(8):111-120.

[2]张仕成.基于Google Android平台的应用程序开发与研究[J].电脑知识与技术,2009(28):7959-7962.

[3]Julien Bayle.C Programming for Arduino[M].Birmingham:Packt Publishing,2013:39-40.

[4]王为学,谷刚.基于Android和Wifi的智能点菜终端设计与实现[J].电脑开发与应用,2011(12):40-42.

王卓(1996—),男,河南南阳人,大学本科,现就读于北京林业大学理学院。

朱建林(1993—),男,重庆人,大学本科,现就读于北京林业大学理学院。

王龙飞(1994—),男,河南洛阳人,大学本科,现就读于北京林业大学理学院。

陈志良(1995—),男,浙江台州人,大学本科,现就读于北京林业大学理学院。

汪沛(1981—),男,陕西人,副教授,硕士生导师,主要研究方向:激光雷达数据处理,嵌入式系统开发及应用。

通讯作者:

作者简介:

基金项目:北京林业大学“北京市大学生科学研究与创业行动计划”(项目编号:S201510022097)。

猜你喜欢
无线传感器网络程序设计
基于Visual Studio Code的C语言程序设计实践教学探索
从细节入手,谈PLC程序设计技巧
一种改进的基于RSSI最小二乘法和拟牛顿法的WSN节点定位算法
高职高专院校C语言程序设计教学改革探索
无线传感器网络定位技术可靠性分析
对无线传感器网络MAC层协议优化的研究与设计
无线传感器网络技术综述
PLC梯形图程序设计技巧及应用