基于溫濕度、空氣質(zhì)量傳感器實(shí)現(xiàn)溫度、濕度、二氧化碳、PM2.5、甲醛環(huán)境數(shù)據(jù)實(shí)時(shí)監(jiān)測。
硬件清單
我們采用 Ruff 開發(fā)板,串口連接溫濕度傳感器 DHT11 和空氣質(zhì)量傳感器 SDS011,每5分鐘采集一次數(shù)據(jù),通過MQTT協(xié)議發(fā)送到華為云 IoT 物聯(lián)網(wǎng)平臺(tái),并基于數(shù)據(jù)分析服務(wù)實(shí)時(shí)計(jì)算出整個(gè)家庭的平均溫度值。
本項(xiàng)目硬件清單如下:
技術(shù)架構(gòu)
傳感器通過Ruff板接入華為云IoT平臺(tái),數(shù)據(jù)流轉(zhuǎn)分析服務(wù),實(shí)時(shí)監(jiān)控家庭環(huán)境數(shù)據(jù)變化。
華為云IoT開發(fā)
華為云物聯(lián)網(wǎng)平臺(tái)設(shè)備接入云服務(wù)(IoTDA)提供海量設(shè)備的接入和管理能力,將物理設(shè)備聯(lián)接到云,支撐設(shè)備數(shù)據(jù)采集上云和云端下發(fā)命令給設(shè)備進(jìn)行遠(yuǎn)程控制,配合華為云其他產(chǎn)品,幫助您快速構(gòu)筑物聯(lián)網(wǎng)解決方案。
使用物聯(lián)網(wǎng)平臺(tái)構(gòu)建一個(gè)完整的物聯(lián)網(wǎng)解決方案主要包括3部分:物聯(lián)網(wǎng)平臺(tái)、業(yè)務(wù)應(yīng)用和設(shè)備。
物聯(lián)網(wǎng)平臺(tái)作為連接業(yè)務(wù)應(yīng)用和設(shè)備的中間層,屏蔽了各種復(fù)雜的設(shè)備接口,實(shí)現(xiàn)設(shè)備的快速接入;同時(shí)提供強(qiáng)大的開放能力,支撐行業(yè)用戶構(gòu)建各種物聯(lián)網(wǎng)解決方案。
設(shè)備可以通過固網(wǎng)、2G/3G/4G/5G、NB-IoT、Wifi等多種網(wǎng)絡(luò)接入物聯(lián)網(wǎng)平臺(tái),并使用LWM2M/CoAP、MQTT、HTTPS等主流協(xié)議或行業(yè)協(xié)議將業(yè)務(wù)數(shù)據(jù)上報(bào)到平臺(tái),平臺(tái)也可以將控制命令下發(fā)給設(shè)備。
業(yè)務(wù)應(yīng)用通過調(diào)用物聯(lián)網(wǎng)平臺(tái)提供的API,實(shí)現(xiàn)設(shè)備數(shù)據(jù)采集、命令下發(fā)、設(shè)備管理等業(yè)務(wù)場景。
產(chǎn)品模型(Product Model),也稱物模型,用于描述設(shè)備具備的能力和特性。開發(fā)者通過定義產(chǎn)品模型,在物聯(lián)網(wǎng)平臺(tái)構(gòu)建一款設(shè)備的抽象模型,使平臺(tái)理解該款設(shè)備支持的服務(wù)、屬性、命令等信息。
設(shè)備注冊
進(jìn)入到設(shè)備管理的設(shè)備注冊頁面,點(diǎn)擊右上角的創(chuàng)建按鈕。
在彈出框里選擇產(chǎn)品模型,輸入設(shè)備識(shí)別碼,點(diǎn)擊確定按鈕。
創(chuàng)建成功,系統(tǒng)會(huì)自動(dòng)生成秘鑰。
硬件端開發(fā)
Ruff 是一個(gè)支持 JavaScript 開發(fā)應(yīng)用的物聯(lián)網(wǎng)操作系統(tǒng),為軟件開發(fā)者提供開放、高效、敏捷的物聯(lián)網(wǎng)應(yīng)用開發(fā)平臺(tái),讓 IoT 應(yīng)用開發(fā)更簡單。
整個(gè) Ruff 開發(fā)體系包括 Ruff OS、Ruff SDK、Ruff 軟件倉庫、Ruff Kit 開發(fā)套件。只要您有JavaScript開發(fā)經(jīng)驗(yàn),就可以用 Ruff 開發(fā)硬件應(yīng)用。
傳感器硬件接線
設(shè)備端程序結(jié)構(gòu)
讀取溫濕度和空氣質(zhì)量傳感器數(shù)據(jù):
// 空氣質(zhì)量數(shù)據(jù)
$('#air').on('aqi', function(error, pm25, pm10) {
if (error) return;
reported.pm25 = pm25;
reported.pm10 = pm10;
});
// 溫度數(shù)據(jù)
$('#dht').getTemperature(function(error, temperature) {
if (!error) {
reported.temperature = temperature;
}
});
// 濕度數(shù)據(jù)
$('#dht').getRelativeHumidity(function(error, humidity) {
if (!error) {
reported.humidity = humidity;
}
});
上報(bào)數(shù)據(jù)到 /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))
查看傳感器上云實(shí)時(shí)數(shù)據(jù)
IoT 數(shù)據(jù)分析
配置數(shù)據(jù)源
實(shí)測點(diǎn)數(shù)據(jù)綁定傳感器
配置虛測點(diǎn)為多個(gè)房間溫度的平均溫度
正式發(fā)布后,我們就可以實(shí)時(shí)監(jiān)控各個(gè)房間的環(huán)境傳感器數(shù)據(jù)變化和平均值了。
如有需求,請聯(lián)系小編:? beacon0418