赞
踩
最近有朋友在准备物联网方向创业,不想在物联网平台上投入过多成本,问我有没有功能强大、扩展性强、使用方便的开源物联网平台。
我给出的答案就是:ThingsBoard
物联网项目最基础的就是设备接入物联网并进行可视化管理,市面上各大厂的物联网平台很多,不过生态封闭收费还不低。前期不想投入太多的成本进行自研,最好的方式就是接入稳定可靠的开源平台,或者基于开源平台进行二次开发。
ThingsBoard 作为目前 Github 上最流行的开源物联网平台之一,可以实现物联网项目的快速开发、管理和扩展, 是中小微企业物联网平台的不二之选。
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容器部署流程:
安装前提条件:
安装Docker社区版
安装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-cassandra
或thingsboard/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/
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。