今天给大家带来基于阿里云 IoT 物联网平台 + TSDB 时序时空数据库 + Quick BI 报表三大云产品组合实现楼宇环境监控端到端开发实战。
少啰嗦,先看效果。
部署后效果
0.技术架构
本次 IoT 物联网开发实战我们在室内部署 4 个温湿度传感器,实时采集数据,每10秒发送到阿里云 IoT 物联网平台,通过规则引擎写入 TSDB时序数据库。在Quick BI 工作台,创建数据报表以分钟维度展示室内温湿度变化曲线。
技术架构如下:
1.物联网平台开发
1.1.免费开通阿里云 IoT物联网云服务:
https://www.aliyun.com/product/iot-deviceconnect
/>
1.2.创建产品室内温湿度计器,选择自定义品类,直连设备,定义物模型,包含2个属性温度,湿度:
1.3.注册设备,获取身份三元组。
1.4.配置规则引擎,实时流转数据到 TSDB中
1.5.完成设备端开发,实时上报温湿度数据。
我们以Node.js脚本来模拟设备上报,代码如下:
// 依赖mqtt库
const mqtt = require('aliyun-iot-mqtt');
// 设备身份
var options = {
productKey: "device productKey",
deviceName: "device deviceName",
deviceSecret: "device deviceSecret",
regionId: "cn-shanghai"
};
// 建立连接
const client = mqtt.getAliyunIotMqttClient(options);
//模拟 设备 上报数据(原始报文)
setInterval(function() {
client.publish(
`/sys/${options.productKey}/${options.deviceName}/thing/event/property/post`
, getPostData()
);
}, 10 * 1000);
// 模拟 温湿度
function getPostData() {
const payload = {
id: Date.now(),
version:"1.0",
params: {
temperature: 10+Math.floor(Math.random() * Math.floor(50)),
humidity: 10+Math.floor(Math.random() * Math.floor(50))
},
method: "thing.event.property.post"
}
console.log("payload=[ " + payload + " ]")
return JSON.stringify(payload);
}
2.TSDB数据库
2.1.创建时序数据库,并开通公网 TSQL 连接串
2.2.IoT设备数据写入TSDB的记录
3.Quick BI
3.1.开通Quick BI服务,添加数据源,输入TSDB连接参数。
数据源添加成功
3.2.基于数据源的温度和湿度指标,创建数据集。
3.3.创建数据仪表板,并根据业务需求编辑图表。
3.4.发布仪表板。
3.5.在浏览器中查看楼宇环境监控报表。
【往期回顾】
1、39张IoT传感器工作原理GIF图汇总
2、IoT 设备发送 MQTT 请求的曲折经历
3、20元体 Arduino 环境监测仪开发
4、智能手持测温枪开发实践
5、JMeter 压测 MQTT 服务性能实战