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

这篇具有很好参考价值的文章主要介绍了阿里云AliYun物联网平台使用-客户端API获取设备传感数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、前言

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

二、云平台操作

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

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

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

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

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

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

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

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

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

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

        点击确认,即授权完成。

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

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

三、程序设计

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

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

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

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

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

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;

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

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

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

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接口使用说明

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

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

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

四、源代码

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

        西西菜鸟-阿里云物联网相关源码文章来源地址https://www.toymoban.com/news/detail-567401.html

到了这里,关于阿里云AliYun物联网平台使用-客户端API获取设备传感数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何使用Laravel的HTTP客户端与外部API交互

    Laravel使API交互对新的和有经验的Web开发人员来说都是轻而易举的。Larvel的HTTP客户端是建立在PHP的Guzzle HTTP客户端之上,让开发者在进行HTTP请求时有更顺畅的体验。它的主要功能包括认证, 路由, 和有效的对象关系映射(ORM). 本文将探讨如何使用Laravel的HTTP客户端来进行请求, 调

    2024年01月21日
    浏览(84)
  • 【版本控制】mac平台SVN客户端: macSvn 下载与使用指南

    mac 平台下一直没有一款像 windows 的 TortoiseSVN 全面、高效、便捷的 SVN 客户端,最近发现一款新发布的 macSvn,感觉比目前主流的 Cornerstone、Snail SVN 等要好用, 直接内置了版本控制中常用的比较工具、缺陷跟踪工具 ,不再需要额外下载和打开其他软件。另外像 TortoiseSVN 一样

    2024年04月15日
    浏览(48)
  • 使用Kafka客户端(spring-kafka)的Java API操作Kafka的Topic

    记录 :458 场景 :在Spring Boot微服务集成Kafka客户端spring-kafka-2.8.2操作Kafka的Topic的创建和删除。 版本 :JDK 1.8,Spring Boot 2.6.3,kafka_2.12-2.8.0,spring-kafka-2.8.2。 Kafka安装 :https://blog.csdn.net/zhangbeizhen18/article/details/129071395 1.微服务中 配置Kafka信息 1.1在pom.xml添加依赖 pom.xml文件: 解析

    2024年02月09日
    浏览(41)
  • 使用Kafka客户端(kafka-clients)的Java API操作Kafka的Topic

    记录 :460 场景 :在Spring Boot微服务集成Kafka客户端kafka-clients-3.0.0操作Kafka的Topic的创建和删除。 版本 :JDK 1.8,Spring Boot 2.6.3,kafka_2.12-2.8.0,kafka-clients-3.0.0。 Kafka安装 :https://blog.csdn.net/zhangbeizhen18/article/details/129071395 1.微服务中 配置Kafka信息 1.1在pom.xml添加依赖 pom.xml文件: 解析

    2024年02月09日
    浏览(69)
  • QT使用MQTT协议连接ONENET云平台:智能家居PC客户端开发笔记-1 环境搭建

    前端时间做了一个项目,要求在PC端使用QT制作一个客户端,用来接收从单片机上传到Onennet的数据,并且还要下发指令。当时弄了好几天,中途遇见了非常多的问题,所以写下这篇文章记录一下,同时分享一下自己的经验。 我的环境:QT 5.12.6 总结下我遇见的难点: 1,环境配

    2024年02月11日
    浏览(66)
  • Java【网络编程2】使用 TCP 的 Socket API 实现客户端服务器通信(保姆级教学, 附代码)

    📕各位读者好, 我是小陈, 这是我的个人主页 📗小陈还在持续努力学习编程, 努力通过博客输出所学知识 📘如果本篇对你有帮助, 烦请点赞关注支持一波, 感激不尽 📙 希望我的专栏能够帮助到你: JavaSE基础: 基础语法, 类和对象, 封装继承多态, 接口, 综合小练习图书管理系统

    2024年02月05日
    浏览(62)
  • QT使用MQTT协议连接ONENET云平台:智能家居PC客户端开发笔记-2 项目开发

    这篇文章主要是分享QT智能家居项目的代码 在我看来,QT MQTT的使用主要难点就是对于环境的搭建,在我们把环境搭建完之后,接下来就是传统手艺了,我们只要知道相应的库函数,调用它,就能实现我们所需要的功能了。 所以,在这里我也只是简单的分享一下我写的第一版

    2024年02月16日
    浏览(45)
  • 【物联网】超级好用的MQTT客户端软件(MQTTfx下载和安装)

    MQTT.fx是一款基于Eclipse Paho,使用Java语言编写的MQTT客户端工具。支持通过Topic订阅和发布消息,用来前期和物理云平台调试非常方便。 它是一个用Java编写的MQTT客户端库,可以帮助开发人员在Eclipse环境下快速开发MQTT应用程序。Mqtt.fx提供了一系列功能,包括创建和管理连接,

    2024年02月12日
    浏览(80)
  • 如何在嘉立创EDA客户端中离线使用立创平台的开源项目(将网页版项目本地化)

    创建项目时会生成一个空原理图,可以删掉 导入原理图同理 ————end————

    2024年02月12日
    浏览(70)
  • Android安全——客户端安全要点,阿里P8大佬亲自教你

    区别基于Binder实现的BroadcastReceiver,LocalBroadcastManager 是基于Handler实现的,拥有更高的效率与安全性。安全性主要体现在数据仅限于应用内部传输,避免广播被拦截、伪造、篡改的风险。简单了解下用法: 自定义BroadcastReceiver public class MyReceiver extends BroadcastReceiver { @Override pu

    2024年04月24日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包