在我眼中,所谓物联网智能网关,至少应该有如下几个特色:一,对下可以和主流传感器进行对接,可以相对容易的获取传感器数据;二、对上可以和后台或云进行通信,可以把数据进行上传;三、用户可以进行编程处理,对获取的数据进行打包及一定的逻辑判断处理,当然和传感器及后台通信,用户除调用标准系统库外,也可以自行编程实现。
以上几点只是一个上行通道,当然用户通过手机、平板和PC等常用用户终端可以通过云或后台和智能网关进行通信,对相应设备进行操控。上行、下行通道、数据处理逻辑和用户接口界面搭建容易与否,是衡量一个物联网智能网关是否成熟及实用的标志。
其实从某种意义上说,物联网网关不仅仅是一个产品,而已经成为一个平台最关键的枢纽,整个物联方案以此为核心,进行构建。
1强化网络功能
紫藤系列的物联网网关(紫藤207),最近对网络部分的代码进行了重构,不仅通信性能、并发能力大幅度提高,并且已经支持网络方式调试(在基于网络安全的前提下,防火墙开放26000端口,可以直接支持VS2010远程调试)。
2优化文件系统及提供外部访问能力
文件系统是构建WebServer和数据库的一个基础,其稳定性和可靠性非常重要。针对NandFlash驱动添加了损耗平衡算法之后,使文件系统的可靠性和稳定性得到了进一步的提升。
不过官方标准功能中,并没有提供PC平台访问.NET Micro Framework文件系统的能力,这大大限制了.NET Micro Framework文件系统功能的使用。我编写了一个类似WinCE的远程文件管理系统,可以很方便的对.NETMicro Framework文件系统进行格式化,创建目录,删除,上传和下载文档等操作。
这个软件其实我已经在2010年初就已经编写完成,只是由于最近基于文件系统要构建数据库和物联网组态软件平台(YFIOs),所以才进一步推广使用。详细的操作,请参见我以前写的博文《【玩转.Net MF –03】远程文件查看器》和《【玩转.Net MF –05】加载文件系统中的Pe文件》。
3 Web Server网页发布直接支持
.NET Micro Framework除了提供标准Socket类库接口为,也提供了HttpListener类,可以直接进行Http协议相关方面的编程。我在博文《IP地址设定及简单web演示》、《Http Server功能演示》和《获取雅虎天气(HttpClient示例)》写了相关的应用,但是根据这些示例,来构造一些复杂的,可以交互的动态网页还是有一段距离的。
故开发了一个基于HttpListener类的WebServer库,如果网页文件存放在文件系统,可以两句代码就可以构建一个Web Server。
WebServer server = new WebServer(80);
server.SetWebRoot("\\ROOT\\web");
YFSoft.WebServer库地址下载(含文档和示例):
http://www.sky-walker.com.cn/MFRelease/library/v42/YFSoft.WebServer.rar
我基于该库已经完成的Web Server如下,详情我还会另外专门写篇文章介绍。
(通过xmlHttp协议和后台服务进行交互,可以远程操控紫藤开发平台)
4 前端网页和后台服务动态交互能力
(1) 基于xmlHttp实现动态网页
YFSoft.WebServer库,除了直接提供了网页的发布能力外,还提供两个有用的事件通知,一个是POST的事件,一个是GET事件,用户可以在这两个事件里,进行数据处理。详情我会写专门的文章去介绍。用户也可以直接下载该库文件,里面有文档和示例说明。
(2) 基于Html5构建动态画面
Html5是未来发展的趋势,而基于canvas容器进行动画绘制,将使前端画面更为丰富多彩。目前无论是PC上的主流浏览器,还是一些IOS和安卓平台上的手机和平板都已经支持。
(3) 基于WebSocket实现实时数据通信
有了画面展现能力,剩下的就是靠实时数据通信,来动态显示画面了。当然实时远程操控的操作也必不可少。下图就是我基于Html5 Canvas+WebSocket技术实现的远程动态操控紫藤开发平台。
相关操作视频:
http://v.youku.com/v_show/id_XNDY3NzM1Mzky.html
YFSoft.Html5.WebSocket库下载(含文档和代码示例):
http://www.sky-walker.com.cn/MFRelease/library/v42/YFSoft.Html5.WebSocket.rar
这部分内容我会另写文章详情介绍,敬请关注。
5 推出以Web Server为核心的物联网组态软件
以前编写的无论是YFIOServer还是TinyIOs等系统,都离不开PC平台的软件,这大大限制了一些用户想通过手机和平板进行系统搭建和配置的能力。所以目前推出的YFIOs就是以WebServer为核心,基于网页方式进行驱动加载配置,运行时监控等操作。
TinyIOs(升级后的基于网络模式的平台,改名为YFIOs),百度百科上的介绍如下:
http://baike.baidu.com/view/4401476.htm
后期我将发布该平台的SDK,以供大家方便构建自己的物联网平台。