服务器连接阿里云Iot平台进行指令下发
Posted 帅气的黑桃J
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了服务器连接阿里云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)));
如果您理解不了以上的代码,可以使用在线调试,先在线上调试一遍,如下图所示,先将中间栏的需要填入的数据填入,然后再点击发起调用,就可以看到运行后的结果了。
注意事项:
- 单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为1600
以上是关于服务器连接阿里云Iot平台进行指令下发的主要内容,如果未能解决你的问题,请参考以下文章
NodeMCU-ESP8266连接阿里云Iot平台进行数据监测
阿里云IoT+YF33003. Alink物模型之属性上传和下发