为什么需要物联网平台

你的IoT设备量从10台涨到1000台的时候,问题开始出现:

  • 设备怎么注册和管理?
  • 数据怎么存储和查询?
  • 规则引擎怎么做(温度超过80度报警)?
  • OTA怎么批量推送?
  • 多租户和权限怎么管?

这些问题自己从头写,少则3个月多则半年。用现成的开源物联网平台,1周就能跑起来。

2026年最值得关注的几个开源物联网平台:ThingsBoard、FastBee、EMQX。选哪个?这取决于你的团队技术栈和项目需求。

平台对比

ThingsBoard

技术栈:Java + Spring Boot(后端),Vue.js(前端),PostgreSQL/PostGIS(数据)

优势

  • 社区最活跃,GitHub 17k+ Star
  • 文档完善,英文为主但有中文社区翻译
  • 规则引擎可视化设计,支持复杂的消息处理链
  • 自带仪表盘编辑器,拖拽式生成数据可视化
  • 支持MQTT、CoAP、HTTP、LwM2M多协议
  • 资产管理和设备管理功能完整

劣势

  • Java生态,部署重(需要至少2GB内存起步)
  • 学习曲线较陡,概念多(Device、Asset、Customer、Dashboard)
  • 深度定制需要理解Java代码
  • 默认时序数据库推荐Cassandra,运维复杂

适用场景:中大型项目,团队有Java经验,需要可视化仪表盘

FastBee

技术栈:Spring Boot + Vue + MQTT(内置)

优势

  • 国产开源,文档和社区以中文为主
  • 内置MQTT服务端,不需要额外部署EMQX
  • 前端Vue + ElementUI,上手门槛低
  • 支持微信小程序、Android、iOS、H5移动端
  • 设备端兼容ESP32/ESP8266,有现成的Arduino SDK
  • 部署相对轻量

劣势

  • 社区规模和生态不如ThingsBoard
  • 规则引擎功能较弱
  • 仪表盘不如ThingsBoard灵活
  • 深度定制能力有限

适用场景:中小型项目,国产化要求,团队以Vue/Spring Boot为主技术栈

EMQX(MQTT Broker)

严格来说EMQX不是物联网平台,是MQTT Broker。但它在物联网架构中的地位太重要了。

技术栈:Erlang

优势

  • 百万级并发连接
  • 规则引擎SQL语法,消息过滤转发
  • Dashboard实时监控连接状态和消息流量
  • 支持MQTT 3.1/3.1.1/5.0
  • 桥接和集群能力

劣势

  • 只做消息层,不管设备管理和数据存储
  • 需要配合其他组件(如时序数据库)使用

适用场景:任何需要大规模MQTT接入的项目,作为基础设施层

功能维度对比

功能ThingsBoardFastBeeEMQX
设备管理
MQTT Broker内置内置核心功能
规则引擎可视化基础SQL语法
仪表盘
OTA升级支持支持
多租户支持支持不适用
协议支持MQTT/CoAP/HTTP/LwM2MMQTT/HTTPMQTT/CoAP
时序数据Cassandra/PostgreSQLMySQL不适用
部署复杂度中高
中文文档社区翻译原生中文有中文
社区活跃度

部署方案建议

方案A:ThingsBoard + EMQX(推荐中大型项目)

设备 -> EMQX(MQTT) -> ThingsBoard(规则引擎/仪表盘) -> PostgreSQL(数据)

ThingsBoard可以用内置的MQTT Broker,但设备量超过1万台时建议外挂EMQX作为独立Broker。

方案B:FastBee单机部署(推荐中小型项目)

设备 -> FastBee(内置MQTT) -> MySQL(数据)

500台设备以内,一台4核8G的云服务器够了。

方案C:EMQX + 自研后端(推荐有开发能力的团队)

设备 -> EMQX(MQTT) -> 自研后端(PHP/Go/Java) -> 数据库

如果你需要深度定制业务逻辑,不想被平台框架约束,只借用EMQX的消息能力,然后自己写业务层。这是灵活度最高但开发量也最大的方案。

我们的选择

在虎王科技的物联网项目中,我们走的是方案C

原因:

  1. 我们的团队技术栈是PHP + Go,Java项目改造成本高
  2. 设备管理需要跟现有的客户管理系统深度集成
  3. 业务逻辑定制化程度高,通用平台的规则引擎不够用

架构:

ESP32设备 -> EMQX -> Go微服务(消息处理) -> MySQL + Redis
                              |
                        PHP后端(管理界面/API)

EMQX的规则引擎做第一层消息过滤和路由,Go微服务处理实时数据写入和告警,PHP后端负责设备管理、用户管理、套餐管理等业务逻辑。

这套架构跑了1年多,目前管理3000+台设备,运行稳定。

Docker部署示例

以FastBee为例(最简单的部署方式):

version: '3'
services:
  mysql:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: your_password
      MYSQL_DATABASE: fastbee
    volumes:
      - ./data/mysql:/var/lib/mysql

  fastbee:
    image: fastbee/server:latest
    ports:
      - "8080:8080"    # Web管理
      - "1883:1883"    # MQTT
    environment:
      SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/fastbee
      SPRING_DATASOURCE_USERNAME: root
      SPRING_DATASOURCE_PASSWORD: your_password
    depends_on:
      - mysql

docker-compose up -d 一键启动,5分钟内跑起来。

选型建议

你的情况推荐
快速验证POCFastBee
需要可视化仪表盘ThingsBoard
设备量>1万台ThingsBoard + EMQX
团队有Java经验ThingsBoard
团队有PHP/Go经验EMQX + 自研
国产化要求FastBee
需要LwM2M协议ThingsBoard

总结

没有最好的物联网平台,只有最适合你团队和项目的。ThingsBoard功能最全但学习成本高,FastBee部署简单但扩展性有限,EMQX是消息层的可靠选择。

关键想清楚三个问题:设备规模多大?团队技术栈是什么?需要多深度的定制?想清楚了,选型就不纠结了。


沧州虎王科技,专注物联网软硬件开发、通信设备、嵌入式系统与设备管理平台。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐