两种靠谱的方案,是HTML和远程桌面。
远程桌面是一个很好的解决方案,手机只是一个远程显示终端,而不是一个功能终端,手机只充当节点的显示器和触摸屏,这就要求,节点上的操作系统,其gui必须支持远程桌面,该远程桌面必须具备以下特性:
极其省资源,必须能够在只有几十K内存的节点上运行,你总不能要求一个微波炉控制器拥有数M的内存吧。
极其节省带宽,有些节点的功耗非常低,低功耗意味着低主频,即使你用WiFi接口,其传输带宽也必然非常小,要在非常低的速率下实现远程桌面,是一个挑战。我做过测试,普通的非动画桌面,串口就可以流畅传输。
无论节点本身是否有显示器、触摸屏、按钮,都可以实现远程界面。
使用远程桌面后,你的手机只需要安装一个智能设备APP,点开该APP后,你家里的所有智能设备都会被罗列在里面。
远程桌面的缺点是,动画显示很困难,尤其是大面积的动画,有些消费品是有这个需求的,这种时候,就要使用HTML了。除了动画外,远程界面的优势还是很明显的。
首先是兼容性问题,浏览器的标准化程度其实不高,网银挑浏览器大家都知道了,就是准备这次视频之前,测试过几个直播网站,既挑浏览器,又挑操作系统,很令人失望。
其次是一致性问题,有许多智能硬件,本机是有显示界面的,比如冰箱,在家里,你可能习惯于直接在冰箱上操作,用冰箱本身的界面操控设备,在外面,你就用手机操作,界面跟冰箱上的界面完全一样,就像站在冰箱前操作一样,无须学习两套界面。如果冰箱上和手机上的界面不一样的话,你会抓狂的,远程桌面天生就是完全一样的。而使用HTML的话,你则要自己维护两份界面的一致性,不要小看维护这个一致性问题,搞过硬件的人就知道,维护原理图和bom表的一致性,是一个致命的工作;维护过两个以上并行软件版本的人也应该清楚,确保两个版本应该相同的部分是一致的,是非常困难的。
大家来看一个有趣的图片,某网站的NBA转播界面,比分以不同的形式,出现在同一个界面的3个位置,居然都不一样。
说了那么多物联网应用,气质在工业控制上,才是远程界面真正体现价值的地方,有兴趣的同学,欢迎私下跟我交流。
以上是物联网的核心基础问题,其实物联网的问题远远不止这些,试举几个:
信息安全问题,斯诺登事件,使人无法相信网络,特别是中心服务器,过去,人们认为闭源可以确保安全,但斯诺登事件,使人们不相信闭源服务器的运维组织,反而开源更易于获得信任。无中心的可信连接,点对点通信可以绕开不受信任的云。
普通老百姓对于安全性的担心,更为直接些,例如,智能门锁会不会被人破解呢?黑客贼是否可以通过家里电器的开关情况知道何时家里没人而方便下手呢?家里的摄像机是否会被黑客控制?
使用寿命问题,长寿命的基础设施,长期维护和服务很困难,坏了谁来修,供应商倒闭了呢?比如智能门锁,普通门锁用几十年基本不会坏,而智能门锁则不然,电子设备普遍不能超过10年,大多数5年就坏了。
电子设备可靠性问题,智能灯泡的控制器坏了,开不了或者关不掉怎么办?
降低研发成本,操作系统需要提供提供易学易用的开发方法和开箱即用的解决方案。
稍微总结一下,操作系统究竟解决了物联网的什么问题。
连接:操作系统通过集成常见的网络协议栈,例如TCP/IP、ZigBee、蓝牙、WiFi驱动等,算是为解决连接问题作出了贡献。
智能硬件间的区别和识别:这两个问题,似乎真的跟操作系统没啥关系,基本上只能为同一厂家产品之间的“区别和识别”提供部分帮助。
沟通和互操作:物和物之间的沟通和互操作,操作系统基本上看热闹而已,同样只能对使用同一个厂商提供的开发工具开发的特定应用提供一些帮助,其互操作,基本仅限于使用它们的开发工具开发的智能硬件,且主要是物和人之间;人和物之间的互操作,支持支持远程桌面和webserver的操作系统能够提供比较完善的帮助。