Ruff开发板接入物联网平台

您可以使用Ruff开发板开发物联网应用,并接入阿里云物联网平台,通过物联网平台远程控制您的Ruff应用服务器。本文以开发一个空气质量监控应用为例,介绍将Ruff应用服务器接入物联网平台的配置过程。

前提条件

已完成以下操作:

背景信息

阿里云物联网平台支持多种开发板服务器接入,以实现对应用服务器的远程控制。应用服务器将设备数据传入物联网平台后,可通过规则引擎的数据流传功能将设备数据流转至其他支持的阿里云服务中进行存储、分析、计算等处理。如下图所示。

ruff开发版

本文示例中,仅介绍开发Ruff应用服务器,并连接物联网平台;在物联网平台设置数据流转规则将服务器上报的设备数据流转至表格存储。

上图中,其他操作流程请参见:

操作步骤

  1. 登录物联网平台控制台在对应实例下创建产品和设备,操作如下:
    1. 创建产品
    2. 产品详情页面的Topic类列表页签,单击自定义Topic页签下的定义Topic类,然后自定义一个空气质量监测设备用于发布数据的Topic类。

      Topic类信息如下:

      Topic操作权限说明
      /${productKey}/${deviceName}/user/pm25data发布用于设备上报数据。

      上报数据payload为{"pm25":23,"pm10":63}

    3. 在左侧导航栏选择设备管理 > 设备,进入设备页面,在已创建的产品下添加设备。具体操作,请参见单个创建设备
  2. 登录表格存储控制台,创建实例和表格,操作如下:
    1. 概览页面,单击创建实例,创建一个宽表模型的实例。具体操作,请参见创建实例
    2. 单击已创建实例对应的实例管理
    3. 实例详情页面,单击数据表列表区域的创建数据表,创建一个数据表。本示例中需添加两个表主键:deviceName(对应值为设备名称)和time(对应值为设备数据上报时间)。
      具体操作,请参见创建数据表
  3. 返回物联网平台控制台,进入对应实例,在左侧导航栏,选择消息转发 > 云产品流转,创建一个将设备数据流转到表格存储的规则。
    1. 单击创建规则,创建JSON数据格式规则。
      重要

      若当前页面显示新版功能,先单击右上角返回旧版,进入旧版功能页面,再单击创建规则

    2. 数据流转规则页面,单击编写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上报的消息。

      ruff开发版
    3. 单击转发数据对应的添加操作,设置将设备数据转发到表格存储数据表中。
      ruff开发版
    4. 返回规则列表页面,单击该规则对应的启动,启动规则。

      数据流转规则设置并启动后,设备上报的对应数据将会被流转到设置的表格存储数据表中。

  4. 开发设备端SDK。

    以下示例是在Linux系统上操作。

    1. 使用mkdir apsarasCampusAir 命令,创建一个名为apsarasCampusAir的文件夹。
    2. 使用cd apsarasCampusAir命令,进入该文件夹。
    3. 使用rap init命令,创建工程。
    4. 使用rap device add air (SDS011)命令,添加硬件驱动。
    5. 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
          }
      }
    6. 使用$rap install命令,安装阿里云物联网平台设备端SDK。物联网平台SDK下载地址,请参见下载设备端SDK
    7. 修改index.js主程序。
      说明 设备证书信息查看方法,请参见查看具体设备信息。设备的MQTT接入域名查看方法,请参见管理实例终端节点
      // 引入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文件目录结构如下图所示。

      ruff开发板
  5. 使用$rap deploy -s命令,将SDK发布到Ruff开发板。

Ruff开发板连网后,即可向物联网平台发送数据。