开源物联网(IoT)平台对比

一些 开源物联网(IoT)平台,它们广泛应用于设备管理、数据采集、远程监控和边缘计算等场景:


🌟 主流开源物联网平台

平台描述技术栈许可证
ThingsBoard功能丰富,支持设备管理、遥测数据收集、规则引擎、告警等Java, Spring, Akka, Cassandra / PostgreSQLApache 2.0
EMQX高性能 MQTT 消息服务器,支持百万级连接Erlang/OTPApache 2.0
Kaa IoT模块化设计,支持设备管理、数据分析、设备集群Java, SpringApache 2.0
Mainflux现代、可扩展的平台,支持 MQTT, HTTP, CoAPGo, NATS, PostgreSQL, RedisApache 2.0
Thingspeak适合快速原型和数据可视化(尤其是科研和教育)MATLAB, PHPGPLv3
OpenHAB专注智能家居物联网的集成与自动化Java, OSGiEPL-1.0
Node-RED可视化编程工具,适合边缘节点和轻量级 IoT 集成Node.jsApache 2.0

🚀 选择建议

应用场景推荐平台
工业物联网、大规模部署ThingsBoard / Kaa / Mainflux
消息中间件、高并发EMQX
智能家居OpenHAB / Home Assistant
教育、科研、快速实验Thingspeak / Node-RED

🌐 关键特性对比

特性ThingsBoardEMQXKaaMainfluxNode-RED
设备管理⚠️ (需集成)
数据持久化⚠️ (需外部DB)⚠️ (外部集成)
可视化仪表盘⚠️ (部分)⚠️ (需开发)
高并发消息⚠️⚠️⚠️
多协议支持MQTT, CoAP, HTTPMQTT, WebSocketMQTT, CoAP, HTTPMQTT, CoAP, HTTPMQTT, HTTP, WebSocket
规则引擎⚠️ (简单规则)⚠️⚠️⚠️ (需编排)

ThingsBoard 部署

好的!下面是一个基于 TimescaleDBThingsBoarddocker-compose.yml 示例文件,适合在支持 x86_64 架构的笔记本或服务器上运行。这个示例包含了:

  • ThingsBoard 物联网平台(连接 postgresql)

services:
  postgres:
    restart: always
    image: "postgres:16"
    ports:
      - "5432"
    environment:
      POSTGRES_DB: thingsboard
      POSTGRES_PASSWORD: postgres
    volumes:
      - postgres-data:/var/lib/postgresql/data
  thingsboard-ce:
    restart: always
    image: "thingsboard/tb-node:4.0.1.1"
    ports:
      - "8080:8080"
      - "7070:7070"
      - "1883:1883"
      - "8883:8883"
      - "5683-5688:5683-5688/udp"
    logging:
      driver: "json-file"
      options:
        max-size: "100m"
        max-file: "10"
    environment:
      TB_SERVICE_ID: tb-ce-node
      SPRING_DATASOURCE_URL: jdbc:postgresql://postgres:5432/thingsboard
    depends_on:
      - postgres

volumes:
  postgres-data:
    name: tb-postgres-data
    driver: local

说明

  • thingsboard

    • 使用 ThingsBoard 官方 PostgreSQL 版本镜像(默认连接 PostgreSQL)
    • 环境变量配置数据库连接信息
    • 映射 8080 端口用于 Web 访问
    • 依赖 timescaledb 服务,保证先启动数据库

使用步骤

  1. 将上面内容保存为 docker-compose.yml 文件。
  2. 修改密码环境变量 your_password 为你自己的安全密码。
  3. 在目录终端执行:
docker-compose up -d
  1. 等待容器启动,浏览器访问 http://localhost:8080 即可看到 ThingsBoard 界面。

  2. 第一次运行前,需要先初始化数据库,

docker compose run --rm -e INSTALL_TB=true -e LOAD_DEMO=true thingsboard-ce
  1. demo默认登陆用户名和密码
  • System Administrator: sysadmin@thingsboard.org / sysadmin
  • Tenant Administrator: tenant@thingsboard.org / tenant
  • Customer User: customer@thingsboard.org / customer

后续可以写更复杂的配置(比如加密、备份、日志管理)

如果出现错误,使用下面的命令查看

docker logs timescaledb | grep -i "error"

示例 docker-compose 配置

  • timescaledb 版本

    • 使用官方 TimescaleDB 镜像(基于 PostgreSQL 14)
    • 创建数据库 thingsboard,用户密码都设为 thingsboardyour_password(你可以修改)
    • 端口映射到宿主机的 5432
    • 数据卷持久化数据库数据
version: '3.8'

services:
  timescaledb:
    image: timescale/timescaledb:2.11.0-pg14
    container_name: timescaledb
    environment:
      POSTGRES_USER: thingsboard
      POSTGRES_PASSWORD: 1234
      POSTGRES_DB: thingsboard
    ports:
      - "5432:5432"
    volumes:
      - ./timescaledb-data:/var/lib/postgresql/data
    restart: unless-stopped

  tb-redis:
    image: redis:7-alpine
    container_name: tb-redis
    ports:
      - "6379:6379"
    restart: unless-stopped

  thingsboard:
    image: thingsboard/tb-node:4.0.1.1
    container_name: thingsboard
    depends_on:
      - timescaledb
      - tb-redis
    environment:
      SPRING_DATASOURCE_URL: jdbc:postgresql://timescaledb:5432/thingsboard
      SPRING_DATASOURCE_USERNAME: thingsboard
      SPRING_DATASOURCE_PASSWORD: 1234

#      TB_QUEUE_TYPE: redis
#      TB_QUEUE_REDIS_HOST: tb-redis
#      TB_QUEUE_REDIS_PORT: 6379
    ports:
      - "8081:8080"
      - "1883:1883"
      - "8883:8883"
    restart: unless-stopped

支持 Redis 队列

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值