服务器连接阿里云Iot平台进行指令下发

简介

该例程为NodeMCU-ESP8266连接阿里云Iot平台指令下发,实际上是为指定的设备Topic发布消息从而达到控制的效果,具体的说,是向产品/产品详情/Topic类列表/物模型通信Topic中的属性设置/sys/gmvzwtDHyC6/${deviceName}/thing/service/property/set这个Topic进行消息发布。只要填入Aliyun的API中必要的参数,其就会模拟一个客户端向Iot服务器平台的主题发布数据。

友情提示:

  • 笔者所做的工作仅为的整合工作,因此本篇博客仅仅展示笔者成功调试的过程,仅供参考。
  • 笔者推荐您参考官方文档的步骤进行调试,笔者只是将官方文档开发的步骤简单的总结了一下。

开发环境准备

笔者采用java的环境进行服务器开发,因此在开发之前,需要先配置好这些环境

  • JDK1.8
  • idea-pro

快速上手

注意:首先笔者默认您已经创建好了一个AliyunIot的公共实例,并且已经成功创建产品和公共实例,且NodeMCU已经成功连接上云,可以在Iot平台上显示数据。如果您还没有做到这一步,请根据NodeMCU-ESP8266连接阿里云Iot平台进行数据监测里的方法进行操作。

创建一个新的Maven项目

该步骤不详细演示,在Idea上创建一个空的Maven项目即可,如果不会创建则自行查阅资料。

导入Maven依赖

在pow.xml中导入依赖

<dependencies>
    <dependency>
      <groupId>com.aliyun</groupId>
      <artifactId>iot20180120</artifactId>
      <version>1.4.0</version>
    </dependency>
</dependencies>

创建实例运行

创建一个程序,填入必要的信息运行以下程序。

// This file is auto-generated, don't edit it. Thanks.
package com.xxx;

import com.aliyun.tea.*;
import com.aliyun.iot20180120.*;
import com.aliyun.iot20180120.models.*;
import com.aliyun.teaopenapi.*;
import com.aliyun.teaopenapi.models.*;
import com.aliyun.teaconsole.*;
import com.aliyun.teautil.*;
import com.zeeland.pojo.DeviceInfo;
import com.zeeland.pojo.KeyInfo;

public class Pub {

    /**
     * 使用AK&SK初始化账号Client
     * @param accessKeyId
     * @param accessKeySecret
     * @return Client
     * @throws Exception
     */
    public static com.aliyun.iot20180120.Client createClient(String accessKeyId, String accessKeySecret) throws Exception {
        Config config = new Config()
                // 您的AccessKey ID
                .setAccessKeyId(accessKeyId)
                // 您的AccessKey Secret
                .setAccessKeySecret(accessKeySecret);
        // 访问的域名
        config.endpoint = "iot.cn-shanghai.aliyuncs.com";
        return new com.aliyun.iot20180120.Client(config);
    }

    public static void main(String[] args_) throws Exception {
        java.util.List<String> args = java.util.Arrays.asList(args_);

        com.aliyun.iot20180120.Client client = Pub.createClient(KeyInfo.accessKeyId, KeyInfo.accesssKeySecret);
        //参数配置
        PubRequest pubRequest = new PubRequest()
                .setIotInstanceId(KeyInfo.instanceId)
                .setProductKey(KeyInfo.NodeMCUProductId)
                .setQos(0)
                .setTopicFullName(DeviceInfo.topicSet)
                .setMessageContent("eyJwYXJhbXMiOnsib3BlbkRvb3IiOjF9fQ==");//base64编码后的结果
        PubResponse resp = client.pub(pubRequest);
        com.aliyun.teaconsole.Client.log(com.aliyun.teautil.Common.toJSONString(TeaModel.buildMap(resp)));
    }
}

如果您理解不了以上的代码,可以使用在线调试,先在线上调试一遍,如下图所示,先将中间栏的需要填入的数据填入,然后再点击发起调用,就可以看到运行后的结果了。

image-20211204230859445

注意事项:

  • 单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为1600
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zeeland

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值