ThingsBoard使用笔记(3)模拟控制远程温度传感器

书接上篇博文

ThingsBoard使用笔记(1) 安装

 ThingsBoard使用笔记(2)模拟传感器发送MQTT并显示监控图表

1.模拟硬件监控设备给定时给服务端发送数据

  • 使用mqtt-temperature.js,发送监控数据到服务器,并接受服务器控制,注意修改IP
var mqtt = require('mqtt');
const ACCESS_TOKEN = process.argv[2];

var client  = mqtt.connect('mqtt://localhost',{
    username: ACCESS_TOKEN
});

var controlValue,
	realValue = 25;

client.on('connect', function () {
    console.log('connected');
    client.subscribe('v1/devices/me/rpc/request/+');
    console.log('Uploading temperature data once per second...');
    setInterval(publishTelemetry, 1000);
});

client.on('message', function (topic, message) {
    console.log('request.topic: ' + topic);
    console.log('request.body: ' + message.toString());
    var requestId = topic.slice('v1/devices/me/rpc/request/'.length),
    	messageData = JSON.parse(message.toString());
    if (messageData.method === 'getValue') {
    	if(controlValue === undefined) {
            client.publish('v1/devices/me/rpc/response/' + requestId, JSON.stringify(realValue));
		} else {
            client.publish('v1/devices/me/rpc/response/' + requestId, JSON.stringify(controlValue));
		}
    } else if (messageData.method === 'setValue') {
    	controlValue = messageData.params;
    	console.log('Going to set new control value: ' + controlValue);
    } else {	
    	client.publish('v1/devices/me/rpc/response/' + requestId, message);
    }
});

function publishTelemetry() {
	emulateTemperatureChanging();
	client.publish('v1/devices/me/telemetry', JSON.stringify({temperature: realValue}));
}

function emulateTemperatureChanging() {
	if(controlValue !== undefined) {
		if(controlValue >= realValue) {
			realValue += (Math.random() + (Math.abs(controlValue - realValue)/30));
		} else {
			realValue -= (Math.random() + (Math.abs(controlValue - realValue)/30));
		}
	}
}
  • 执行监控数据发送 
# CKbirnV1FPOebt0WfUNs 是设备令牌
node mqtt-temperature.js CKbirnV1FPOebt0WfUNs

 

2.查看监控图表,能看到一条直线

3.创建温度控制部件

  • 创建控制部件

  • 选择目标设备

  • 保存后效果

  • 点击控制温度

 

 

  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
接触Thingsboard用得到!!! 目录 1  参考资料 5  文档目的 6 第一章 项目框架整理说明 7 1.1 项目框架说明 7 1.1.1 package包功能描述 8 1.1.2 thingsboard开发主要涉及到的包 10 1.1.3 thingsboard代码类及接口说明 10 第二章 thingsboard涉及到的流程图 12 2.1 物联网网关架构 12 2.2 ThingsBoard微服务架构 13 2.3 Thingsboard产品架构 13 2.4 Thingsboard规则引擎 14 2.5 ThingsBoard Architecture 15 第三章 项目框架涉及到的第三方包或插件 17 3.1 Thingsboard 包 17 第四章 ThingsBoard设备连接协议 23 4.1 订阅消息传递协议(MQTT) 23 4.2 请求响应模式(CoAP) 23 4.3 请求响应模式(HTTP ) 24 第五章 ThingsBoard打包 25 5.1 后端打包 25 5.2 前端打包方UI 25 第六章 ThingsBoard框架日志 26 第七章 ThingsBoard数据库 目录 目录 1  参考资料 5  文档目的 6 第一章 项目框架整理说明 7 第二章 thingsboard涉及到的流程图 12 第三章 项目框架涉及到的第三方包或插件 17 第四章 ThingsBoard设备连接协议 23 第五章 ThingsBoard打包 25 第六章 ThingsBoard框架日志 26 第七章 ThingsBoard数据库 27 第八章 官网主要文档目录 28 第九章 前端技术概述 29 第十章 关于Thingsboard开发环境部署 30 第十一章 数据库表结构 32 错误!未定义书签。 7.1 关系数据库(使用了2个数据库) 27 7.2 非关系数据库(redis) 27 第八章 官网主要文档目录 28 第九章 前端技术概述 29 9.1 前端包括哪些技术点 29 9.2 前端技术描述 29 第十章 关于Thingsboard开发环境部署 30 第十一章 数据库表结构 32
Thingsboard 是一个物联网平台,它提供了灵活的设备管理和数据可视化功能。为了存储设备数据和元数据,Thingsboard 设计了一种数据模型,通过表结构实现了该模型。 Thingsboard 中的数据模型包括设备、租户、用户、资产和规则引擎等对象及其之间的关系。为了支持该模型,Thingsboard 设计了 11 个表: 1. tb_tenant:租户表,存储租户的信息,如名称、描述、联系人等。 2. tb_user:用户表,存储用户的信息,如用户名、电子邮件地址、密码等。 3. tb_customer:客户表,存储客户的信息,如名称、描述、联系人等。 4. tb_asset:资产表,存储资产的信息,如名称、描述、位置等。 5. tb_entity_view:实体视图表,存储实体视图的信息,如名称、描述、视图类型等。 6. tb_device:设备表,存储设备的信息,如名称、设备类型、设备租户等。 7. tb_relation:关系表,存储实体之间的关系,如设备与租户之间的关系。 8. ts_kv:键值对表,存储设备元数据,如温度、湿度等。 9. ts_latest:最新值表,存储设备最新的元数据值。 10. ts_kv_dictionary:键值字典表,存储键值对的类型信息,如温度类型为浮点数。 11. ts_kv_latest:最新值表,存储设备最新的元数据值及其类型信息。 以上是Thingsboard 表结构的概述,每个表都具有特定的字段和关系,通过这些表之间的关联,使平台能够存储和管理众多设备和其元数据。对于开发者来说,可以根据自己的业务需求,对该表结构进行扩展和定制。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值