物联网和低代码开发
初识物联网#
物联网的概念#
20 世纪末,随着计算机网络和通信技术的兴起,互联网开始走进并融入人们的生活。传统互联网通常以人作为主体,数据的产生和传输都在人的控制下进行,数据的应用结果也在具体的人身上得到反映。以网络短视频为例,拍摄、上传和观看等环节都离不开用户的主动参与,而短视频平台对用户产生的数据进行分析和处理后,再根据偏好情况推送相关内容,最终受影响的依旧是用户本身。可以看出,传统互联网的大部分流程都是围绕人在运行和发展的。
随着技术的不断演进,物与物之间信息传输和交换的需求日趋增加,物联网(Internet of Things, IoT)的概念应运而生。
物联网是一个将所有物体连接起来组成的物-物相连的互联网络。它利用各种信息传感器、射频识别技术、全球定位系统、红外线感应器、激光扫描器等各种装置与技术,实时采集任何需要监控、连接、互动的物体或过程,采集其声、光、热、电、力学、化学、生物、位置等各种需要的信息,通过各类可能的网络接入,实现物与物、物与人的泛在连接,实现对物品和过程的智能化感知、识别和管理。
现代物联网在本质上属于互联网的延伸。它将传统互联网的基础设施作为信息传递的载体,打破了时间和空间的限制,让“物”成为了数据产生和消费的主体,极大地拉近了“人与物”“物与物”的距离。以智慧农业灌溉为例,土壤中预埋的湿度传感器将土壤水分信息定时地上传到云端平台,当平台的程序监测到土壤缺水时,按照预设的规则,远程启动田间的灌溉设备,从而控制土壤含水量在合适水平。在这个场景中,无需人的参与,所有的流程都是靠物与物之间的交互完成,涉及的数据也是与“物”本身直接相关的。
当前,物联网的涵义和外延仍在不断的变化和发展中,因此还没有一个清晰准确的定义。不过,从上面的介绍中,可以大致看出物联网的特点:物联网是以“物”为主体的互联网,在形式和内容上处处体现着“物”的特征。因此,物联网应用的整体架构和开发方式也与传统的互联网应用有着显著的区别。
如今,物联网已经成为一种新型信息基础设施和社会经济发展模式。它在工业、农业、环境、交通、物流、安保等基础设施领域,在家居、医疗健康、教育、金融与服务业、旅游业等与生活息息相关的领域,都有着广泛的应用和创新,有效地推动了这些方面的智能化发展,使得有限的资源更加合理地使用分配,从而提高了行业效率,也大大地提高了人们的生活质量。
随着经济和科技的快速发展,20 多年前关于“万物互联”的幻想开始走入现实。从身边的各类智能设备、智能家居,到智慧地球和“元宇宙”的最新概念,物联网为这些技术变革提供了坚实有力的支撑。
物联网的体系结构#
“下班前,打开手机中的开关,控制空调启动,到家后,即可享受舒适的室内温度。”这是日常生活中司空见惯的物联网应用场景。大部分物联网应用都和远程开空调一样,在用户层面的感知十分简单纯粹。但实际上,要实现这样一个简单的物联网应用,并不是一件容易的事。
一个完整的物联网应用,需要涉及到较多的技术、环节和角色。从数据流向和功能角度,物联网生态系统的体系结构可被大致分成四个层级。各层级执行属于自身的特定的功能,同时也通过各种渠道与其他层级之间进行互动,进而实现完整的物联网功能。
终端层#
终端层(Terminal Layer),又称感知层(Perception Layer)或感知控制层,是物联网体系中最基础的一层。终端层的核心功能是与物理世界的交互,进而实现对现实对象(环境参数、设备状态等)的感知和对具体设备的控制。
终端层是绝大部分物联网实体设备(如传感器、RFID 等)的所在地。传感器通过将现实世界的物理量转换为电信号,实现信息采集和识别的重要作用。实际的物联网设备中,除了传感器,通常还具备用于协调和控制所有功能和部件运行的主控和用于网络接入的通信模块等部件。
网络层#
网络层(Network Layer)是负责将终端层的设备收集的数据传输到平台层,以及将平台层的控制指令发送回终端层的双向通信的桥梁。从功能维度,网络层又可分为接入层(Access Layer)和传输层(Transport Layer)。
接入层主要涉及传统 OSI 模型中的物理层和数据链路层的功能,简单来说,就是设备接入网络、实现互联的各种方式。从介质上,可分为有线网络接入和无线网络接入两类。有线网络接入方式包括以太网、串行通信(如 RS-232、RS-485)和 USB 等。无线网络接入方式包括 Wi-Fi、蓝牙、蜂窝网络(如 2G/3G/4G/5G,将在 下一节 进行详细介绍)、低功耗广域网(如 LoRaWAN、NB-IoT)等。
传输层建立在接入层之上,包括了数据上报和下发的通信协议。与互联网终端相比,目前大部分物联网终端设备在处理性能、存储容量、网络速率等方面的可用资源较少,因而在通信时倾向于选择占用资源更少的通信协议,如 MQTT(Message Queuing Telemetry Transport)和 CoAP(Constrained Application Protocol)等。这些协议都是基于发布/订阅(Publish/Subscribe)模式的,可以实现设备和平台之间的双向通信,同时也支持数据加密和压缩等功能。
平台层#
平台层(Platform Layer)是物联网架构的中间层,是数据被处理、存储和分析的地方。在过去,这一层一般由独立的服务器构成。随着微服务和云计算等技术的发展,现代的物联网平台层通常包括了基于云的系统性平台、数据分析引擎和中间件,使开发者能够在物联网基础设施之上构建和部署应用程序。
平台层在功能上作为承接设备和行业应用的中间服务,在整个物联网体系架构中起着承上启下的作用,承载了抽象化的业务逻辑和标准化的核心数据模型。一个典型的平台层不但可以实现设备的快速接入,还可以提供强大的模块化能力,满足行业应用场景下的各类需求。
除了提供基本的设备接入和管理功能外,成熟的物联网平台层通常还包括安全管理、监控运维、规则引擎、边缘计算等功能,为实际应用提供更多的方便。
应用层#
应用层(Application Layer)是物联网架构的顶层,是物联网数据真正产生价值的地方,也是物联网与人产生直接关联的层次。应用层包括网络和移动应用程序、仪表板和其他用户界面,使用户能够监测和控制设备,访问数据,并执行其他任务。在大部分场景中,应用层承接平台层的数据并进行分析和处理,再将结果应用于各类自动化流程,或是在与用户的交互中予以呈现。应用层还可以包括机器学习和人工智能算法,使系统能够从数据中不断学习,并随着时间的推移而对结果进行优化。
典型的物联网工程#
为了更好地让读者理解物联网的体系结构和相关技术,我们再次以前文中提到的远程开启空调为例,介绍一个典型的物联网工程的内容和开发流程。
需求分析#
对于大部分工程项目,了解和细化需求是开发的第一步。在没有充分理解需求的基础上盲目启动开发工作往往会影响开发效率和最终效果,甚至造成不可挽回的损失。
在空调这个项目里,最初了解到的需求也许只有“远程开空调”这一项。面对这种需求,大部分人会设想的场景和流程是:
在手机或平板电脑上按下某个 App 中的按键,App 发送指令给服务器,服务器再发送命令给用户家中的某个本地设备,本地设备控制空调启动。