主流开源物联网平台推荐

最近有朋友在准备物联网方向创业,不想在物联网平台上投入过多成本,问我有没有功能强大、扩展性强、使用方便的开源物联网平台。

我给出的答案就是:ThingsBoard

物联网项目最基础的就是设备接入物联网并进行可视化管理,市面上各大厂的物联网平台很多,不过生态封闭收费还不低。前期不想投入太多的成本进行自研,最好的方式就是接入稳定可靠的开源平台,或者基于开源平台进行二次开发。

ThingsBoard 作为目前 Github 上最流行的开源物联网平台之一,可以实现物联网项目的快速开发、管理和扩展, 是中小微企业物联网平台的不二之选。

ThingsBoard是什么?

ThingsBoard是一个开源物联网平台,可实现物联网项目的快速开发、管理和扩展。

目标是提供成熟的IoT云或本地解决方案以此作为您的IoT应用程序服务端基础架构。

特点

ThingsBoard可用于:

  • 设备管理,资产和客户并定义他们之间的关系。

  • 基于设备和资产收集数据并进行可视化。

  • 采集遥测数据并进行相关的事件处理进行警报响应。

  • 基于远程RPC调用进行设备控制。

  • 基于生命周期事件、REST API事件、RPC请求构建工作流。

  • 基于动态设计和响应仪表板向你的客户提供设备或资产的遥测数据。

  • 基于规则链自定义特定功能。

  • 发布设备数据至第三方系统。

ThingBoard可以分为四个核心模块:

  • 设备管理

  • 数据接入

  • 规则引擎

  • 部件面板

图片

项目架构核心技术


1. Netty用于 IoT 设备的高性能MQTT服务器/代理。

2. Akka为高性能actor系统协调数百万设备之间的消息。

3. Cassandra用于可扩展的高性能NoSQL DB,用于存储来自设备的时间序列数据。

4. 使用Zookeeper进行协调和以集群模式使用gRPC。

5. 设备接入:MQTT、CoAP、HTTP

6. 规则引擎:动态配置设备消息的处理流程

7. 核心服务:租户和客户、设备认证、规则和插件、小组件和仪表盘、告警和事件

8. 安全:SSL用于HTTP和MQTT

9. 设备安全认证:Token和X.509

部署官网也有相关操作的步骤也很详细

图片

关于部署,官网上也做了非常详细的说明,按照官方文档一遍就操作成功了,真的的非常容易。

在这里简单说下通过docker容器部署流程:

安装前提条件:

  1. 安装Docker社区版

  2. 安装Docker Compose

    

1. 根据所使用的数据库有三种类型的ThingsBoard单实例docker映像:

  • thingsboard/tb-postgres - ThingsBoard与PostgreSQL数据库的单实例

    对于具有至少1GB内存的小型服务器的推荐选项。建议使用2-4GB。

  • thingsboard/tb-cassandra - 具有Cassandra数据库的ThingsBoard的单个实例。

    最高性能和推荐的选项但至少需要4GB的RAM。建议使用8GB。

  • thingsboard/tb - 具有嵌入式HSQLDB数据库的ThingsBoard的单个实例。

    注意: 不建议用于任何评估或生产用途,仅用于开发目的和自动测试。

2. ThingsBoard默认使用内存队列服务(也可以配置kafka,rabbitMq队列)

创建docker compose文件:

sudo nano docker-compose.yml

将以下行添加到yml文件:

version: '2.2'
services:
  mytb:
    restart: always
    image: "thingsboard/tb-postgres"
    ports:
      - "8080:9090"
      - "1883:1883"
      - "5683:5683/udp"
    environment:
      TB_QUEUE_TYPE: in-memory
    volumes:
      - ~/.mytb-data:/data
      - ~/.mytb-logs:/var/log/thingsboard

说明:

  • docker run - 运行容器

  • -it - 将终端会话与当前ThingsBoard进程输出连接

  • 8080:9090 - 将本地端口8080转发至HTTP端口9090

  • 1883:1883 - 将本地端口1883转发至MQTT端口1883

  • 5683:5683 - 将本地端口5683转发至MQTT端口5683

  • ~/.mytb-data:/data - 将主机的目录~/.mytb-data挂载到ThingsBoard数据目录

  • ~/.mytb-logs:/var/log/thingsboard - 将主机的目录~/.mytb-logs挂载到ThingsBoard日志目录

  • mytb - 计算机本地名称

  • restart: always - 在系统重新启动的情况下自动启动ThingsBoard在出现故障的情况下自动重新启动ThingsBoard。

  • image: thingsboard/tb-postgres - docker镜像也可以是thingsboard/tb-cassandrathingsboard/tb

在启动Docker容器之前请运行以下命令以创建用于存储数据和日志的目录然后将其所有者更改为Docker容器用户,以便能够更改用户使用chown命令该命令需要sudo权限(该命令将要求sudo访问的密码):

$ mkdir -p ~/.mytb-data && sudo chown -R 799:799 ~/.mytb-data
$ mkdir -p ~/.mytb-logs && sudo chown -R 799:799 ~/.mytb-logs

注意:使用~/.mytb-data~/.mytb-logs目录替换目录docker-compose.yml文件中设置的目录

在包含docker-compose.yml文件的目录打开终端执行docker compose命令:

docker-compose pull
docker-compose up

执行完命令后你可以http://{your-host-ip}:9090在浏览器中打开(例如http://localhost:9090)

图片

使用以下默认凭据:

  • 系统管理员: sysadmin@thingsboard.org / sysadmin

  • 租户管理员: tenant@thingsboard.org / tenant

  • 客户: customer@thingsboard.org / customer

你始终可以在帐户详情页面中更改每个帐户的密码。

系统管理员登录页面

图片

租户管理员登录页面

图片

如有任何问题可以检查服务日志中是否有错误。例如:要查看ThingsBoard节点日志请执行以下命令:

docker-compose logs -f mytb

停止容器:

docker-compose stop

启动容器:

docker-compose start

项目地址:

https://github.com/thingsboard/thingsboard 

官方文档地址:

https://thingsboard.io/docs/

  • 17
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值