服务器连接阿里云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.aliyungroupId>
      <artifactId>iot20180120artifactId>
      <version>1.4.0version>
    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)));
    }
}

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

服务器连接阿里云Iot平台进行指令下发_第1张图片

注意事项:

  • 单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为1600

你可能感兴趣的:(NodeMCU,物联网开发,服务器,阿里云,物联网,Nodemcu,esp8266)