跳到主要内容

物联网平台

物联网平台是物联网系统的核心,提供设备管理、数据存储、规则引擎等基础能力。本文将介绍主流物联网平台的特点和选型指南。

平台概述

什么是物联网平台?

物联网平台是连接设备与应用的中间层,提供设备接入、数据管理、规则引擎、应用使能等核心能力。

平台核心功能

┌─────────────────────────────────────────────────────────┐
│ 物联网平台 │
├─────────────────────────────────────────────────────────┤
│ 设备管理 │ 数据管理 │ 规则引擎 │ 应用使能 │
│ ───────── │ ───────── │ ───────── │ ──────── │
│ • 设备注册 │ • 数据存储 │ • 数据转发 │ • API │
│ • 状态监控 │ • 数据查询 │ • 告警规则 │ • SDK │
│ • 配置管理 │ • 数据分析 │ • 设备联动 │ • 可视化 │
│ • 固件升级 │ • 数据备份 │ • 场景编排 │ • 集成 │
└─────────────────────────────────────────────────────────┘

公有云 IoT 平台

AWS IoT Core

平台特点:

  • 全球基础设施覆盖
  • 丰富的服务生态
  • 企业级安全合规
  • 支持海量设备连接

核心服务:

服务功能
IoT Core设备连接、消息路由
IoT Device Management设备管理
IoT Analytics数据分析
IoT Events事件检测
IoT SiteWise工业数据收集

设备接入示例:

import boto3
import json

iot_client = boto3.client('iot-data', region_name='us-east-1')

def publish_telemetry(device_id, data):
topic = f'devices/{device_id}/telemetry'
iot_client.publish(
topic=topic,
payload=json.dumps(data)
)

publish_telemetry('sensor-001', {
'temperature': 25.5,
'humidity': 60,
'timestamp': '2024-01-01T00:00:00Z'
})

Azure IoT Hub

平台特点:

  • 与微软生态深度集成
  • 强大的边缘计算能力
  • 企业级安全认证
  • 支持 OPC-UA 工业协议

核心服务:

服务功能
IoT Hub设备连接、消息路由
IoT Central托管应用平台
IoT Edge边缘计算
Digital Twins数字孪生
Time Series Insights时序数据分析

设备接入示例:

from azure.iot.device import IoTHubDeviceClient, Message

connection_string = "HostName=your-hub.azure-devices.net;DeviceId=device-001;SharedAccessKey=xxx"
client = IoTHubDeviceClient.create_from_connection_string(connection_string)

def send_telemetry(temperature, humidity):
message = Message(json.dumps({
'temperature': temperature,
'humidity': humidity
}))
client.send_message(message)

send_telemetry(25.5, 60)

阿里云 IoT 平台

平台特点:

  • 国内生态完善
  • 本地化支持好
  • 行业解决方案丰富
  • 性价比高

核心服务:

服务功能
物联网平台设备管理、数据流转
物联网边缘计算边缘网关
物联网数据分析数据分析
物联网应用开发低代码开发

设备接入示例:

import paho.mqtt.client as mqtt
import json
import time
import hmac
import hashlib

def generate_sign(product_key, device_name, device_secret):
timestamp = str(int(time.time()))
sign_content = f"clientId{device_name}deviceName{device_name}productKey{product_key}timestamp{timestamp}"
sign = hmac.new(device_secret.encode(), sign_content.encode(), hashlib.sha256).hexdigest()
return timestamp, sign

product_key = "your_product_key"
device_name = "your_device_name"
device_secret = "your_device_secret"

timestamp, sign = generate_sign(product_key, device_name, device_secret)
username = f"{device_name}&{product_key}"
password = f"hmacsha256,{sign}"

client = mqtt.Client(client_id=device_name)
client.username_pw_set(username, password)
client.connect(f"{product_key}.iot-as-mqtt.cn-shanghai.aliyuncs.com", 1883)

topic = f"/sys/{product_key}/{device_name}/thing/event/property/post"
payload = {
"id": "1",
"version": "1.0",
"params": {
"temperature": 25.5,
"humidity": 60
}
}
client.publish(topic, json.dumps(payload))

华为云 IoT 平台

平台特点:

  • 边云协同能力强
  • 工业物联网优势
  • 国产化支持
  • 安全合规

核心服务:

服务功能
设备接入设备连接管理
设备管理设备生命周期管理
数据分析数据处理分析
边缘计算边缘网关管理

开源 IoT 平台

ThingsBoard

平台特点:

  • 开源免费
  • 功能完善
  • 可视化强
  • 支持多租户

核心功能:

  • 设备管理:设备注册、配置、监控
  • 数据存储:时序数据存储
  • 规则引擎:可视化规则配置
  • 可视化:仪表盘、图表

部署方式:

# Docker 部署
docker run -it -p 9090:9090 \
-v ~/.my-thingsboard-data:/data \
-v ~/.my-thingsboard-logs:/var/log/thingsboard \
thingsboard/tb-postgres

设备接入示例:

import paho.mqtt.client as mqtt
import json

ACCESS_TOKEN = "your_device_token"

client = mqtt.Client()
client.username_pw_set(ACCESS_TOKEN)
client.connect("thingsboard.example.com", 1883)

telemetry = {
"temperature": 25.5,
"humidity": 60
}
client.publish("v1/devices/me/telemetry", json.dumps(telemetry))

EMQX

平台特点:

  • 高性能 MQTT Broker
  • 支持百万级连接
  • 丰富的协议支持
  • 企业级特性

核心功能:

  • MQTT Broker:消息代理
  • 规则引擎:数据转发
  • 设备管理:设备认证
  • 监控告警:系统监控

部署方式:

# Docker 部署
docker run -d --name emqx \
-p 1883:1883 \
-p 8083:8083 \
-p 8084:8084 \
-p 8883:8883 \
-p 18083:18083 \
emqx/emqx:latest

Mosquitto

平台特点:

  • 轻量级 MQTT Broker
  • 低资源占用
  • 配置简单
  • 适合小型部署

部署方式:

# Docker 部署
docker run -it -p 1883:1883 \
-v /mosquitto/config:/mosquitto/config \
-v /mosquitto/data:/mosquitto/data \
-v /mosquitto/log:/mosquitto/log \
eclipse-mosquitto

Node-RED

平台特点:

  • 可视化流程编排
  • 丰富的节点库
  • 快速原型开发
  • 低代码平台

核心功能:

  • 流程编排:可视化拖拽
  • 协议支持:MQTT、HTTP、Modbus 等
  • 数据处理:函数节点
  • 集成:第三方服务集成

平台选型指南

选型考虑因素

因素说明
部署方式公有云 vs 私有化部署
设备规模设备数量、并发连接数
功能需求设备管理、数据分析、边缘计算
成本预算平台费用、流量费用
安全合规数据安全、隐私保护
技术支持文档、社区、技术支持

场景推荐

场景推荐平台原因
企业级应用AWS IoT / Azure IoT功能全面、生态完善
国内应用阿里云 IoT / 华为云 IoT本地化支持、性价比高
私有化部署ThingsBoard / EMQX开源、可控
快速原型Node-RED低代码、快速开发
工业物联网Azure IoT / 华为云 IoT工业协议支持、边云协同

平台核心能力

设备管理

设备生命周期:

注册 → 激活 → 运行 → 维护 → 废弃

核心功能:

  • 设备注册:设备身份认证
  • 设备影子:设备状态同步
  • 配置管理:远程配置下发
  • 固件升级:OTA 更新
  • 设备分组:批量管理

数据管理

数据流转:

设备 → 平台 → 规则引擎 → 存储/应用

核心功能:

  • 数据存储:时序数据库
  • 数据查询:SQL/API 查询
  • 数据分析:聚合、统计
  • 数据导出:数据备份

规则引擎

规则类型:

  • 数据转发:转发到其他服务
  • 告警规则:条件触发告警
  • 设备联动:设备间协同
  • 场景编排:复杂业务逻辑

规则示例:

-- 温度超过阈值告警
SELECT
device_id,
temperature,
timestamp
FROM device_data
WHERE temperature > 30

小结

物联网平台是物联网系统的核心,选择合适的平台需要综合考虑部署方式、设备规模、功能需求、成本预算等因素。公有云平台适合快速部署和企业级应用,开源平台适合私有化部署和定制开发。

下一步,我们将学习设备开发,了解嵌入式开发和固件编程的核心技术。