您可以使用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开发板连网后,即可向物联网平台发送数据。
文档内容是否对您有帮助?