Excel2016打印預(yù)覽表格的教程是什么(excel2016怎么看打印預(yù)覽)">Excel2016打印預(yù)覽表格的教程是什么(excel2016怎么看打印預(yù)覽)
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é)果如下:
有需要參考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)容。