阿里云AliYun物联网平台使用-客户端API获取设备传感数据

news2025/1/18 9:04:57

一、前言

        上一篇文章中,已经实现了虚拟数据上云,本文我们将进行上位机客户端的开发,即通过调用阿里云IOT物联网云平台的SDK,开发能获取传感器的遥感数据。

二、云平台操作

        调用API需要用户的AccessKey Secret,这意味着客户端将取得主体账号的所有权限。为了防止恶意用户通过客户端软件获取到全部权限对已部署的系统造成损害,因此建议创建子账号,并对其授予相关的设备的权限。

        通过子账号的AccessKey ID以及AccessKey Secret连接云平台,对云平台设备进行操作等。可以点击下面的链接进入。

        Token管理:AccessKey管理页面
        或者点击左侧菜单栏中的访问控制,随后再进入子菜单中的 "身份管理" - "用户" 页面。

        至此,两种方式均进入本页面。

        随后,点击创建用户,并勾选 "OpenApi调用访问" 选项,随后点击确认完成创建。

        选中该用户,点击 "添加权限",由于本账号只需要读取传感器数据,为了安全起见,我们只需要给他授予对物联网云平台的只读权限。

        点击确认,即授权完成。

        值得注意的是,由于我们对账号开启OpenApi的调用权限,而开启此权限的账号其相关信息在网页关闭后不再显示,因此我们需要将本页面上显示出的AccessKey ID以及AccessKey Secret保存下来,便于复用。

        随后,我们使用阿里云物联网平台的SDK创建自己的应用程序,亦或者使用官方发布的Demo,并在其工程内新建我们的程序类,完成下面的开发。

三、程序设计

        首先,打开上次博客中的数据上报程序,上报虚拟数据,并可以在云平台进行数据查看。

        程序开始运行。此时,在阿里云平台,可以看到随机上传的数据。

        打开从云平台获取数据的程序,下述文件是程序运行需要引入的类:

import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.alibaba.fastjson.JSON;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.iot.model.v20180120.QueryDevicePropertyStatusRequest;
import com.aliyuncs.iot.model.v20180120.QueryDevicePropertyStatusResponse;

        在程序中声明我们需要用到的参数:

        第一步,初始化客户端连接对象。

IClientProfile profile = DefaultProfile.getProfile(regionId, accessKeyId, secret);
// 初始化client
client = new DefaultAcsClient(profile); //初始化SDK客户端

        第二步,构建数据查询请求。 

QueryDevicePropertyStatusRequest request = new QueryDevicePropertyStatusRequest();
request.setRegionId(regionId);
request.setIotInstanceId(iotid);
request.setDeviceName(deviceName);
request.setProductKey(deviceProductkey);

        第三步,获取返回值,并对数据进行解析输出。

try {
    // 发起查询设备属性请求
    QueryDevicePropertyStatusResponse response = client.getAcsResponse(request);
    // 处理查询结果
    // 可以从response中获取传感器的数据
    // 获取传感器数据
    String string=JSON.toJSONString(response);
    // 解析JSON数据
    JsonParser parser = new JsonParser();
    JsonObject jsonObject = (JsonObject) parser.parse(string);
    // 获取数据字段
    JsonObject data = (JsonObject) jsonObject.get("data");
    JsonArray list = (JsonArray) data.get("list");
    //将传感器数据输出
    System.out.println("传感器数据:" + list.get(0).getAsJsonObject().get("value"));
} catch (ClientException e) {
    // 处理异常
    e.printStackTrace();
}

        关于上述Json数据的解析思路,可以参照阿里云的API文档:

        QueryDevicePropertyStatus接口使用说明

        随后,我们将上述代码封装成一个方法,在主函数中创建子线程并持续调用该方法,以达到持续获取数据。

         可以看到,上述代码已经能够实时获取设备数据,在此基础上,我们可以通过变成来自定义一些策略,以完成对数据变化的实时响应,完善一个物联网系统。

四、源代码

        本栏目关于阿里云的全部源代码已上传GitHub,Csdn可以提供GitHub免费加速下载。

        西西菜鸟-阿里云物联网相关源码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/755203.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用IDEA的Run DashBoard

在微服务开发过程中,我们需要开启很多的服务,为了方便管理,我们可以使用IDEA的Run DashBoard来启动相关服务。 默认情况下,IDEA检测到你的项目中由SpringBoot项目时,会提示你开启Run DashBoard。如果没有开启的话&…

MySql5.6版本开启慢SQL功能

文章目录 1引言1.1目的1.2注意点说明1.3 操作步骤1.3.1 临时生效操作步骤1.3.2 永久生效操作步骤1.3.3 按日期生成日志文件1.3.4 执行成功后验证功能是否开启 1.4 慢SQL日志记录内容介绍1.5 Shell脚本 1引言 1.1目的 开启 MySQL 的慢查询日志(Slow Query Log&…

【Spring core学习二】创建Spring 项目 Spring的存

目录 🌟一、创建最原始的Spring-core项目。 🌟二、怎么往Spring中存取对象? 🌷1、在Spring中存对象 🌷2、通过getBean获取对象的三种方式 🌷3、通过factory方式获取对象 🌟三、对存对象的…

3分钟了解Android中稳定性测试

一、什么是Monkey Monkey在英文里的含义是猴子,在测试行业的学名叫“猴子测试”,指的是没有测试经验的人甚至是根本不懂计算机的人(就像一只猴子),不需要知道程序的任何用户交互方面的知识,给他一个程序&a…

TCP协议3次握手4次挥手

建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立,在socket编程中,这一过程由客户端执行connect来触发,在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。 TCP三次握手的过程如下:第一次握…

【编译之美】【5. 代码优化:数据流分析】

有些优化只能在全局优化中做,在本地优化中做不了,比如: 代码移动(Code motion)能够将代码从一个基本块挪到另一个基本块,比如从循环内部挪到循环外部,来减少不必要的计算。(循环剥离…

【HarmonyOS】Stage模型二维码/条码生成与解析

HarmonyOS的官方API中提供了QRCode组件(QRCode-基础组件-组件参考(基于ArkTS的声明式开发范式)-ArkTS API参考-HarmonyOS应用开发),这个组件有个缺点只能用于显示二维码,无法显示条码与解析码内容&#xff…

【hadoop】部署hadoop的伪分布模式

hadoop的伪分布模式 伪分布模式的特点部署伪分布模式hadoop-env.shhdfs-site.xmlcore-site.xmlmapred-site.xmlyarn-site.xml对NameNode进行格式化启动Hadoop 对部署是否完成进行测试免密码模式免密码模式的原理(重要)免密码模式的配置 伪分布模式的特点…

Linux离线环境Jenkins部署SpringBoot

Jenkins服务器 把Jar包上传到Linux服务器的/jenkins/目录下 Dashboard----》新建任务----》构建一个自由风格的软件项目----》test 修改jenkins工作空间 新建构建前执行命令stop.sh,停止SpringBoot并备份 (这里是目标服务器,即部署项目的…

2.3 移动次数计算和静态链表

1. 元素移动次数计算问题 本问题针对顺序表, 因为链表不需要移动元素, 只需要重新连接指针即可. 题型一: 计算在某个位置上插入一个新元素会导致多少元素的移动. 题型二: 计算在每个位置上插入一个元素所导致的平均移动次数. 先计算每个位置上插入的概率, 一般是1/n, 平均移…

vue Router(v3.x) 路由传参的三种方式详解

文章目录 前言一,params 传参(显示参数)注意: 响应路由参数的变化 二,params 传参(不显示参数)注意:上述这种利用 params 不显示 url 传参的方式会导致在刷新页面的时候,…

【HCIA】10.VLAN间通信

VLAN间通信的解决方法 使用路由器的物理接口 路由器三层接口作为网关,转发本网段前往其它网段的流量。路由器三层接口无法处理携带VLAN Tag的数据帧,因此交换机上联路由器的接口需配置为Access。路由器的一个物理接口作为一个VLAN的网关,因此…

即视角|出海资本热土——印尼市场洞察(下)

即视角Insight 共享即构新洞察,共建行业新动能——ZEGO即构科技基于音视频技术领域的多年深耕,综合面向各行业的服务经验,在【即视角】栏目发布即构对行业的洞察。 在《即视角|出海资本热土——印尼市场洞察(上&…

WIFI鉴权的过程

1.前言 当今手机连接WIFI热点普遍采用WPA2-PSK的方式。本文讨论这个方式的鉴权过程。 2. 鉴权过程 我们称需要连接的一方为station,简称STA。提供WIFI热点的一方为AP。 连接之前, station需要知道AP的名字(ssid)和密码(PSK)。 定义 &#x…

Openlayers实战:多地图底图切换

在实际的地图项目中,不管是我们看到的百度地图还是高德地图等,都会有地图切换这一项。 在Openlayers实战中,我们用三种地图做demo,分别是谷歌地图。Openstreetmap,stamen地图。 切换的主要原则是设置三个底图层,设定其显示状态,用到了visible这一个属性。 效果图 源代码…

更新补丁导致360随身wifi提示USB设备驱动异常

运行环境:Windows11 更新补丁版本:2023-适用于 Windows 11 的 07 累积更新,适合基于 x64 的系统 (KB5028182) 硬件版本:360随身wifi-3 错误提示:USB设备驱动异常,创建Wifi网络失败 采取措施:更新…

Openlayers实战:加载Bing地图

Bing地图在地图领域有一定的江湖地位,是微软公司的产品。 在Openlayers其内置了Bing地图的方法,可以研究其API。我们的实战中是要其成为一个底图,很简单的就可以加载出来。 效果图 源代码 /* * @Author: 大剑师兰特(xiaozhuanlan),还是大剑师兰特(CSDN) * @此源代码版…

ELK 企业级日志分析系统(四)

ELK 一、部署Kafka集群二、Kafka的命令行操作三、Kafka架构深入四、FilebeatKafkaELK部署 一、部署Kafka集群 1.下载安装包 官方下载地址:http://kafka.apache.org/downloads.html cd /opt wget https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.7.1/kafka_2…

Halcon会慢慢被淘汰吗?

作为一个语言模型,我不能提供预测未来的确凿答案。然而,我可以提供一些关于Halcon和机器视觉市场的观察和趋势。 我这里刚好有嵌入式、单片机、plc的资料需要可以私我或在评论区扣个6 Halcon是一款商业机器视觉软件,具有广泛的应用和用户群…

“AI in the Alps“:身体与精神的一场盛宴

作者:Christofer Dutz 得益于 Timecho 的组织和安排,我最近参加了一个精彩绝伦的活动 “AI in the Alps”,并从中收获颇丰。 这次活动是由德国工业界知名博客 “Industrial AI Podcast”(http://aipod.de)的组织者 Ro…