基于温湿度、空气质量传感器实现温度、湿度、二氧化碳、PM2.5、甲醛环境数据实时监测。
硬件清单
我们采用 Ruff 开发板,串口连接温湿度传感器 DHT11 和空气质量传感器 SDS011,每5分钟采集一次数据,通过MQTT协议发送到华为云 IoT 物联网平台,并基于数据分析服务实时计算出整个家庭的平均温度值。
本项目硬件清单如下:
技术架构
传感器通过Ruff板接入华为云IoT平台,数据流转分析服务,实时监控家庭环境数据变化。
华为云IoT开发
华为云物联网平台设备接入云服务(IoTDA)提供海量设备的接入和管理能力,将物理设备联接到云,支撑设备数据采集上云和云端下发命令给设备进行远程控制,配合华为云其他产品,帮助您快速构筑物联网解决方案。
使用物联网平台构建一个完整的物联网解决方案主要包括3部分:物联网平台、业务应用和设备。
物联网平台作为连接业务应用和设备的中间层,屏蔽了各种复杂的设备接口,实现设备的快速接入;同时提供强大的开放能力,支撑行业用户构建各种物联网解决方案。
设备可以通过固网、2G/3G/4G/5G、NB-IoT、Wifi等多种网络接入物联网平台,并使用LWM2M/CoAP、MQTT、HTTPS等主流协议或行业协议将业务数据上报到平台,平台也可以将控制命令下发给设备。
业务应用通过调用物联网平台提供的API,实现设备数据采集、命令下发、设备管理等业务场景。
产品模型(Product Model),也称物模型,用于描述设备具备的能力和特性。开发者通过定义产品模型,在物联网平台构建一款设备的抽象模型,使平台理解该款设备支持的服务、属性、命令等信息。
设备注册
进入到设备管理的设备注册页面,点击右上角的创建按钮。
在弹出框里选择产品模型,输入设备识别码,点击确定按钮。
创建成功,系统会自动生成秘钥。
硬件端开发
Ruff 是一个支持 JavaScript 开发应用的物联网操作系统,为软件开发者提供开放、高效、敏捷的物联网应用开发平台,让 IoT 应用开发更简单。
整个 Ruff 开发体系包括 Ruff OS、Ruff SDK、Ruff 软件仓库、Ruff Kit 开发套件。只要您有JavaScript开发经验,就可以用 Ruff 开发硬件应用。
传感器驱动程序
传感器硬件接线
设备端程序结构
读取温湿度和空气质量传感器数据:
// 空气质量数据
$('#air').on('aqi', function(error, pm25, pm10) {
if (error) return;
reported.pm25 = pm25;
reported.pm10 = pm10;
});
// 温度数据
$('#dht').getTemperature(function(error, temperature) {
if (!error) {
reported.temperature = temperature;
}
});
// 湿度数据
$('#dht').getRelativeHumidity(function(error, humidity) {
if (!error) {
reported.humidity = humidity;
}
});
上报数据到 /huawei/v1/devices/{deviceId}/data/json
var topic = `/huawei/v1/devices/${options.deviceId}/data/json`
var postJson = {
msgType: "deviceReq",
data: [{
serviceId: "postData",
serviceData: {
model: 'Ruff',
sdk: '0.02',
Node_Version: 8,
temperature: sensor.temperature,
humidity:sensor.humidity,
co2: sensor.co2,
hcho: sensor.hcho,
pm25: sensor.pm25,
pm10: sensorpm10.
}
}
]
}
client.publish(topic, JSON.stringify(postJson))
查看传感器上云实时数据
IoT 数据分析
配置数据源
实测点数据绑定传感器
配置虚测点为多个房间温度的平均温度
正式发布后,我们就可以实时监控各个房间的环境传感器数据变化和平均值了。
如有需求,请联系小编: beacon0418
往期推荐
☞ 高德地图: 红绿灯倒计时大揭秘
☞ Arduino 开源 ESP32 智能手表
☞ 源码交付 IoT智慧水务、污水处理
☞ 这苦逼的IoT物联网我竟坚持了十年