IoT Platform · Interactive Teaching

物联网平台 核心概念 交互演示

通过动画演示理解三方协作关系,以及属性、服务、事件如何驱动设备与云端的数据交互

Section 01
三方关系:平台 · 设备 · 订阅者

物联网平台是消息中转枢纽(Broker),设备是数据的生产者与执行者,订阅者是数据的消费者与指令发起方。 三方之间通过 MQTT 主题(Topic)解耦通信 — 设备和应用都不直接对话,全程经由平台路由。

MQTT · TCP MQTT · TCP (通过平台间接通信) ☁️ 物联网平台 Broker · 数据存储 · 规则引擎 🔌 设备 STM32 + ESP8266 MQTT Publisher & Subscriber 📱 订阅者 小程序 · 后台应用 MQTT Subscriber & Publisher 发布者 / 执行者 订阅者 / 指令方 消息枢纽 / 路由
点击模拟数据流
消息日志
▷ 点击上方按钮开始模拟...

Section 02
产品模型与设备实例

产品(Product Model) 是设备的「类定义」 — 描述这类设备有哪些能力; 设备(Device) 是产品的「实例」 — 每台实体硬件对应一个设备记录,共享同一份能力模型但拥有独立的数据。

PRODUCT MODEL · 产品模型(模板 / 类)
🌡️
IoT 中控传感器
product_id: IOT_CENTER_001 · 协议: MQTT · 数据格式: JSON
🟢 属性(Properties)
temperaturefloat上报/读取
humidity float上报/读取
led_statesarray下发/读取
wifi_rssi int 上报
🔵 服务(Services)
setBrightnesscmd下发
setLed cmd下发
reboot cmd下发
factoryResetcmd下发
🔴 事件(Events)
tempAlarm alert上报
humiAlarm alert上报
wifiDisconnectinfo 上报
bootComplete info 上报
↓  每台实体设备注册后,生成独立设备实例(共享产品模型能力定义) ↓
🔌
dev_A8F3C1
实验室设备 A
在线
🔌
dev_B2D9E7
会议室设备 B
在线
🔌
dev_C5F041
仓库设备 C
离线
🔌
dev_D7A2B8
测试设备 D
在线
📊
设备数据
dev_xxx

Section 03
属性 · 服务 · 事件 的区别与用法

产品模型的三种能力定义,分别对应设备数据的三种交互模式:状态读写(属性)、指令执行(服务)、主动通知(事件)。

🌡️
属性(Properties)
Device State / Data Points
设备平台应用 (上报)
应用平台设备 (写入)
触发时机
定时 / 值变化 / 平台主动读
方向
双向(上报 + 可写)
类比
类的成员变量
典型场景
温度、湿度、LED 状态
MQTT Topic(属性上报)
$oc/devices/{device_id}/sys/properties/report { "services": [{ "service_id": "sensor", "properties": { "temperature": 26.1, "humidity": 55.3 }, "eventTime": "20260507T102030Z" }] }
⚙️
服务(Services)
Command / RPC Call
应用平台设备 (下发)
设备平台应用 (响应)
触发时机
应用/用户主动发起
方向
应用 → 设备(+响应)
类比
类的成员方法调用
典型场景
开关LED、设置亮度、重启
MQTT Topic(命令下发)
$oc/devices/{device_id}/sys/commands/{cmd_id} { // 平台 → 设备:下发指令 "command_name": "setBrightness", "paras": { "brightness": 80 } } // 设备 → 平台:执行响应 { "result_code": 0, "response_name": "setBrightness" }
🚨
事件(Events)
Device-initiated Alert / Notify
设备平台应用/告警 (主动推)
✕ 应用无法主动触发 · 设备决定何时上报
触发时机
设备检测到异常条件时
方向
单向:设备 → 平台
类比
中断 / Callback 回调
典型场景
温度超限、WiFi断开告警
MQTT Topic(事件上报)
$oc/devices/{device_id}/sys/events/up { "services": [{ "service_id": "sensor", "event_type": "tempAlarm", "event_time": "20260507T103045Z", "paras": { "temperature": 85.0, "severity": "critical" } }] }
概念谁发起方向触发时机 有无响应MQTT Topic 关键词典型例子
属性 Properties设备(上报)/ 应用(写入读取) 双向定时 / 变化 / 请求 读写有响应/properties/report温度 26.1℃、湿度 55%
服务 Services应用 / 平台规则 应用 → 设备(+响应)用户/规则主动触发 有响应(success/fail)/commands/{id}setLed(ON)、setBrightness(80)
事件 Events设备(条件触发) 设备 → 平台(单向)设备检测到异常 无响应(Fire & Forget)/events/uptempAlarm 85℃、WiFi断开