阿里云IoT云端业务系统发送控制指令到设备端

[指令下行]云端业务系统发送控制指令到设备端

本教程演示如何通过IoT物联网平台下行控制指令。

image.png

我们以微信小程序作为模拟设备,设备上线后,点击订阅主题,会默认订阅主题为 / p r o d u c t K e y / {productKey}/ productKey/{deviceName}/user/get 的指令,然后业务系统调用POP API发送指令到IoT平台,IoT平台把指令推送到设备端。

1.小程序模拟设备

image.png

1.1 创建产品

** JSON格式**
image.png

1.2 指令下行Topic查看

image.png

1.3 注册设备

在产品下注册设备,获得身份三元组
image.png

2.通过POP API发送控制指令(Nodejs版)

2.1 依赖pop sdk
"@alicloud/pop-core": "1.5.2",
"co": "4.6.0"

2.2 发送指令代码

POP API https://help.aliyun.com/document_detail/69793.html

const co = require('co');
const RPCClient = require('@alicloud/pop-core').RPCClient;

const deviceInfo = {
    productKey: '接收指令的设备productKey',
    deviceName: '接收指令的设备deviceName'
}
const options = {
    accessKey: "云账号accessKey",
    accessKeySecret: "云账号accessKeySecret",
};
//1.创建client
const client = new RPCClient({
    accessKeyId: options.accessKey,
    secretAccessKey: options.accessKeySecret,
    endpoint: options.endpoint || 'https://iot.cn-shanghai.aliyuncs.com',
    apiVersion: options.apiVersion || '2018-01-20'
});


co(function*() {

    try {
        const pubBody = { msg: "这是来自云端的指令" }

        // 2.构造iot API
        // 这里是POP API的Action
        const action = 'Pub';
        // 这里是POP API的入参params
        const params = {
            ProductKey: deviceInfo.productKey,
            TopicFullName: `/${deviceInfo.productKey}/${deviceInfo.deviceName}/user/get`,
            MessageContent: new Buffer(JSON.stringify(pubBody)).toString('base64'),
            Qos: 1
        };
        //2.发送请求
        const response = yield client.request(action, params);

      	console.log('send command :'+JSON.stringify(pubBody));
        console.log('\napi return :'+JSON.stringify(response));
    } catch (err) {
        console.log(err)
    }
});

3.运行效果

image.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值