使用阿里云物联网平台流程

  模拟设备连接阿里云物联网平台#

编辑

编辑

1.找到物联网平台 #

阿里云物联网平台是一个集成了设备接入、设备管理、数据安全通信、消息订阅、消息转发和数据服务(存储、分析、过滤、解析、集成等)等能力的一体化平台。向下支持连接海量设备,采集设备数据上云;向上提供云端API,服务端可通过云端SDK调用云端API将指令下发至设备端,实现远程控制。

编辑

2.我已经试用过了直接点管理控制台#

编辑

3.实例详情 #

编辑

产品就是你要做的产品类型,如智能手表是一个类型,智能水表是一个类型

设备就是你产品下的设备,比如手表001,手表002 

4.物模型#

物模型包括,产品 and 产品属性和事件

编辑

编辑

 编辑

5.给产品添加设备#

 编辑

6.下载MQTTX #

MQTTX 是一个跨平台的 MQTT 客户端工具,旨在帮助用户快速、简单地与 MQTT 代理进行交互。它提供了一个图形用户界面,使得用户可以方便地测试和调试 MQTT 应用。

桌面端下载 https://mqttx.app/zh

web浏览器网页地址 https://mqttx.app/web-client

7.使用MQTTX模拟设备连接阿里云物联网平台#

编辑

 编辑

参数和MQTTX对应 

编辑 填好连接信息

编辑

 连接成功

编辑

 查看阿里云物联网平台会显示在线

编辑

8.连接成功设置设备属性值#

编辑

复制到 

编辑

 把${}中的值换成你自己的设备名

这里设置湿度为例子

编辑

 编辑

查看物联网平台设置成功

编辑

JAVA连接阿里云物联网平台#

1.在maven中导入jar包#

<!-- https://mvnrepository.com/artifact/com.aliyun/iot20180120 -->
<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>iot20180120</artifactId>
    <version>3.0.8</version>
</dependency>
<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>tea-openapi</artifactId>
    <version>0.2.2</version>
</dependency>

 2.在yml文件中添加#

这个accessKeyId之前oss连接的时候有讲,不会创建回去看

zzyl:
  aliyun:
    accessKeyId: LTAI5tMA5wSWRmeuyYPei9Vk
    accessKeySecret: GSNxohmhEcFa4g7p61RRTzRdABMzcH
    consumerGroupId: DEFAULT_GROUP
    regionId: cn-shanghai
    iotInstanceId: iot-06z00cxspzjxue9
    host: iot-06z00cxspzjxue9.amqp.iothub.aliyuncs.com

编辑 3.给yml中的数据书写配置类#

package com.zzyl.properties;

import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

@Setter
@Getter
@NoArgsConstructor
@ToString
@Configuration
@ConfigurationProperties(prefix = "zzyl.aliyun")
public class AliIoTConfigProperties {

    /**
     * 访问Key
     */
    private String accessKeyId;
    /**
     * 访问秘钥
     */
    private String accessKeySecret;
    /**
     * 区域id
     */
    private String regionId;
    /**
     * 实例id
     */
    private String iotInstanceId;
    /**
     * 域名
     */
    private String host;

    /**
     * 消费组
     */
    private String consumerGroupId;

}

 4.添加连接BeanConfig#

package com.zzyl.config;

import com.aliyun.iot20180120.Client;
import com.aliyun.teaopenapi.models.Config;
import com.zzyl.properties.AliIoTConfigProperties;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class IotClientConfig {

    @Autowired
    private AliIoTConfigProperties aliIoTConfigProperties;

    /**
     * LTAI5tDQKg9F61aJhbmhqVRK
     * LYUKZH7HQGBoD025pmSq0fQsREaOYD
     * @return
     * @throws Exception
     */
    @Bean(name = "iotClient")
    public Client instance() throws Exception {
        Config config = new Config();
        config.accessKeyId = aliIoTConfigProperties.getAccessKeyId();
        config.accessKeySecret = aliIoTConfigProperties.getAccessKeySecret();
        // 您的可用区ID 默认上海
        config.regionId = aliIoTConfigProperties.getRegionId();
        return new Client(config);
    }
}

 5.使用案例#

 @Override
    @Transactional(rollbackFor = Exception.class)
    public ResponseResult deleteDevice(QueryDeviceDetailDTO dto) {
        DeleteDeviceRequest request = new DeleteDeviceRequest();
        request.setIotInstanceId(aliIoTConfigProperties.getIotInstanceId());
        request.setIotId(dto.getIotId());
        request.setIotInstanceId(aliIoTConfigProperties.getIotInstanceId());
        request.setProductKey(dto.getProductKey());
        try {
            DeleteDeviceResponse response = iotClient.deleteDevice(request);
        } catch (Exception e) {
            throw new RuntimeException("删除设备失败");
        }
        deviceMapper.deleteDevice(dto.getIotId());
        return ResponseResult.success("删除成功");
    }


作者:freps

出处:https://www.cnblogs.com/freps/p/18461305

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   LL。。。  阅读(98)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示