当前位置: 首页 > news >正文

【物联网智能网关-12】以网关为核心,互联网为基础构建物联网平台

 在我眼中,所谓物联网智能网关,至少应该有如下几个特色:一,对下可以和主流传感器进行对接,可以相对容易的获取传感器数据;二、对上可以和后台或云进行通信,可以把数据进行上传;三、用户可以进行编程处理,对获取的数据进行打包及一定的逻辑判断处理,当然和传感器及后台通信,用户除调用标准系统库外,也可以自行编程实现。

以上几点只是一个上行通道,当然用户通过手机、平板和PC等常用用户终端可以通过云或后台和智能网关进行通信,对相应设备进行操控。上行、下行通道、数据处理逻辑和用户接口界面搭建容易与否,是衡量一个物联网智能网关是否成熟及实用的标志。

其实从某种意义上说,物联网网关不仅仅是一个产品,而已经成为一个平台最关键的枢纽,整个物联方案以此为核心,进行构建。 

1强化网络功能

紫藤系列的物联网网关(紫藤207),最近对网络部分的代码进行了重构,不仅通信性能、并发能力大幅度提高,并且已经支持网络方式调试(在基于网络安全的前提下,防火墙开放26000端口,可以直接支持VS2010远程调试)。 

2优化文件系统及提供外部访问能力

文件系统是构建WebServer和数据库的一个基础,其稳定性和可靠性非常重要。针对NandFlash驱动添加了损耗平衡算法之后,使文件系统的可靠性和稳定性得到了进一步的提升。

不过官方标准功能中,并没有提供PC平台访问.NET Micro Framework文件系统的能力,这大大限制了.NET Micro Framework文件系统功能的使用。我编写了一个类似WinCE的远程文件管理系统,可以很方便的对.NET Micro 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,以供大家方便构建自己的物联网平台。

 

MF简介:http://blog.csdn.net/yefanqiu/article/details/5711770

MF资料:http://www.sky-walker.com.cn/News.asp?Id=25

 

相关文章:

  • GIT 不常用的实用命令
  • 关于windows下的Enter键
  • 彻底搞懂 PHP 变量结构体,多数文章观点不准确
  • perl shift
  • Ovirt 笔记
  • Oracle rownum用法的归纳
  • windows 上rsync客户端使用方法
  • 高性能存储代表 NETGEAR ReadyDATA 5200评测报告
  • nginx日志所有HTTP状态及次数统计
  • 添加本地通知(UILocalNotification)以及添加系统组件滚动视图(UIScrollView)
  • HTTP协议具体解释
  • MySQL配置文件my.cnf 例子最详细翻译
  • 如何在Linux和windos中创建指定大小的文件
  • Google Talk Testing(早期版本)
  • 重温SportsStore项目所遇到的问题总结
  • IE9 : DOM Exception: INVALID_CHARACTER_ERR (5)
  • $translatePartialLoader加载失败及解决方式
  • [译]前端离线指南(上)
  • JavaScript设计模式系列一:工厂模式
  • Java编程基础24——递归练习
  • Java反射-动态类加载和重新加载
  • JWT究竟是什么呢?
  • Lucene解析 - 基本概念
  • Mac转Windows的拯救指南
  • MobX
  • Node项目之评分系统(二)- 数据库设计
  • PAT A1050
  • Python实现BT种子转化为磁力链接【实战】
  • vue2.0项目引入element-ui
  • 缓存与缓冲
  • 前端面试总结(at, md)
  • 详解NodeJs流之一
  • 终端用户监控:真实用户监控还是模拟监控?
  • FaaS 的简单实践
  • MPAndroidChart 教程:Y轴 YAxis
  • # Maven错误Error executing Maven
  • # 数据结构
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (3)选择元素——(17)练习(Exercises)
  • (30)数组元素和与数字和的绝对差
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (收藏)Git和Repo扫盲——如何取得Android源代码
  • (转)GCC在C语言中内嵌汇编 asm __volatile__
  • (转)linux自定义开机启动服务和chkconfig使用方法
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件)
  • @DataRedisTest测试redis从未如此丝滑
  • [BJDCTF 2020]easy_md5
  • [BZOJ]4817: [Sdoi2017]树点涂色
  • [C/C++]_[初级]_[关于编译时出现有符号-无符号不匹配的警告-sizeof使用注意事项]
  • [C/C++随笔] char与unsigned char区别
  • [dts]Device Tree机制
  • [Dxperience.8.*]报表预览控件PrintControl设置
  • [Linux] 一文理解HTTPS协议:什么是HTTPS协议、HTTPS协议如何加密数据、什么是CA证书(数字证书)...
  • [Python学习笔记]Requests性能优化之Session