文档章节

开源的物联网技术平台thingsboard安装测试及使用步骤

SummerGao
 SummerGao
发布于 01/16 14:43
字数 883
阅读 191
收藏 3

1.安装Java1.8

2.安装Maven

3.安装node js

4.安装git

5.安装npm依赖 以管理员权限运行cmd,然后分别执行如下命令:

npm install -g cross-env
npm install -g webpack

6.安装IDEA

IntelliJ IDEA :http://www.jetbrains.com/idea/download/download-thanks.html?platform=windowsZip

7.安装postgreSQL数据库

下载地址:https://get.enterprisedb.com/postgresql/postgresql-9.4.19-2-windows.exe

Postgresql数据库安装过程,请将用户postgres的密码设置成 postgres。方便后续操作。

Postgresql数据库安装完成后,创建数据库thingsboard,所有者为postgres,然后用数据库工具(我用的是Navicat Premium 12)分别运行D:\thingsboard-develop-1.5\dao\src\main\resources\sql目录下schema-entities.sql、schema-ts.sql、 system-data.sql

8.下载thingsboard源码

https://github.com/thingsboard/thingsboard

9.编译源码

mvn clean install -DskipTests

如下则代表编译成功:

编译成功

如果一次不成功则多试几次。

10.导入IDEA,运行 ThingsboardServerApplication

需要安装的插件:IntelliJ Lombok plugin, Protobuf Support Protobuf

 

11.API测试工具安装及需要的测试文件 (win10下Ubuntu)

ubuntu:win10应用商店 Ubuntu 18.04 LTS

Ubuntu

测试coap协议:安装coap-cli

sudo npm install coap-cli -g

测试脚本:coap-js.sh

# Set ThingsBoard host to "demo.thingsboard.io" or "localhost"
THINGSBOARD_HOST="localhost"
# Replace YOUR_ACCESS_TOKEN with one from Device details panel.
ACCESS_TOKEN="i5OqJGOWWV6vWku8v25B"
# Publish serial number and firmware version attributes
cat attributes-data.json | coap post coap://$THINGSBOARD_HOST/api/v1/$ACCESS_TOKEN/attributes
# Publish timeseries data as an object without timestamp (server-side timestamp will be used)
cat telemetry-data.json | coap post coap://$THINGSBOARD_HOST/api/v1/$ACCESS_TOKEN/telemetry

测试http协议:安装cURL

sudo apt-get update
sudo apt install curl

测试脚本:curl.sh

# Set ThingsBoard host to "demo.thingsboard.io" or "localhost"
THINGSBOARD_HOST="localhost"
# Set ThingsBoard port to 80 or 8080
THINGSBOARD_PORT=8080
# Replace YOUR_ACCESS_TOKEN with one from Device details panel.
ACCESS_TOKEN="i5OqJGOWWV6vWku8v25B"

# Publish serial number and firmware version attributes
# replace $THINGSBOARD_PORT with 8080 (in case of local installation) or 80 (in case of live-demo).
curl -v -X POST -d @attributes-data.json http://$THINGSBOARD_HOST:$THINGSBOARD_PORT/api/v1/$ACCESS_TOKEN/attributes --header "Content-Type:application/json"
# Publish timeseries data as an object without timestamp (server-side timestamp will be used)
# replace $THINGSBOARD_PORT with 8080 (in case of local installation) or 80 (in case of live-demo).
curl -v -X POST -d @telemetry-data.json http://$THINGSBOARD_HOST:$THINGSBOARD_PORT/api/v1/$ACCESS_TOKEN/telemetry --header "Content-Type:application/json"

测试mqtt协议:安装mqtt

npm install mqtt -g

测试脚本:mqtt-js.sh

#!/bin/sh

# Set ThingsBoard host to "demo.thingsboard.io" or "localhost"
export THINGSBOARD_HOST="localhost"

# Replace YOUR_ACCESS_TOKEN with one from Device details panel.
export ACCESS_TOKEN="i5OqJGOWWV6vWku8v25B"

# Read serial number and firmware version attributes
ATTRIBUTES=$( cat attributes-data.json )
export ATTRIBUTES

# Read timeseries data as an object without timestamp (server-side timestamp will be used)
TELEMETRY=$( cat telemetry-data.json )
export TELEMETRY

# publish attributes and telemetry data via mqtt client
node publish.js

测试mqtt协议:安装mosquitto

测试脚本:mosquitto.sh


resources/mosquitto.shCopy resources/mosquitto.sh to clipboard
#!/bin/sh

# Set ThingsBoard host to "demo.thingsboard.io" or "localhost"
THINGSBOARD_HOST="localhost"
# Replace YOUR_ACCESS_TOKEN with one from Device details panel.
ACCESS_TOKEN="i5OqJGOWWV6vWku8v25B"
# Publish serial number and firmware version attributes
mosquitto_pub -d -h "$THINGSBOARD_HOST" -t "v1/devices/me/attributes" -u "$ACCESS_TOKEN" -f "attributes-data.json"
# Publish timeseries data as an object without timestamp (server-side timestamp will be used)
mosquitto_pub -d -h "$THINGSBOARD_HOST" -t "v1/devices/me/telemetry" -u "$ACCESS_TOKEN" -f "telemetry-data.json"

测试脚本:attributes-data.json

{"firmware_version":"1.0.1", "serial_number":"SN-001"}

测试脚本:telemetry-data.json

{"temperature":21, "humidity":55.0, "active": false}

测试脚本:publish.js

var mqtt = require('mqtt');

console.log('Connecting to: %s using access token: %s', process.env.THINGSBOARD_HOST, process.env.ACCESS_TOKEN);

var client  = mqtt.connect('mqtt://'+ process.env.THINGSBOARD_HOST,{
    username: process.env.ACCESS_TOKEN
});

client.on('connect', function () {
    console.log('Client connected!');
    client.publish('v1/devices/me/attributes', process.env.ATTRIBUTES);
    console.log('Attributes published!');
    client.publish('v1/devices/me/telemetry', process.env.TELEMETRY);
    console.log('Telemetry published!');
    client.end();
});

测试方法:

1.运行ubuntu terminal

2.新建thingsboads文件夹

mkdir thingsboard

3.将上述测试脚本添加到thingsboard文件加下

4.配置.sh文件可执行权限

chmod +x *.sh

5.执行测试,比如测试coap协议上传

./coap-js.sh

返回成功标识 如下:

服务器接收到消息:

详细测试步骤,请参见官方文档:https://thingsboard.io/docs/getting-started-guides/helloworld/

12.官方文档

https://thingsboard.io/docs/getting-started-guides/helloworld/

https://thingsboard.io/docs/api/

 

© 著作权归作者所有

SummerGao
粉丝 4
博文 200
码字总数 73823
作品 0
济南
高级程序员
私信 提问
开源物联网平台 - ThingsBoard

ThingsBoard 是一个开源的物联网平台,用于数据收集、处理、可视化展示以及设备管理。ThingsBoard 使用行业标准物联网协议(MQTT,CoAP和HTTP)实现设备连接,并支持云和本地部署。 ThingsBo...

匿名
07/01
11.6K
3
《连载 | 物联网框架ServerSuperIO教程》- 18.集成OPC Client,及使用步骤。附:3.5 发布与更新说明。

1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 《连载 | 物联网框架ServerSuperIO教程》1.4种通讯模式机制。 《连载 | 物联网框架ServerSuperIO教程》2.服务实例的配置参数说明 《连载...

唯笑志在
2017/04/08
0
0
《连载 | 物联网框架ServerSuperIO教程》- 16.集成OPC Server,及使用步骤。附:3.3 发布与版本更新说明。

1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 《连载 | 物联网框架ServerSuperIO教程》1.4种通讯模式机制。 《连载 | 物联网框架ServerSuperIO教程》2.服务实例的配置参数说明 《连载...

唯笑志在
2017/03/19
0
0
物联网技术周报第 86 期: 为认知 IoT 应用程序实现区块链

新闻 《微软推出主打安全性的 Project Sopris 低成本物联网设备》在“始终连接”的物联网世界,微软亦希望坚持保证安全性,并推出了一套名叫“Project Sopris”的低成本 IoT 设备。他们在首个...

雪花又一年
2018/04/19
0
0
为什么说开源是物联网开发消除厂商绑定的关键?

物联网(IoT)项目的开发可能是一个艰巨的任务。从原型的设计和代码的构建,到产品的最终发布和全球部署,如何确保您的IoT项目顺利实现和上市? 鉴于未来数年将有数十亿设备投放市场,封闭的...

oschina
2016/06/30
2.3K
8

没有更多内容

加载失败,请刷新页面

加载更多

只需一步,在Spring Boot中统一Restful API返回值格式与统一处理异常

统一返回值 在前后端分离大行其道的今天,有一个统一的返回值格式不仅能使我们的接口看起来更漂亮,而且还可以使前端可以统一处理很多东西,避免很多问题的产生。 比较通用的返回值格式如下:...

晓月寒丶
昨天
59
0
区块链应用到供应链上的好处和实际案例

区块链可以解决供应链中的很多问题,例如记录以及追踪产品。那么使用区块链应用到各产品供应链上到底有什么好处?猎头悬赏平台解优人才网小编给大家做个简单的分享: 使用区块链的最突出的优...

猎头悬赏平台
昨天
28
0
全世界到底有多少软件开发人员?

埃文斯数据公司(Evans Data Corporation) 2019 最新的统计数据(原文)显示,2018 年全球共有 2300 万软件开发人员,预计到 2019 年底这个数字将达到 2640万,到 2023 年达到 2770万。 而来自...

红薯
昨天
65
0
Go 语言基础—— 通道(channel)

通过通信来共享内存(Java是通过共享内存来通信的) 定义 func service() string {time.Sleep(time.Millisecond * 50)return "Done"}func AsyncService() chan string {retCh := mak......

刘一草
昨天
58
0
Apache Flink 零基础入门(一):基础概念解析

Apache Flink 的定义、架构及原理 Apache Flink 是一个分布式大数据处理引擎,可对有限数据流和无限数据流进行有状态或无状态的计算,能够部署在各种集群环境,对各种规模大小的数据进行快速...

Vincent-Duan
昨天
60
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部