詳細(xì)教程應(yīng)用側(cè)開發(fā)Java Demo

      網(wǎng)友投稿 1143 2022-05-30

      華為云IOT的應(yīng)用側(cè)開發(fā)Java Demo使用詳細(xì)教程

      (IDEA 開發(fā))

      第0章 簡(jiǎn)介

      最近有很多小伙伴在使用華為云IOT的應(yīng)用側(cè)開發(fā)的Java Demo時(shí)遇到一些問題,本期就教大家如何使用這個(gè)基于華為云官方提供的Java Demo,本期教程帶大家做的是查詢的在線狀態(tài)和設(shè)備影子屬性,并解析JSON數(shù)據(jù),大家可以根據(jù)自己的需要進(jìn)行二次開發(fā),結(jié)果如下:

      詳細(xì)教程:應(yīng)用側(cè)開發(fā)Java Demo

      有需要參考esp8266系列設(shè)備接入華為云物聯(lián)網(wǎng)平臺(tái)(IOTDA) 并完成設(shè)備屬性上報(bào)流程的小伙伴可以參考我之前發(fā)的帖子。

      第1章 整體流程概述

      一、操作前的準(zhǔn)備

      二、導(dǎo)入華為云官方提供的應(yīng)用側(cè)開發(fā)Java Demo工程并配置環(huán)境

      三、獲取Token

      四、調(diào)用接口

      第2章 具體詳細(xì)步驟

      一、 操作前的準(zhǔn)備

      1、環(huán)境準(zhǔn)備

      (1) JDK(jdk-8u161-windows-x64.exe+配置環(huán)境變量)

      (2) IntelliJ IDEA

      (3) apache-maven

      (4) 設(shè)備接入IOTDA

      2、 參數(shù)信息準(zhǔn)備:進(jìn)入我的憑證頁(yè) 準(zhǔn)備下面信息(樣例,請(qǐng)大家換成自己的參數(shù),不清楚的可以參考下面的“參數(shù)來(lái)源”)

      (1) 華為云賬號(hào)名:hw_666666_01

      (2) IAM用戶名:FUNIOT(一般默認(rèn)為賬號(hào)名,此處我采用的是創(chuàng)建的其他IAM賬戶:FUNIOT)

      (3) IAM用戶登錄華為云密碼:ABCD1234

      (4) 項(xiàng)目ID:09903251671035vz9u03030f

      (5) 設(shè)備ID:513423536g4be_esp8266_test01

      (6) 設(shè)備屬性:temp????(本次教程用于查詢?cè)O(shè)備影子的設(shè)備屬性)

      (7) IAM服務(wù)對(duì)接地址:https://iam.cn-north-4.myhuaweicloud.com ????(根據(jù)自己項(xiàng)目調(diào)整 )

      (8) 接入服務(wù)對(duì)接地址:https://iotda.cn-north-4.myhuaweicloud.com (根據(jù)自己項(xiàng)目調(diào)整 )

      3、 【參數(shù)來(lái)源】

      (1) 設(shè)備ID、設(shè)備屬性、產(chǎn)品ID可在設(shè)備接入控制臺(tái) 中查看

      (2) IAM:默認(rèn)為華為云賬號(hào)名,根據(jù)官方提示,如果您的華為云帳號(hào)已升級(jí)為華為帳號(hào),不支持獲取帳號(hào)Token,建議您在統(tǒng)一身份認(rèn)證 處創(chuàng)建IAM用戶,授予該用戶權(quán)限,以獲取該IAM用戶的Token。

      二、 導(dǎo)入華為云官方提供的應(yīng)用側(cè)開發(fā)Java Demo工程并配置環(huán)境

      1、 下載官方提供的Java Demo

      鏈接:https://iot-developer.obs.cn-north-4.myhuaweicloud.com/javaApiDemo2.zip

      此時(shí)我們得到了javaApiDemo2.zip的壓縮文件,然后接下來(lái)我們解壓縮文件并導(dǎo)入工程。

      2、 導(dǎo)入工程并進(jìn)行簡(jiǎn)單配置

      (1) 導(dǎo)入工程:Open->路徑\pom.xml->Open as Project

      (2) 配置工程的本地maven倉(cāng)庫(kù)

      File->Settings->Bulid,Execution,Deployment->Maven->User setting file,選擇maven的config->setting.xml

      注:一般設(shè)置好User setting file 路徑后Local respository會(huì)自動(dòng)更新

      三、 獲取Token

      1、 配置IAM服務(wù)對(duì)接地址和接入服務(wù)對(duì)接地址

      在IDEA中,打開“JavaApiDemo> src >main>java> com.huawei.util > Constants.java”,修改TOKEN_BASE_URL、IOTDM_BASE_URL,將我們提前準(zhǔn)備的地址數(shù)據(jù)填入:

      2、 獲取IAM用戶Token接口鑒權(quán)

      (1) 打開JavaApiDemo -> src -> main ->java ->com.huawei.demo.auth -> Authentication.java

      在88行左右填入我們?cè)O(shè)置的賬號(hào)名、IAM用戶名、IAM用戶密碼

      (2) 右鍵運(yùn)行“Authentication.main()”,查看控制臺(tái)的輸出結(jié)果,如果出現(xiàn)很長(zhǎng)的字符串,意味著鑒權(quán)成功。

      注意:這個(gè)不需要大家復(fù)制保存,系統(tǒng)會(huì)生成一個(gè)token.text文件,程序中每次獲取token時(shí)都會(huì)優(yōu)先從文件中獲取之前保存的token,如果token失效(有效期為24小時(shí)),代碼會(huì)重新獲取新的token并保存到token.text文件中。

      四、 調(diào)用接口

      1、 查詢?cè)O(shè)備

      (1) 查看查詢?cè)O(shè)備的URI:我們?cè)诠俜教峁┑腁PI參考文檔中可以看到

      (2) 添加URI:

      我們打開之前配置IAM接入地址的Constants.java文件,路徑:JavaApiDemo> src >main>java> com.huawei.util > Constants.java文件,加入/修改下面這句:

      public static final String DEVICE_COMMAND_URL = IOTDM_BASE_URL + "/v5/iot/%s/devices/%s";

      (3) 調(diào)用接口

      (a) 修改參數(shù)

      打開JavaApiDemo > src > main>java>com.huawei.demo.device > QueryDeviceList.java文件,將我們事先準(zhǔn)備的相關(guān)參數(shù)填入后,右鍵運(yùn)行“QueryDeviceList.main()”

      (b) 查看運(yùn)行結(jié)果

      (c) JSON解析(我使用的是開源中國(guó)社區(qū)的 J SON 格式化顯示工具 )

      為了方便觀看和分析,我們將上面得到的數(shù)據(jù)復(fù)制下來(lái),進(jìn)行json格式化一下

      教程中我們需要的是查詢?cè)O(shè)備在線狀態(tài),我們查看JSON數(shù)據(jù)可以發(fā)現(xiàn)”status”:”O(jiān)FFLINE”是我們需要的,接下來(lái)我們進(jìn)行解析:參考代碼

      ObjectMapper objectMapper = new ObjectMapper(); JsonNode jsonNode = objectMapper.readValue(getContent, JsonNode.class); JsonNode statusNode = jsonNode.get("status"); String statusstr = statusNode.asText(); System.out.println("status = " + statusstr); if(statusstr.equals("OFFLINE")) System.out.println("設(shè)備離線"); else if(statusstr.equals("ONLINE")) System.out.println("設(shè)備在線");

      【運(yùn)行結(jié)果】

      為了方便測(cè)試,直接使用MQTT.fx進(jìn)行登陸,我們?cè)俅芜\(yùn)行程序會(huì)發(fā)現(xiàn)已經(jīng)查詢到設(shè)備在線

      2、 查詢?cè)O(shè)備影子-屬性

      (1) 查看查詢?cè)O(shè)備的URI:我們?cè)诠俜教峁┑腁PI參考文檔中可以看到

      (2) 添加URI:

      我們?cè)俅未蜷_之前配置IAM接入地址的Constants.java文件,路徑:JavaApiDemo> src >main>java> com.huawei.util > Constants.java文件

      加入/修改下面這句:

      public static final String DEVICE_SHADOW_URL = IOTDM_BASE_URL + "/v5/iot/%s/devices/%s/shadow";

      (3) 調(diào)用接口

      (a) 修改參數(shù)

      打開JavaApiDemo > src > main>java>com.huawei.demo.device > QueryDeviceList.java文件,將我們事先準(zhǔn)備的相關(guān)參數(shù)填入后,右鍵運(yùn)行“QueryDeviceList.main()”

      (b) 查看運(yùn)行結(jié)果

      (c) JSON解析

      同樣,我們將上面得到的數(shù)據(jù)復(fù)制下來(lái),進(jìn)行json格式化一下

      教程中我們需要的是查詢?cè)O(shè)備影子的屬性,我們查看JSON數(shù)據(jù)可以發(fā)現(xiàn)”temp”:”22”是我們需要的,接下來(lái)我們進(jìn)行解析:參考代碼

      //解析json 例2:查詢?cè)O(shè)備影子 temp屬性

      ObjectMapper objectMapper = new ObjectMapper(); JsonNode jsonNode = objectMapper.readValue(getContent, JsonNode.class); JsonNode tempNode = jsonNode.get("shadow").get(0).get("reported").get("properties").get("temp"); String tempstr = tempNode.asText(); System.out.println("temp = " + tempstr); System.out.println("溫度:" + tempstr+"℃");

      【運(yùn)行結(jié)果】

      與控制臺(tái)查看的數(shù)據(jù)一致

      到這里大家就已經(jīng)掌握了JAVA Demo的基本操作,大家可以試著寫一個(gè)界面程序進(jìn)行顯示,我寫了一個(gè)如文章開頭所示的界面,bug很多,勉強(qiáng)能用,論壇里大佬很多,就不在這張貼了,有需要的小伙伴可以關(guān)注微信公眾號(hào)“IOT趣制作”,回復(fù)關(guān)鍵字“華為云應(yīng)用java”獲取測(cè)試界面程序,然后直接加到JavaApiDemo > src > main>java>com.huawei.demo.device >目錄下,運(yùn)行main()即可。

      【參考文檔及鏈接】

      華為云官方Java Demo使用說(shuō)明:https://support.huaweicloud.com/devg-iothub/iot_02_3002.html

      創(chuàng)建IAM用戶教程:https://support.huaweicloud.com/usermanual-iam/iam_02_0001.html

      華為云API列表:https://support.huaweicloud.com/api-iothub/iot_06_v5_0003.html

      構(gòu)造請(qǐng)求說(shuō)明:https://support.huaweicloud.com/api-iothub/iot_06_v5_0090.html

      認(rèn)證鑒權(quán)說(shuō)明:https://support.huaweicloud.com/api-iothub/iot_06_v5_0091.html

      開源中國(guó)社區(qū)的JSON格式化顯示工具:https://tool.oschina.net/codeformat/json/

      esp8266系列設(shè)備接入華為云物聯(lián)網(wǎng)平臺(tái)(IOTDA):https://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=179090

      IoT Java

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:聊聊DevOps下的測(cè)試技術(shù)(2)聊聊契約與契約測(cè)試
      下一篇:Linux內(nèi)核深度解析之進(jìn)程管理丨內(nèi)含贈(zèng)書福利(二)
      相關(guān)文章
      国产亚洲福利精品一区| 亚洲精品高清一二区久久| 91麻豆国产自产在线观看亚洲 | 中文字幕无码精品亚洲资源网久久| 久久久久亚洲AV无码永不| 久久综合日韩亚洲精品色| 国产亚洲av片在线观看播放| 亚洲片国产一区一级在线观看| MM1313亚洲精品无码久久| 亚洲heyzo专区无码综合| 人人狠狠综合久久亚洲| 亚洲国产av玩弄放荡人妇| 亚洲欧美综合精品成人导航| 国产精品亚洲一区二区麻豆| 亚洲中文无码mv| 亚洲AV永久无码精品一福利 | 亚洲欧美国产国产一区二区三区| 亚洲熟女www一区二区三区| 在线精品亚洲一区二区| 亚洲第一综合天堂另类专| 亚洲国产成人无码AV在线| 看亚洲a级一级毛片| 亚洲成人影院在线观看| 亚洲日韩VA无码中文字幕| 在线观看亚洲成人| 亚洲精品亚洲人成在线观看| 亚洲va中文字幕无码久久| 亚洲色图国产精品| 亚洲性无码av在线| 亚洲中文字幕AV在天堂| 亚洲区日韩精品中文字幕| 亚洲av片一区二区三区| 久久亚洲中文字幕精品一区四| 国产亚洲美日韩AV中文字幕无码成人 | 亚洲综合综合在线| 亚洲免费在线视频播放| 亚洲精品无码高潮喷水A片软| 亚洲精品无播放器在线播放 | 亚洲AV中文无码乱人伦| 国产亚洲精品福利在线无卡一 | 99久久国产亚洲综合精品|