文档章节

基于Android平台的无线传感器网络(ZigBee)监控系统

Change_Ty
 Change_Ty
发布于 2013/05/30 19:58
字数 1390
阅读 11847
收藏 225

       过去包括将来,从别人开源项目上和博客学到太多,实在是很欣赏开源的精神。这段时间,review了下做过的东西,毕业后不再做这个方向的东西了。陆续也有不少网上或者低届的同学问我讨要论文相关资料,现在把读研期间做的东西的资料、源码开源出来,全部放到github上https://github.com/changety/hellowsn,供参考,也为纪念自己读研期间花在它们上的时光。六月是新的旅途。这里贴一下readme文件和相关图。

 

Wireless Sensor Networks(WSN) Monitor System Based On Android

包括三部分:

  • ZigBee协议实现的WSN,由ZigBee协议的传感节点组成,完成数据采集、处理、上传,执行控制命令。项目文件

  • JavaWeb实现的服务端,由RS232通信,数据解析,持久化层,面向移动终端的Web通信等模块组成。web部分包括了HTTP及XMPP协议的推送服务。项目文件

  • Android平台上的WSN监控软件。项目文件

WSN部分:

硬件基础

软件实现

部署方法

  • 熟悉IAR以及Z-Stack协议栈忽略该部分

  • IAR Embedd Workbench ID编译调试

  • 用IAR 打开..\WSNMonitorApp\CC2530DB 目录中的WSNMonitorApp.eww项目文件,右键项目名option中找到**C/C++Compile**中 的preprocessor选项,将addtional include dir的选项框中根据项目文件在文件系统中的目录位置,导入Z-Stack的其他层的源文件。 如果直接在pull到源码文件中打开WSNMonitorApp.eww并没有改动过默认的目录结构,就在选项框中直接贴入下面的文件结构即可:
    $PROJ_DIR$
    $PROJ_DIR$\..\SOURCE $PROJ_DIR$\..\ZMAIN\TI2530DB $PROJ_DIR$\..\COMPONENTS\MT $PROJ_DIR$\..\COMPONENTS\HAL\INCLUDE $PROJ_DIR$\..\COMPONENTS\HAL\TARGET\CC2530EB $PROJ_DIR$\..\COMPONENTS\OSAL\MCU\CCSOC $PROJ_DIR$\..\COMPONENTS\OSAL\INCLUDE $PROJ_DIR$\..\COMPONENTS\STACK\AF $PROJ_DIR$\..\COMPONENTS\STACK\NWK $PROJ_DIR$\..\COMPONENTS\STACK\SEC $PROJ_DIR$\..\COMPONENTS\STACK\SAPI $PROJ_DIR$\..\COMPONENTS\STACK\SYS $PROJ_DIR$\..\COMPONENTS\STACK\ZDO $PROJ_DIR$\..\COMPONENTS\ZMAC\F8W $PROJ_DIR$\..\COMPONENTS\ZMAC $PROJ_DIR$\..\COMPONENTS\SERVICES\SADDR $PROJ_DIR$\..\COMPONENTS\SERVICES\SDATA $PROJ_DIR$\..\COMPONENTS\MAC\INCLUDE $PROJ_DIR$\..\COMPONENTS\MAC\HIGH_LEVEL $PROJ_DIR$\..\ COMPONENTS\MAC\LOW_LEVEL\srf04 $PROJ_DIR$\..\COMPONENTS\MAC\LOW_LEVEL\srf04\SINGLE_CHIP

  • 编译宏
    ZTOOL_P1
    MT_TASK
    MT_SYS_FUNC
    MT_ZDO_FUNC
    LCD_SUPPORTED=DEBUG

  • 之后在IAR workspace下方选择对应节点类型的项目文件,完成编译后, 通过debug按钮使用CC Debugger就能将程序烧写进对应节点硬件平台。

主要功能:

  • ZigBee协议所规定三种不同类型节点的基础功能 (默认你已了解ZigBee协议和Z-Stack协议栈)

  • EndDevice节点实现了DS18B20传感器的环境温度获取,处理,报告及报告周期设置,报警温度设置,开关控制等。

  • 通信功能,RS232,点对点,组播,广播。

  • 其他功能参考源码。

服务端:

运行环境

Java串口通信配置

  • 首先要完成这部分配置!

  • 与WSN进行RS232通信,由于使用Java实现,windows中运行Java 串口通信,先进行配置。
    RXTX包下载地址:http://rxtx.qbang.org/pub/rxtx/rxtx-2.1-7-bins-r2.zip
    下载解压后,其配置环境如下:
    把下载包中rxtx-2.1-7-bins-r2\Windows\i368-mingw32\rxtxSerial.dll 放到你%java_home%\jre\bin下面(%java_home%\jre\bin\rxtxSerial.dll)和C:\Windows\System32下面(C:\Windows\System32\rxtxSerial.dll)
    下载包中rxtx-2.1-7-bins-r2\RXTXcomm.jar放到%java_home%\jre\lib\ext下面(%java_home%\jre\lib\ext\RXTXcomm.jar)
    注:%java_home%为你安装JDK的路径,如:C:\Program Files\Java\jdk1.6.0_23

Web部署方法

  • web部分所需要的框架 jar包 都已经包含在了webroot/WEB-INF/lib目录下。

  • 在%Tomcat HOME%\conf中server.xml文件Host标签增加Context子标签如: <Context path="/wsnmonitor" docBase="..\WSNServicePlatform\WebRoot" reloadable="true"/>。

  • path属性表示浏览器中的访问路径,docBase属性表示项目文件在文件系统中的目录。

  • 运行%Tomcat HOME%\bin中startup.bat启动tomcat,如果在command line 中打印出该服务端的启动日志,并可以访问http://127.0.0.1:8080/wsnmonitor/index.do,则部署成功。

  • 基于Androidpn框架的XMPP协议的推送服务通过整合也部署在Tomcat里

  • Hibernate ORM构建的持久层,数据库表会在首次启动服务端程序时自动构建,可以在Spring配置文件中修改

主要功能:

  • 与WSN里协调器通过RS232数据交换

  • 对数据进行解析,并持久化到数据库里

  • HTTP 接受来自Android终端的数据请求,并返回对应数据。

  • XMPP服务保持与Aandroid终端的持久连接,将WSN中解析到的紧急数据(可设定)实时推送给终端。

  • 更多参见源码

 

Android终端:

运行环境

  • Android 2.2及以上

相关框架

libs
├ fastjson.jar
├ ormlite-android-4.41
├ ormlite-core-4.41
├ universal-image-loader-1.7.0-with-src.jar

运行方法

  • 根据服务端的ip,修改URL

主要功能(所有功能都基于与服务端):

  • WSN数据,节点信息查询

  • 实时拓扑结构变化查看

  • 节点控制

  • 推送消息接收等功能

  • 推送规则设置

 

© 著作权归作者所有

Change_Ty
粉丝 24
博文 2
码字总数 4385
作品 0
杭州
程序员
私信 提问
加载中

评论(44)

bigtree2008
bigtree2008
硬件用的是什么?硬件烧录还有没有其他方法
chape
chape

引用来自“Change_Ty”的评论

引用来自“chape”的评论

我部署你的web工程出现
严重: Exception starting filter struts2
org.apache.xerces.parsers.ObjectFactory$ConfigurationError: Provider org.apache.xerces.parsers.XML11Configuration could not be instantiated: org.apache.xerces.impl.dv.DVFactoryException: DTD factory class org.apache.xerces.impl.dv.dtd.DTDDVFactoryImpl does not extend from DTDDVFactory.
按网上的方法删除xercesImpl.jar也不行

这段时间我帮别的朋友部署过 没有出现这个异常过呢。 你就完全用我项目文件里自带jar包 ,不要去改 因该不会有问题。

我不明白为什么你的src和resource目录下都有struts。xml?
Change_Ty
Change_Ty 博主

引用来自“chape”的评论

我部署你的web工程出现
严重: Exception starting filter struts2
org.apache.xerces.parsers.ObjectFactory$ConfigurationError: Provider org.apache.xerces.parsers.XML11Configuration could not be instantiated: org.apache.xerces.impl.dv.DVFactoryException: DTD factory class org.apache.xerces.impl.dv.dtd.DTDDVFactoryImpl does not extend from DTDDVFactory.
按网上的方法删除xercesImpl.jar也不行

这段时间我帮别的朋友部署过 没有出现这个异常过呢。 你就完全用我项目文件里自带jar包 ,不要去改 因该不会有问题。
chape
chape
我部署你的web工程出现
严重: Exception starting filter struts2
org.apache.xerces.parsers.ObjectFactory$ConfigurationError: Provider org.apache.xerces.parsers.XML11Configuration could not be instantiated: org.apache.xerces.impl.dv.DVFactoryException: DTD factory class org.apache.xerces.impl.dv.dtd.DTDDVFactoryImpl does not extend from DTDDVFactory.
按网上的方法删除xercesImpl.jar也不行
chape
chape
非常有用,谢谢
hdwlf
hdwlf
收藏了,学习一下。
魔力猫
魔力猫

引用来自“prpgramingman”的评论

引用来自“魔力猫”的评论

我大概搞明白了。这这个监控数据采集部分和Android一毛钱关系都没有,其实完全是CC2530单片机在做。数据被传输到服务器,Android手机其实只是服务器的一个客户端用来看的。
这叫哪门子《基于Android平台》呀!

这还不是基于Android啊?Android等移动设备本质上就是一个终端显示设备,利用其便携的特点及时反馈给用户信息,并且接受用户响应。那你看来什么才是基于Android平台?

看我后边的回答就知道了。采集和处理由Android进行的我认为才算。这里Android只是一个远程监视器。
_JustDoIt_
_JustDoIt_

引用来自“Change_Ty”的评论

引用来自“人间五十年”的评论

这种复杂的 不怎么可靠的组网方式目前已经很普及.
请问有手机终端直接与zigbee节点通信的解决方案不

gprs 或者zigbee节点集成嵌入式网关

这种方式是把ZigBee协调器与arm连接到一起,协调器的信息直接交给arm网关,手机可以访问这个arm网关,可以问题就来了:1,如何把推送服务移植到arm网关上?2,如何维持一个连接来即使推送信息?想问问楼主有什么想法?
_JustDoIt_
_JustDoIt_

引用来自“魔力猫”的评论

我大概搞明白了。这这个监控数据采集部分和Android一毛钱关系都没有,其实完全是CC2530单片机在做。数据被传输到服务器,Android手机其实只是服务器的一个客户端用来看的。
这叫哪门子《基于Android平台》呀!

这还不是基于Android啊?Android等移动设备本质上就是一个终端显示设备,利用其便携的特点及时反馈给用户信息,并且接受用户响应。那你看来什么才是基于Android平台?
chareice
chareice
一个监控板300 价格很贵了
【最全解读】适用于各种不同场景下的智能网关技术

智能网关,也叫工业物联网智能网关、无线数据采集网关、通讯采集网关,无线网关,工业通讯网关,无线传感管理主机,工业以太网串口智能网关,RS485串口ModbusRTU智能网关,属于无线传感器网络...

m_xiang
2017/12/26
0
0
【转】国内外物联网技术研究进展

原文:http://www.wlw.gov.cn/zsyd/yjdt/560468.shtml 中国物联网:http://www.wlw.gov.cn/index.shtml 2010年7月1日来源:中国电子商务研究中心 点击: 108 【字体:大 小】 国际物联网研究...

夏春涛
2011/02/28
0
0
深入探讨 Android 传感器

Android 是一个面向应用程序开发的富平台,它拥有许多具有吸引力的用户界面元素和数据管理功能。Android 还提供了一组丰富的接口选项。在本文中,学习如何配合使用 Android 的各种传感器选项...

红薯
2009/07/20
8K
9
嵌入式系统开发中,如何选择适合的MCU平台?

业界声音 在物联网领域内的主流无线技术包括:Wi-Fi (802.11)、采用网状网络的ZigBee 和Thread (802.15.4),以及低功耗蓝牙 (LE)。许多私有协议也被广泛应用于工业物联网应用,特别是在Sub-G...

dp29sym41zygndvf
2017/12/27
0
0
AndroidThings之基础二 设计理念

转载自:https://blog.csdn.net/tangxiaoyin/article/details/75273491 (PS:目前AndroidThings已经走向消费级别,发布正式版本1.0版,开发板推荐树莓派3B+) 前言 2012 年 6 月,由 IoT-GSI(...

qq_28831197
2018/05/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

如何编写高质量的 JS 函数(1) -- 敲山震虎篇

本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/7lCK9cHmunvYlbm7Xi7JxQ 作者:杨昆 一千个读者,有一千个哈姆雷特。 此系列文章将会从函数的执行机制、鲁棒性、函...

vivo互联网技术
48分钟前
5
0
学会这5个Excel技巧,让你拒绝加班

在网上,随处都可以看到Excel技巧,估计已看腻了吧?但下面5个Excel技巧会让你相见恨晚。关键的是它们个个还很实用 图一 技巧1:快速删除边框 有时当我们处理数据需要去掉边框,按Ctrl+Shif...

干货趣分享
今天
11
0
JS基础-该如何理解原型、原型链?

JS的原型、原型链一直是比较难理解的内容,不少初学者甚至有一定经验的老鸟都不一定能完全说清楚,更多的"很可能"是一知半解,而这部分内容又是JS的核心内容,想要技术进阶的话肯定不能对这个...

OBKoro1
今天
9
0
高防CDN的出现是为了解决网站的哪些问题?

高防CDN是为了更好的服务网络而出现的,是通过高防DNS来实现的。高防CDN是通过智能化的系统判断来路,再反馈给用户,可以减轻用户使用过程的复杂程度。通过智能DNS解析,能让网站访问者连接到...

云漫网络Ruan
今天
15
0
OSChina 周一乱弹 —— 熟悉的味道,难道这就是恋爱的感觉

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @xiaoshiyue :好久没分享歌了分享张碧晨的单曲《今后我与自己流浪》 《今后我与自己流浪》- 张碧晨 手机党少年们想听歌,请使劲儿戳(这里)...

小小编辑
今天
3.3K
25

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部