2021-01-13 14:17
关于物联网智能硬件之间的互联互通,在这篇文章中,常州开发物联网智能硬件APP点个赞科技简单结合自己的体会谈谈物联网智能硬件之间的互联互通问题。写得比较随意,可能没有考虑那么周全,大家权且看看,有疑问想法,我们可以随时探讨。
目前市面上我们接触得到的智能硬件,例如智能手机,智能手环/手表,智能家用电器,智能路由器,智能音箱,电动窗帘,智能门禁系统,智能摄像头,空气净化器,烟雾传感器,自动抄表系统等等。目前大多数产品都仅仅限于少量硬件产品相互交互,例如我们使用智能手环/手表,我们基本上都使用蓝牙与手机同步数据,我们使用智能家用电器,基本上也局限在与我们的手机之间监控与操控。家用智能摄像头也仅仅独立工作,通过远程服务器将图像传递到我们手机上。
最终这些智能硬件之间所有的操作都会汇集到使用者这个实体上,而不同厂商的产品在应用之间难以互联互通,一个使用情景难以与另外一个相互交流数据从而形成更加复杂的应用。基本上各大厂商之间都有自己的一套通信系统和规范,并且通讯协议大多数是私有定义而没有以独立的组织来进行维护。
因此对于智能硬件的应用,首先需要解决的问题就是应用层面互联互通,物联网发展这么多年,也的确出现了不同的通信方式,个人接触最早的是zigbee,传输数据量小,适合在传感器级别(如温湿度传感器),难以实现局部大数据量的传输要求,基本上使用zigbee产品需要一个网关接入到互联网系统中。zigbee通讯中也并没有解决应用层通讯的统一化问题。
在最近几年发展过程中,智能硬件越来越多依赖于WIFI网络,伴随着这种需求的出现,大芯片厂商开始提供低功耗的WIFI芯片,并且集成度做得相当高,而且还有对应的SDK的支持,例如Broadcom的BCM43362,TI的CC3200系列,Qualcomm的QCA4004系列等等,采用WIFI技术的智能硬件越来越多,冰箱洗衣机空调等等,只要打物联网大旗的智能硬件大多都是以WIFI为主。更不用说我们的手机,平板电脑,智能电视了。
那么既然都在使用WIFI技术,基于TCP/IP以及UDP的通讯是的确能够将我们所有的智能硬件物理上能够连接到一起,为什么还是实现不了互联互通与相互发现呢?这个原因还是在于应用层通讯协议。
基于TCP/IP以及UDP网络如何实现设备相互发现,互联互通,很早以前我就开始思考这个问题以及寻找解决方案,首先这个协议必须是一套成熟稳定可靠,能够开源,相互设备之间能够通过这个统一的协议进行相互发现以及交换数据,并且能够适应我们从洗衣机空调冰箱这种功能单一的小型系统,到我们的Android/IOS手机,到电视机,再到我们使用非常大型的Windows/Linux/macOS操作系统的PC电脑。这种通讯协议几乎是个人,甚至是一个公司也难以完成以及推动持续性发展的。
当然这种时候总会有一些国际大公司会挺身而出,将通讯协议开放,例如IBM的MQTT协议,基本上能够适应我们从小到单片机,大到PC机要求。现在主流的基于WIFI技术的智能硬件都是采用该协议实现从设备端连接到云端。试想一下,如果所有的大大小小的智能硬件都可以通过MQTT连接到云端,那么不就实现了我们说的互联互通问题吗?的确如此,使用MQTT互联互通的确实现了,但是还是有一些不足的地方,我们设备之间交互数据必须通过云端中转,本来我们家里的智能硬件都是在一个局域网络上,现在即使为了交互1字节的数据,也要通过云端平台才可以实现,万一家里网络断了呢?另外大家有没有考虑下这些数据是我们生活中的一部分,也是我们的隐私,数据也是有价值的,随便通过网络中转,即使有加密措施,万一出现个艳照门,那就得不偿失了。
所以到底MQTT是不是一个好技术?当然是的,我们后面再看怎么用。继续互联互通这个话题,要单纯实现设备之间相互发现,到底有没有成熟的方案,答案是肯定有的,要相信这个世界上还有很多比我们自己牛B的人,也有很多牛B的公司。我们能够想到的,早就有人或者公司已经实现了。
Qualcomm公司早在2012年开放了其Qualcomm Innovation Center开发的AllJoyn开源项目,主要用于近距离无线传输,通过WiFi或蓝牙技术(目前我个人理解AllJoyn还是以WIFI为主),定位和点对点文件传输。近距离无线通讯意味着我们所有的数据都在局部网络中流通,而设备之间可以相互发现,实现智能硬件之间相互访问。不知大家有注意一个细节没有,在微软Win10中AllJoyn通讯是以一个秘密武器出现的(虽然目前基于AllJoyn应用还比较少)。
AllJoyn目前支持的平台种类非常多,例如带有WIFI功能的RTOS,Arduino硬件,Linux和Android,iOS以及Windows,Mac系统。稍稍具体一点的技术细节我们再后续的章节里面再分享给大家。大家现在如果期望了解更多的AllJoyn框架与技术细节,可以百度下allseenalliance这个组织,里面相关源代码都有提供,示例非常丰富,基本入门的文档也比较完善。
所以AllJoyn能够给我们带来什么?它能够给我们完善的一套智能硬件间的互联互通方案,理论上来说,文章一开始提到的所有智能硬件,只要是支持WIFI/蓝牙通讯,都可以采用AllJoyn框架实现互联互通。无论我们想发布什么样的数据(文本,语音,视频数据,文件等),我们都可以通过Alljoyn来完成,我们每个智能硬件之间都可以感知到对方的存在,甚至都可以随时获得对方支持的功能,调用方式,当然这些智能硬件必须是存在一个本地的网络中,即是我们智能路由器所管理的一个网络里。
举个例子,例如我们在家里有室内温湿度传感器,空气质量传感器,计算10秒内的平均温湿度值与空气质量值通过AllJoyn网络共享给所有的智能硬件,我们云平台需要关注到这么细节的数据吗?又有谁会去看呢?大多数智能硬件对室内各个房间里的温湿度传感器与空气质量传感器的数据不关心,但是我们家里的中央空调系统会关心,中央空调担心不能给家里的用户提供一个很好的舒适健康环境,又担心家里使用中央空调费用直线飙升,那怎么办?中央空调在家里第一次有人入住时有一个初始的配置,随着使用的过程中,用户可能觉得效果不达标,对中央空调进行人工干预,对使用费用不满意进行反馈,所有这些数据都会通过AllJoyn通讯汇总到我们家里的网络入口处-智能路由器,由智能路由器进行梳理归类,结合各种传感器数据,将待分析的样本交给云平台分析,云平台只分析它所需要分析的,而绝对不是全部。
所以这些AllJoyn网络中的原始数据,它是我们的大数据,也可以形象点说是“物联网的潜意识”,而此时的云平台,从目前远程管理存储维护到“深度学习云平台+情景经验库”。每个智能硬件都有他的使命与使用情景,通过实现最基础情景入手,不同情景之间错综复杂的交互而不需要人脑的参与,我们人脑不需要一定弄明白这套系统怎么工作的,但是他的确能够很好完成工作,这就是未来的物联网。
所以,这就是目前阶段常州开发物联网智能硬件公司点个赞科技来理解的物联网智能硬件之间的互联互通。只要好好想一想,即使是面对我们住宅/小区这种生活中的应用,实现一个小小的情景,也是非常复杂的一件事,是一个系统工程。单独靠一家公司是难以完成的,不然百度谷歌不会开源深度学习平台,高通也不会开放AllJoyn资源,在物联网生态里,我个人理解是需要向工业自动化行业借鉴一些经验,有更加细致的分工,这样才能逐步由单体到群体,由简单到复杂,才能构建我们未来的物联网世界。