thingsboard
安装部署
官网:http://www.ithingsboard.com/docs/user-guide/install/docker/
添加设备
官网:http://www.ithingsboard.com/docs/getting-started-guides/helloworld/
http://www.ithingsboard.com/docs/reference/mqtt-api/
1、在平台添加一个设备,然后物理设备或虚拟设备通过http、mqtt协议发送数据,在可视化界面展示设备的数据
发送遥测数据
http方式
官网:http://www.ithingsboard.com/docs/reference/http-api/
cheng
uej6qd7TYyUfZlLaQrtt
curl -v -X POST -d "{"temperature": 25}" http://192.168.199.239:8080/api/v1/uej6qd7TYyUfZlLaQrtt/telemetry --header "Content-Type:application/json"
MQTT方式
官网:http://www.ithingsboard.com/docs/reference/mqtt-api/
mqtt客户端官网:https://iotcore-dev-tool.gz.bcebos.com/mqttfx/1.7.1/mqttfx-1.7.1-windows-x64.exe
告警规则设置
在设备配置文件里面可以设置告警阈值,根据设置的策略,进行告警。
规则引擎
设备发送数据都要经过规则链,根据数据进行分类,决定下发到哪条规则链上去。
实体设备关联
官网链接:http://www.ithingsboard.com/docs/user-guide/entities-and-relations/
向外就是关联下级设备。向内就是关联上级设备。
比如下级设备发生故障会上报给上级,
仪表板
使用node-red模拟设备并查看可视化
使用node-red模拟一组数据,然后发送数据到tingsboard平台,通过可视化界面展示出来。
实现rpc设备双向通信
1、添加设备
2、使用mqttx连接 https://packages.emqx.io/MQTTX/v1.9.8/MQTTX-Setup-1.9.8-x64.exe
3、修改规则链
参考链接:【thingsboard】基于mqtt协议的服务端与客户端RPC使用_mqtt-js-rpc-from-server-CSDN博客
v1/devices/me/rpc/request/1
{"method":"getCurrentTime",
"params":{"temperature":28}}
设置返回数据不一样
参考链接:RPC功能 | ThingsBoard社区版 (ithingsboard.com)
#转换
var rpcResponse;
if (msg.method === "getCurrentTime"){
rpcResponse = new Date().getTime();
} else {
rpcResponse = "Unknown RPC request method: " + msg.method;
}
return {msg: rpcResponse, metadata: metadata, msgType: msgType};
#主题
v1/devices/me/rpc/request/1
##发送数据
{"method":"getCurrentTime",
"params":{"temperature":25}}
温度转换
# 转换数据
var rpcResponse;
if (msg.method === "getCurrentTemperature"){
// Assuming params.temperature is in Celsius, converting to Fahrenheit
var temperatureCelsius = msg.params.temperature;
var temperatureFahrenheit = (temperatureCelsius * 9/5) + 32;
rpcResponse = temperatureFahrenheit;
} else {
rpcResponse = "Unknown RPC request method: " + msg.method;
}
return {msg: rpcResponse, metadata: metadata, msgType: msgType};
## 发送数据
主题: v1/devices/me/rpc/request/1
数据: {"method":"getCurrentTemperature", "params":{"temperature":28}}
设置温度传感器大于30度,RPC控制开启风扇
#主题
v1/devices/me/telemetry
#遥测数据
{"temperature":42}
var newMsp =
{
"method": "close",
"params": {
"des":"open fan"
},
"timeout": 30000
}
return {msg: newMsp, metadata: metadata, msgType: msgType};
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库