日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

文檔

推送設備上報數據到釘釘群

更新時間:

本文以溫濕度傳感器設備為例,介紹通過數據流轉規則,將設備上報數據推送到釘釘群的操作步驟。

場景說明

將各辦公室的溫濕度傳感器設備上報的數據上傳到釘釘群機器人。

數據流轉流程圖

溫濕度傳感器流轉數據流程

步驟一:創建產品和設備

  1. 登錄物聯網平臺控制臺

  2. 實例概覽頁面的全部環境下,找到對應的實例,單擊實例ID或備注名稱。

    實例概覽
  3. 在左側導航欄,選擇設備管理 > 產品,創建一個直連設備類型的產品:溫濕度傳感器

    參數設置直接使用默認值。具體操作,請參見創建產品

  4. 單擊前往定義物模型,在功能定義頁簽,單擊編輯草稿,然后在默認模塊,為產品添加自定義功能。

    本文示例為產品添加溫度和濕度兩個屬性,請參見單個添加物模型物模型

  5. 在左側導航欄,選擇設備管理 > 設備,在溫濕度傳感器產品下,創建一個具體的設備:TH_sensor。具體操作,請參見單個創建設備

    創建設備完成后,在彈出的添加完成對話框,單擊前往查看,獲取設備證書(ProductKey、DeviceName和DeviceSecret)。設備證書是設備后續與物聯網平臺交流的重要憑證,請妥善保管。

  6. 設備列表頁簽,單擊設備TH_sensor的查看,進入設備詳情頁面。在標簽信息右側,單擊編輯,為設備添加標簽。

    本文示例添加如下兩個標簽,具體操作,請參見標簽

    Key

    Value

    描述

    tag

    YY小鎮X號樓F層00XS

    設備所在位置。

    deviceISN

    T20180102X

    設備序列號。

步驟二:配置函數計算服務

函數計算,是一個事件驅動的全托管計算服務,目前支持的語言Java、Node.js、Python等語言,具體內容,請參見如何使用函數計算

  1. 配置釘釘機器人,獲取Webhook地址。

    1. 登錄電腦版釘釘。

    2. 單擊釘釘群聊天窗口的群設置按鈕群設置,然后單擊智能群助手

    3. 單擊添加機器人,然后單擊按鈕添加機器人

    4. 選擇自定義,單擊添加

    5. 設置機器人名字和安全設置,選中我已閱讀并同意《自定義機器人服務及免責條款》復選框,然后單擊完成

    6. 單擊復制,保存Webhook地址到本地。

  2. 編寫函數計算腳本。

    本文以Node.js運行環境為例編寫函數腳本,從物聯網平臺獲取設備位置、設備編號、實時溫度、相對濕度和上報時間數據,按照釘釘消息格式組裝,使用HTTPS協議將POST數據推送到釘釘機器人的Webhook接口。

    完成編寫后,將腳本文件命名為index.js,并壓縮為index.zip文件進行保存。完整代碼腳本如下:

    您需將accessToken替換為Webhook地址中access_token的值。

    const https = require('https');
    const accessToken = '填寫accessToken,即釘釘機器人Webhook的access_token值';
    module.exports.handler = function(event, context, callback) {
    var eventJson = JSON.parse(event.toString());
    //釘釘消息格式
    const postData = JSON.stringify({
    "msgtype": "markdown",
    "markdown": {
    "title": "溫濕度傳感器",
    "text": "#### 溫濕度傳感器上報\n" +
    "> 設備位置:" + eventJson.tag + "\n\n" +
    "> 設備編號:" + eventJson.isn+ "\n\n" +
    "> 實時溫度:" + eventJson.temperature + "℃\n\n" +
    "> 相對濕度:" + eventJson.humidity + "%\n\n" +
    "> ###### " + eventJson.time + " 發布 by [物聯網平臺](https://www.aliyun.com/product/iot) \n"
    },
    "at": {
    "isAtAll": false
    }
    });
    const options = {
    hostname: 'oapi.dingtalk.com',
    port: 443,
    path: '/robot/send?access_token=' + accessToken,
    method: 'POST',
    headers: {
    'Content-Type': 'application/json',
    'Content-Length': Buffer.byteLength(postData)
    }
    };
    const req = https.request(options, (res) => {
    res.setEncoding('utf8');
    res.on('data', (chunk) => {});
    res.on('end', () => {
    callback(null, 'success');
    });
    });
    // 異常返回
    req.on('error', (e) => {
    callback(e);
    });
    // 寫入數據
    req.write(postData);
    req.end();
    };
  3. 創建服務和函數。

    1. 開通阿里云函數計算服務,請參見開通服務

    2. 登錄函數計算控制臺,在左側導航欄選擇服務及函數

    3. 單擊創建服務,設置服務名稱為IoT_Service,然后單擊確定

    4. 服務列表單擊IoT_Service,然后單擊創建函數

    5. 創建函數頁面,選擇使用內置運行時創建

    6. 配置函數的基本信息,如下所示,其他參數使用默認設置,然后單擊創建

      • 基本設置

        如下圖所示,配置函數名稱為pushData2DingTalk,選擇處理事件請求

        基本設置
      • 函數代碼

        如下圖所示,選擇運行環境為Node.js 14的版本,然后上傳已保存的index.zip文件。

        函數代碼

步驟三:配置數據流轉到函數計算中

將設備TH_sensor上報的溫度和濕度等數據轉發至函數計算的函數pushData2DingTalk中。

  1. 返回物聯網平臺控制臺,在對應實例下的左側導航欄,選擇消息轉發 > 云產品流轉,然后單擊創建規則,輸入規則名稱:溫濕度數據流轉,單擊確認

    重要

    若當前頁面顯示新版功能,先單擊右上角返回舊版,進入舊版功能頁面,再單擊創建規則

  2. 數據流轉規則頁面,單擊編寫SQL,編輯處理數據的SQL。

    本文示例中,定義篩選的消息字段包含:

    • 設備信息中的設備名稱(deviceName),自定義標簽中的屬性(tag)和序列號(deviceISN)。

    • 溫濕度傳感器上報數據消息payload中的溫度值(temperature)和濕度值(humidity)。

    具體SQL語句如下:

    SELECT 
    deviceName() as deviceName, 
    attribute('tag') as tag, attribute('deviceISN') as isn, 
    items.temperature.value as temperature, items.humidity.value as humidity, 
    timestamp('yyyy-MM-dd HH:mm:ss') as time 
    FROM 
    "/g5j3o***/TH_sensorthing/event/property/post"
    編寫SQL
  3. 數據流轉規則頁面,單擊添加操作,將數據轉發到函數計算(FC)。

    本文示例選擇已創建的服務IoT_Service和函數pushData2DingTalk。具體操作,請參見數據轉發到函數計算(FC)轉發數據

  4. 在數據流轉規則列表中,單擊規則溫濕度數據流轉對應的啟動,啟用該規則。

步驟四:接入設備和上報溫濕度數據

使用設備證書(ProductKey、DeviceName和DeviceSecret),通過MQTT協議將設備接?物聯網平臺,并模擬上報溫濕度數據。

  1. 在Windows系統或Linux系統下載并安裝Node.js。本文以Windows 10(64位)系統為例,下載安裝包node-v14.15.1-x64.msi。

  2. 安裝成功后,打開CMD窗口,通過以下命令查看node版本。

    node --version

    顯示如下版本號,表示安裝成功。

    v14.15.1
  3. 在本地計算機創建一個JavaScript文件(例如iot_device.js),用來存放Node.js示例代碼。

    Node.js示例代碼如下所示:

    const mqtt = require('aliyun-iot-mqtt');
    // 1. 設備身份信息
    var options = {
        productKey: "g18l***",
        deviceName: "TH_sensor",
        deviceSecret: "b2e6e4f102458d84***",
        host: "iot-cn-***.mqtt.iothub.aliyuncs.com"
    };
    
    // 2. 建立MQTT連接
    const client = mqtt.getAliyunIotMqttClient(options);
    //訂閱云端指令Topic
    client.subscribe(`/${options.productKey}/${options.deviceName}/user/get`)
    client.on('message', function(topic, message) {
        console.log("topic " + topic)
        console.log("message " + message)
    })
    
    setInterval(function() {
        // 3.定時上報溫濕度數據
        client.publish(`/sys/${options.productKey}/${options.deviceName}/thing/event/property/post`, getPostData(), { qos: 0 });
    }, 5 * 1000);
    
    function getPostData() {
        const payloadJson = {
            id: Date.now(),
            version: "1.0",
            params: {
                temperature: Math.floor((Math.random() * 20) + 10),
                humidity: Math.floor((Math.random() * 20) + 10)
            },
            method: "thing.event.property.post"
    
        }
        console.log("payloadJson " + JSON.stringify(payloadJson))
        return JSON.stringify(payloadJson);
    }

    參數

    示例

    說明

    productKey

    g18l***

    您添加設備后,保存的設備證書信息。

    您可在控制臺中設備TH_sensor設備詳情頁面查看。

    deviceName

    TH_sensor

    deviceSecret

    b2e6e4f102458d84***

    host

    iot-cn-***.mqtt.iothub.aliyuncs.com

    MQTT設備接入域名。

    獲取接入域名的方法, 請參見管理實例終端節點

  4. 打開CMD窗口,使用cd命令找到iot_device.js文件所在路徑,在該路徑下使用npm命令下載阿里云IoT的MQTT庫。下載后的MQTT庫文件如下圖所示。

    npm install aliyun-iot-mqtt -SMQTT庫

  5. MQTT庫下載完成后,在CMD窗口輸入如下命令,運行iot_device.js代碼,啟動設備。

    node iot_device.js

執行結果

返回如下信息,表示設備接入成功,并上報數據。

payloadJson {"id":161848***,"version":"1.0","params":{"temperature":22,"humidity":15},"method":"thing.event.property.post"}

釘釘群機器人接收到消息如下。

釘釘機器人