2. 物联网基础架构

物联网系统设计的第一课,不是选型,而是建立分层思维。许多项目失败,并非硬件不行或云端不稳,而是将感知、传输、平台、应用混为一谈,导致接口混乱、协议错配、数据链路失控。本章从经典的四层模型出发,厘清每一层的职责边界,再深入设备接入的三种通信模式,最后给出MQTT、CoAP、HTTP三大协议的选型决策框架。理解这些内容,是后续进行设备接入开发、平台对接和运维排障的基石。

物联网四层架构与设备接入通信模式 应用层 行业应用:智慧园区、工业监控、车联网、智能家居APP API / 数据可视化 / 规则引擎 RESTful API / WebSocket / 消息推送 平台层 设备管理、数据存储、规则引擎、影子设备、OTA升级 MQTT Broker / 时序数据库 / 设备影子 设备注册 / 鉴权 / 生命周期管理 网络层 通信传输:Wi-Fi、4G/5G、NB-IoT、LoRa、以太网 IP网络 / 非IP网络(LoRaWAN) 网关汇聚 / 协议转换 / 安全传输 感知层 传感器、执行器、RFID、摄像头、MCU/SoC 数据采集 / 信号调理 / 本地控制 I2C / SPI / UART / GPIO / ADC 直连模式 设备 ↔ 平台(MQTT/CoAP/HTTP) 网关模式 设备 → 网关 → 平台(协议转换) 边缘模式 设备 → 边缘节点 → 平台(本地计算) MQTT / CoAP / HTTP

上图展示了物联网四层架构的完整视图。感知层负责物理世界的数字化,网络层解决数据如何传输,平台层提供设备管理与数据服务,应用层面向最终用户交付价值。右侧标注的三种协议贯穿网络层与平台层之间,是设备接入的核心技术选型。下面逐一展开。

2.1 四层模型的核心原理与职责边界

核心原理:物联网分层模型并非简单的功能堆叠,而是为了解耦。每一层只关注自己的职责,通过标准接口与相邻层交互。感知层不关心数据如何到达云端,平台层不关心传感器具体型号。这种解耦带来的直接好处是:更换传感器不影响平台逻辑,升级通信协议不影响应用层代码。

层次核心职责典型技术关键接口常见误区
感知层数据采集与执行控制传感器、MCU、RTOSI2C/SPI/UART/GPIO忽略信号调理与电源噪声
网络层数据传输与路由Wi-Fi、4G、NB-IoT、LoRaIP/非IP、网关协议转换盲目追求高带宽,忽视功耗
平台层设备管理、数据存储、规则引擎MQTT Broker、时序数据库MQTT/CoAP/HTTP API设备影子与真实状态不同步
应用层业务逻辑与用户交互Web/APP、可视化、报表RESTful API、WebSocket直接访问设备,绕过平台

判断方法:在实际项目中,判断一个组件属于哪一层,可以问三个问题:它是否直接与物理世界交互?它是否负责数据格式转换?它是否为上层提供API服务?例如,一个温湿度传感器属于感知层,但一个带有协议转换功能的DTU(数据传输单元)则横跨感知层与网络层。

经验提醒:在架构设计阶段,建议先画一张“数据流图”,标注每个数据从产生到消费的完整路径。这能帮助团队明确每一层的边界,避免后续开发中出现“平台层直接控制传感器”这类架构污染。

2.2 设备接入的三种通信模式:直连、网关、边缘

核心原理:设备接入模式取决于三个约束:网络环境(是否有公网IP)、功耗预算(电池供电还是市电)、实时性要求(毫秒级还是秒级)。三种模式各有适用场景,并非越先进越好。

  • 直连模式:设备内置Wi-Fi/4G模块,直接与云平台建立连接。适用于网络条件好、设备数量少、需要独立工作的场景。优点是架构简单、时延低;缺点是每台设备都要消耗一张SIM卡或Wi-Fi配置,大规模部署成本高。
  • 网关模式:设备通过短距通信(Zigbee、BLE、RS485)连接网关,网关再通过以太网/4G上行到平台。适用于设备密集、通信协议异构的场景。网关承担协议转换、数据汇聚、本地缓存等职责。
  • 边缘模式:在网关基础上增加本地计算能力,如规则引擎、AI推理、数据清洗。适用于对实时性要求高、网络不稳定、数据量大的场景。边缘节点可以独立运行,断网时业务不中断。

操作流程(网关模式为例):

  1. 设备侧:传感器通过RS485总线以Modbus-RTU协议上报数据。
  2. 网关侧:网关轮询RS485总线,解析Modbus帧,转换为JSON格式。
  3. 上行:网关通过MQTT over TLS将JSON数据发布到平台Topic。
  4. 平台侧:平台订阅Topic,解析JSON,写入时序数据库。
  5. 反向控制:平台下发指令到网关,网关转换为Modbus写寄存器命令。
案例拆解:某工厂能耗监测项目
背景:工厂有200个电表、50个水表,分布在3个车间,现场无Wi-Fi覆盖,但有工业以太网。
初始方案:每个表计加装4G DTU直连云平台。评估后发现:250张SIM卡月租费用高,且4G模块功耗大,电表内部空间不足。
调整方案:采用网关模式。每个车间部署1台边缘网关,通过RS485总线连接所有表计,网关通过以太网上行到平台。网关内置Modbus主站功能,每5秒轮询一次所有表计。
关键参数:网关轮询周期5秒,单次采集数据量约200字节,上行MQTT QoS=1,心跳间隔60秒。
结果:SIM卡费用降为0,网关功耗远低于250个4G模块,且断网时网关本地缓存2小时数据,网络恢复后补传。
复盘:网关模式不仅降低了成本,还提升了系统的可维护性——更换表计时只需在网关侧修改配置,无需动平台。
风险提示:网关模式引入单点故障风险。如果网关宕机,其下所有设备将失联。建议网关采用双机热备或至少配置看门狗与自动重启机制。边缘模式虽然计算能力强,但开发复杂度显著增加,需评估团队是否具备边缘计算框架(如KubeEdge、Azure IoT Edge)的维护能力。

2.3 MQTT、CoAP、HTTP协议选型

核心原理:三种协议的设计哲学完全不同。HTTP是请求-响应模型,适合客户端主动拉取数据;MQTT是发布-订阅模型,适合设备主动上报和平台主动下发;CoAP是面向受限设备的轻量级请求-响应协议,基于UDP,适合低功耗、低带宽场景。

维度MQTTCoAPHTTP
传输层TCP(默认)UDPTCP
模型发布/订阅请求/响应请求/响应
报文开销2字节固定头4字节基础头较大(含Header)
QoS支持0/1/2Confirmable/Non-confirmable无原生QoS
适用场景频繁上报、双向通信、长连接受限节点、低功耗、少量数据Web管理、API调用、一次性查询
典型端口1883/88835683/568480/443

判断方法:选型时按以下顺序决策:

  1. 设备是否支持TCP/IP协议栈?如果不支持,只能选CoAP或网关转换。
  2. 是否需要平台主动下发指令?如果需要,MQTT的发布/订阅模型最合适。
  3. 数据上报频率如何?高频(每秒多次)选MQTT,低频(每小时一次)选CoAP或HTTP。
  4. 网络是否稳定?弱网环境选MQTT QoS=1,配合持久会话。
  5. 是否需要Web端直接访问设备?如果需要,HTTP RESTful API最直接。
实战场景:智能路灯项目协议选型
需求:每盏路灯内置控制器,每30秒上报电流、电压、功率因数;平台可远程控制开关和调光;路灯数量5000盏。
分析:上报频率中等,需要双向通信,设备数量大。HTTP每30秒一次请求,5000盏灯意味着每秒约167个请求,服务器压力大且无法主动下发。CoAP虽然轻量,但平台侧需要额外适配。最终选择MQTT:每盏灯维持一个长连接,上报Topic为streetlight/{id}/telemetry,控制Topic为streetlight/{id}/cmd。
关键配置:QoS=1,KeepAlive=60秒,CleanSession=false(断线重连后不丢失离线消息)。
结果:单台EMQX Broker轻松支撑5000连接,消息延迟小于100ms。
代价:需要维护MQTT Broker集群,且设备端需要实现MQTT客户端库,开发量比HTTP略大。
常见误区:不要因为MQTT功能强大就所有场景都用MQTT。例如,一个只做远程配置的设备,用HTTP POST一个JSON即可,引入MQTT反而增加复杂度。另外,CoAP虽然基于UDP,但若需要可靠传输,必须实现Confirmable消息重传机制,这比TCP的可靠性处理更复杂。

总结复盘:本章的核心在于建立“分层+模式+协议”的三维决策框架。分层解决系统边界问题,模式解决设备如何接入的问题,协议解决数据如何传输的问题。在实际项目中,建议先确定分层架构,再根据设备分布和网络条件选择接入模式,最后根据通信需求选择协议。三者相互关联:例如,选择网关模式后,网关与平台之间通常用MQTT,而网关与设备之间可能用Modbus或CoAP。理解这种嵌套关系,是物联网架构设计的基本功。