您可以使用Ruff開發板開發物聯網應用,并接入阿里云物聯網平臺,通過物聯網平臺遠程控制您的Ruff應用服務器。本文以開發一個空氣質量監控應用為例,介紹將Ruff應用服務器接入物聯網平臺的配置過程。
前提條件
已完成以下操作:
- 開通阿里云物聯網平臺服務。
- 開通阿里云表格存儲服務。
- 準備Ruff開發板。
背景信息
阿里云物聯網平臺支持多種開發板服務器接入,以實現對應用服務器的遠程控制。應用服務器將設備數據傳入物聯網平臺后,可通過規則引擎的數據流傳功能將設備數據流轉至其他支持的阿里云服務中進行存儲、分析、計算等處理。如下圖所示。
本文示例中,僅介紹開發Ruff應用服務器,并連接物聯網平臺;在物聯網平臺設置數據流轉規則將服務器上報的設備數據流轉至表格存儲。
上圖中,其他操作流程請參見:
操作步驟
- 登錄物聯網平臺控制臺,在對應實例下創建產品和設備,操作如下:
- 登錄表格存儲控制臺,創建實例和表格,操作如下:
- 返回物聯網平臺控制臺,進入對應實例,在左側導航欄,選擇 ,創建一個將設備數據流轉到表格存儲的規則。
- 單擊創建規則,創建JSON數據格式規則。重要
若當前頁面顯示新版功能,先單擊右上角返回舊版,進入舊版功能頁面,再單擊創建規則。
- 在數據流轉規則頁面,單擊編寫SQL,編寫用于處理空氣質量檢測設備上報數據的SQL。
本示例中SQL如下:
SELECT deviceName() as deviceName , timestamp('yyyy-MM-dd HH:mm:ss') as time, pm25 FROM "/a1jhoQa****/+/user/pm25data"
其中,函數
deviceName()
代表設備名稱,timestamp('yyyy-MM-dd HH:mm:ss')
代表數據上報的時間;數據來源為Topic/a1jhoQa****/+/user/pm25data
,即該產品下所有設備通過這個Topic上報的消息。 - 單擊轉發數據對應的添加操作,設置將設備數據轉發到表格存儲數據表中。
- 返回規則列表頁面,單擊該規則對應的啟動,啟動規則。
數據流轉規則設置并啟動后,設備上報的對應數據將會被流轉到設置的表格存儲數據表中。
- 單擊創建規則,創建JSON數據格式規則。
- 開發設備端SDK。
以下示例是在Linux系統上操作。
- 使用mkdir apsarasCampusAir 命令,創建一個名為apsarasCampusAir的文件夾。
- 使用cd apsarasCampusAir命令,進入該文件夾。
- 使用rap init命令,創建工程。
- 使用rap device add air (SDS011)命令,添加硬件驅動。
- 在package.json中增加物聯網平臺SDK包
aliyun-iot-device-mqtt
。{ "name": "apsarascampusair", "version": "0.1.0", "description": "", "author": "", "main": "src/index.js", "ruff": { "dependencies": { "aliyun-iot-device-mqtt": "^0.0.5", "sds011": "^1.1.0" }, "version": 1 } }
- 使用
$rap install
命令,安裝阿里云物聯網平臺設備端SDK。物聯網平臺SDK下載地址,請參見下載設備端SDK。 - 修改
index.js
主程序。// 引入aliyun-iot-sdk var MQTT = require('aliyun-iot-device-mqtt'); // 設備信息 var options = { productKey: "", //替換為您的產品的ProductKey deviceName: "", //替換為您的設備名稱DeviceName deviceSecret: "", //替換為您的設備DeviceSecret host: "", //替換為設備的MQTT接入域名 }; var pm25Data = 0; var pm10Data = 0; // 發布/訂閱 topic var pubTopic = "/" + options.productKey + "/" + options.deviceName + "/user/pm25data"; // 建立連接 var client = MQTT.createAliyunIotMqttClient(options); $.ready(function(error) { if (error) { console.log(error); return; } //10s上報一次 setInterval(publishData, 15 * 1000); //空氣質量 $('#air').on('aqi', function(error, pm25, pm10) { if (error) { console.log(error); return; } pm25Data = pm25; pm10Data = pm10; }); }); //上報溫濕度 function publishData() { var data = { "pm25": pm25Data, "pm10": pm10Data }; console.log(JSON.stringify(data)) client.publish(pubTopic, JSON.stringify(data)); }
完整的SDK文件目錄結構如下圖所示。
- 使用
$rap deploy -s
命令,將SDK發布到Ruff開發板。
Ruff開發板連網后,即可向物聯網平臺發送數據。
文檔內容是否對您有幫助?