查看“项目六--Alljoyn 物联网关”的源代码
←
项目六--Alljoyn 物联网关
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
{| style="width: 800px;" |- | 本项目是我们和北京邮电大学合作的一个项目,基于microWRT和Microduino的基础模块搭建一个异构无线网络系统。 由物联网(Internet of Things)和web技术结合产生了一个新的概念,那就WoT。WoT是IoT的实现模式,可以将从各传感器终端采集的数据、服务都抽象成资源,并集成到web上去。 WoT利用了web的标准,将互联网的整个生态环境拓展到传感器终端。WoT主要有外部设备、WoT网关、WoT平台和WoT应用层组成。 WoT网关是外部设备接入到物联网的接口。相当于一个路由器将设备连接到物联网中。WoT网关支持多种通信协议(WiFi、蓝牙、ETH、Zigbee、串口等), 为不支持TCP/IP的设备提供接入Internet的通道,帮助传感器节点在WoT平台注册。WoT网关可以读取传感器感知数据,并将数据封装上传至wot平台, 同时,网关可以将来自的上层的控制信息下发至执行器。在本系统中WoT网关由microWRT来实现,而外围设备有microduino的基础模块来完成。 详细的系统框图如下: [[File:Alljoyn1.jpg|600px|thumb|center|WOT System Diagram]] 本教程中主要介绍由microWRT来完成的WoT网关部分。玩家可以在此基础上搭建出适合自己项目的完整系统。 ==WoT网关系统组件== 1. 网关中间件 目前由python语言实现,其主要功能包括注册网关、设备以及资源;上传资源数据和心跳;接收来自微信客户端的控制命令,并下发命令到设备端。 2. 网关AllJoyn服务端 由高通公司开发的物联网框架AllJoyn实现,运行在网关上,接收来自AllJoyn客户端的注册信息和数据信息,并且通过socket接口将信息传给网关中间件, 由中间件将数据传送至平台。 3. 网关AllJoyn客户端 由AllJoyn实现,运行在各个支持OpenWrt的节点上;发送节点注册信号给AllJoyn服务端,同时从节点驱动程序中获取数值,封装成一定格式后定期发送给AllJoyn服务端。 4. 异构客户端 包括zigbee、红外等各种传输模式的客户端节点,运行在各个支持OpenWrt的节点上。与OpenWrt节点相连的Microduino模块负责接收来自zigbee、红外、串口等数据, 并传给异构客户端程序,而它负责继续将数据发送给网关中间件。 ==WoT系统构建== 1. 在Microwrt上搭建python执行环境 由于Microwrt本身外存的限制无法在其上安装较大的软件包,所以需配置一存储卡,通过USB接口接入OpenWRT系统,方便我们的开发 具体教程可参考这里:https://www.microduino.cc/wiki/index.php?title=第八课--MicroWRT_SD卡/U盘使用 2. 移植AllJoyn库 由于我们需要在MicroWRT系统下运行AllJoyn程序,因此需要交叉移植,在PC主机上编译OpenWRT源码,在其中加入AllJoyn的库,使其生成liballjoyn.so等相关重要链接库。具体操作可参看AllJoyn官方教程 https://wiki.allseenalliance.org/develop/openwrt_package_development 3. 网关中间件 由于python的良好可移植性,可先在PC上编写和调试,详细代码可参看后面的github项目。中间件程序的执行流如下图所示: [[File:Alljoyn2.jpg|600px|thumb|center|WOT System Middleware]] 4. AllJoyn服务端 由于AllJoyn服务端要与中间件程序进行socket通信,负责发送节点注册信息和节点数据,结构示意图如下: [[File:Alljoyn3.jpg|600px|thumb|center|WOT System Server]] 5. AllJoyn客户端 运行在各个节点处的AllJoyn客户端,一方面需要循环发送由节点驱动提供的数据,另一方面要与AllJoyn服务端建立会话,通过发送信号保持通信。结构示意图如下: [[File:Alljoyn4.jpg|600px|thumb|center|WOT System Client]] 6. 异构客户端 网关与Microduino通过串口相连,底层数据传输通过zigbee模块进行;在底层节点上,传感器接到Microduino上,通过开源硬件编程获取数值,通过zigbee传输上传到网关上. 异构客户端与网关中间件通信结构示意图如下: [[File:Alljoyn5.jpg|600px|thumb|center|WOT System Client]] ==WoT系统部署== 1. 下载github项目 项目网址:https://github.com/minelabwot/wot_gateway 并通过scp命令将中间件代码和AllJoyn服务端执行文件aj_server复制到网关Microwrt的存储卡上,将AllJoyn客户端执行文件aj_client复制到节点系统上 目前关于AllJoyn模块的内容在gateway/bin/alljoyn下,有三个文件,分别是服务端aj_server,客户端aj_client和daemon程序alljoyn-daemon;与之相关的库文件是liballjoyn.so 若测试是在两个MicroWRT板上进行,则需提前保证两边防火墙是打开的,即允许alljoyn网络消息通过,具体设置请参照这里:http://blog.csdn.net/baiwfg2/article/details/42556767 2. 运行中间件程序 在命令行下执行:python main.py 3. 后台运行alljoyn-daemon 即在终端输入./alljoyn-daemon &,它是alljoyn程序运行成功的基础 4. 开启服务端 ./aj_server 此时它会连接网关中间件上的监听程序 5. 开启客户端 ./aj_client [temp]:{资源编号} [monitor]:{资源编号} … 冒号前为资源类型,包括temp(温度)、light(光照)、camera(照相机)、monitor(摄像头); 冒号后为资源编号,由用户自定义,不重复即可 此后就可看到属性与数据的上传了,同时在微信客户端或者易信客户端看到数据了 [[File:Alljoyn6.jpg|600px|thumb|center|WOT System]] |}
返回至
项目六--Alljoyn 物联网关
。
导航菜单
个人工具
创建账户
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
Welcome
首页
创客大赛
大赛详情
3D打印
安装月球车
图形化编程
操控月球车
升级月球车
编程工具下载
软件下载
Arduino
Processing
Mixly
Scratch
模块套件
Microduino 102
mCookie 102
mCookie 202
mCookie 302
IBC
其他
应用套件
四轴飞行器
平衡车
小车CUBE
音乐播放器
刷卡音乐播放器
wifi气象站
彩虹音乐触摸灯
分贝检测仪
迎门汇报
LED点阵时钟
LED点阵屏幕
硬件
mCookie
Sensor
Microduino
MicroWrt
MicroNux
MicroRobot-Core
MicroRobot-CoreESP
ideaBoard
ideaBox
MicroMV
MicroAI
帮助
常见问题
帮助
工具
链入页面
相关更改
特殊页面
页面信息