程序员视角:工业物联网网关之拆解物联网领域的技术栈
以程序员开发的角度来说,可以从前、后端发展划分:主要负责开发物联网系统的平台及商业应用;
嵌入式软件:以设备端的开发为主,这一部分按照所采用的技术(也就是硬件模块),被划分成许多不同的子域;
从广义的物联网来看,任何物品,只要能够接入网络,都可以称之为设备,或者称之为 thing。
一个设备要想接入到网络,肯定需要通信功能,包括:有线通信,无线通信。
在一些传统行业,或者对通信质量要求比较高的场景下,部署有线网络也是比较常见的。
需要用到工业物联网网关的设备
ZigBee是一个局域网的无线通信协议,与 ZigBee 类似的无线通信协议还有:ZWave、RF433、BLE 等等。
它们的作用都是都是为了让多个设备能够组网,节点之间以多跳的方式传输数据,达到通信的目的。
这些数据最终会汇总到一个叫做工业物联网网关的设备,然后与云端的服务器进行通信。
有很多人辨别不清网关开发 和 设备开发这两种。
网关开发稍微复杂一些。从功能上来说,网关需要实现:
设备的管理(与物联网平台的设备管理不是一个概念);
规则引擎(在断网的状态下实现场景联动等功能);
通信协议转换(把物理网平台的通信协议转成设备私有协议);
有些工业物联网网关中,还会集成不同的无线通信协议模块,比如:把 ZigBee、BLE、红外等功能,集成在一个当中,这样的话,不同通信方式的设备就可以在一个系统中共存了。
此时,工业物联网网关就要做更多的工作:
上行链路:在不依赖于云计算的情况下,不依赖于云计算,不依赖于任何一个终端,也不依赖于任何一个终端。
下行链路(连接到设备):把来自云计算的一致数据转换成适合不同通信协议的数据;
而设备的开发就更容易了,只需要研究出一种特殊的无线通讯协议即可。
对于这种类型的装置,通常会采用对应的通讯模块,并为其提供了基础的协议栈。
而开发人员所要做的工作,则是对系统中所使用的通讯协议进行了解,并在此基础上,对系统中的指令进行分析,并对系统中的数据进行汇报。
物联网平台开发
物联网平台是将企业应用与终端连接起来的一种中介,它可以屏蔽各类复杂的终端界面,使终端能够更快地访问终端。其目的是为用户提供一套统一的通信标准与 SDK,使用户能够更快地接入到各类硬件设备,并从设备接入的数量,通信数据的流量,以及提供不同的业务层次的服务中获取利润。
除此之外,也有下一个层次的企业,为物联网的领域,研发出了自己的平台。因为没有足够的认知度,所以只有通过“联合发展”的方式,才能吸引到“硬件”的进入。
从开发的角度来看,物联网平台的开发技术栈主要是后台开发。物联网平台最宝贵的就是数据,如何利用这些数据,这就是业务应用的事情了。
业务应用开发
而所谓的商业应用,则是指利用物联网平台中的 API,在设备管理、数据上报、指令发布等方面,进行一系列的商业应用。
设备管理是以设备访问为基础,为用户提供更加丰富和完整的设备管理能力,从而降低大规模的设备管理的复杂性,提高管理效率。
通过物联网平台的设备和数据,可以产生多种不同的业务应用场景,这需要按照具体的系统功能,进行按需开发。