1. 程式人生 > >騰訊IOT安卓開發初探

騰訊IOT安卓開發初探

[TOC] # 騰訊IOT 安卓開發初探 > 目的:將Andorid端作為一個物聯網裝置(device),然後將其安卓裝置上面的資料傳送到騰訊雲IOT開發平臺上。(這裡我們將手機上面的GPS經緯度傳送到**騰訊雲IOT**平臺上)。 騰訊IOT開發平臺:[https://console.cloud.tencent.com/iotexplorer](https://console.cloud.tencent.com/iotexplorer) 騰訊IOT Java SDK GitHub:[https://github.com/tencentyun/iot-device-java](https://github.com/tencentyun/iot-device-java) 開發工具:Android Studio 程式碼Github:[android_test_iot_for_tecent](https://github.com/xiaohuiduan/android_test_iot_for_tecent) ## Tecent IOT 開發平臺的使用 開發平臺的官方參考文件網址:[https://cloud.tencent.com/document/product/1081](https://cloud.tencent.com/document/product/1081),不過個人覺得其文件對於Java SDK的描述不夠詳細,需要去看其 [Demo ](https://github.com/tencentyun/iot-device-java/tree/master/explorer/explorer-device-android)原始碼才能明白其工作流程。 騰訊雲IOT開發平臺的專案結構如下所示:分為兩層——`專案` 和 `產品`。用在使用其平臺的時候,既需要建立project,也需要建立product。 ![](https://img2020.cnblogs.com/blog/1439869/202101/1439869-20210107023930291-1417475570.png) > 我們可以將**專案**理解為智慧家居整個系統,因此在專案中有很多**產品**,比如說智慧空調,智慧報警器等等產品。 ### 新建專案 新建專案,專案名稱隨意就行,建立好專案後,進入專案,然後建立產品。 ![](https://img2020.cnblogs.com/blog/1439869/202101/1439869-20210107023930600-619427062.png) ### 建立產品 建立產品的選項如下: - 裝置:因為我們是準備將安卓終端作為一臺裝置來使用的,因此,我們應該選擇**”裝置“**,當然,如果我們是準備將它作為閘道器,則看著選就行了。 - 認證方式:認證方式選擇金鑰認證,這樣在程式碼中間直接寫裝置的密碼就行,比證書稍微方便一點(不過實際上證書方便一點)。 - 資料協議:使用資料模板即可。 ![](https://img2020.cnblogs.com/blog/1439869/202101/1439869-20210107023930878-826405533.png) ### 新增自定義功能 物聯網裝置,之所以叫物聯網,是因為大家想把感測器獲得的資料放在雲端,或者通過雲端去控制物聯網裝置。那麼放什麼資料,控制什麼功能,則需要我們去定義。在騰訊IOT中,可以使用`新建功能`定義這些功能。 點選進入產品,選擇**新建功能**。 ![](https://img2020.cnblogs.com/blog/1439869/202101/1439869-20210107023931137-301717061.png) 自定義功能我們只需要兩個功能: - 經度:position_x - 緯度:position_y 建立經度如下,在功能型別中選擇**屬性**,資料型別我們選擇浮點型。(經度和緯度的範圍都在-180.0 ~180.0 ) ![](https://img2020.cnblogs.com/blog/1439869/202101/1439869-20210107023931439-2098263922.png) 同理將緯度配置為`position_y`,功能型別為**屬性**,資料型別同樣為浮點型,範圍為-180.0 ~180.0 。 關於功能型別的不同,可以參考下面的表格。 > 以下來自官方文件 > > | 功能元素 | 功能描述 | 功能識別符號 | > | :------- | :----------------------------------------------------------- | :----------- | > | 屬性 | 用於描述裝置的實時狀態,支援讀取和設定,如模式、亮度、開關等。 | PropertiesId | > | 事件 | 用於描述裝置執行時的事件,包括告警、資訊和故障等三種事件型別,可新增多個輸出引數,如環境感測器檢測到空氣質量很差,空調異常告警等。 | EventId | > | 行為 | 用於描述複雜的業務邏輯,可新增多個呼叫引數和返回引數,用於讓裝置執行某項特定的任務,例如,開鎖動作需要知道是哪個使用者在什麼時間開鎖,鎖的狀態如何等。 | ActionId | 點選下一步,進入裝置開發。 ![](https://img2020.cnblogs.com/blog/1439869/202101/1439869-20210107023931726-1284602902.png) ### 裝置開發 因為我們使用的是Java SDK進行開發,沒有使用模組也沒有基於OS開發,因此直接點選下一步。 ![image-20210106165342612](https://img2020.cnblogs.com/blog/1439869/202101/1439869-20210107023932005-1573449321.png) 點選下一步就到了微信小程式配置。 ### 微信小程式配置 騰訊IOT平臺相比較於其他平臺,有一個很大的特點就是可以很好的支援小程式。也就是說,在開發的階段,就可以使用小程式去驗證裝置的功能。並且這個微信小程式不需要自己寫樣式程式碼,只需要進行簡單的配置,就可以直接從小程式上面看到物聯網裝置的資料。 因為這裡我們使用的資料很簡單,只有經度和緯度兩個資料,所以隨便配置一下面板即可。 ![](https://img2020.cnblogs.com/blog/1439869/202101/1439869-20210107023932742-710446738.png) #### 面板配置 這裡面板型別選擇**標準面板**,然後配置一下模板樣式(配置長按鈕稍微好看一點),配置完效果圖如右邊所示。 ![](https://img2020.cnblogs.com/blog/1439869/202101/1439869-20210107023932999-690355722.png) ### 新建裝置 > 新建裝置`的意義:建立一個裝置代表啟動了一個賬號(這個裝置會提供一個金鑰),我們的裝置使用這個金鑰,就可以讓我們的裝置連線騰訊雲IOT平臺進行資料互動。 新建裝置的步驟如下所示: ![](https://img2020.cnblogs.com/blog/1439869/202101/1439869-20210107023933305-1954222109.png) ### 使用裝置 點選test_device,進入裝置管理。 ![](https://img2020.cnblogs.com/blog/1439869/202101/1439869-20210107023933569-889553897.png) 裝置管理介面如下所示: - 裝置資訊:這裡面是裝置的一些基本屬性,其中通過裝置``名稱``,`裝置金鑰`,和`產品ID`就可以唯一定位一個`裝置`,然後對其進行操作。 - 裝置日誌:裝置日誌裡面儲存著裝置的上行和下行資料。 - 線上除錯:通過線上除錯,我們可以模擬裝置的行為,或者對裝置下發命令。 ![](https://img2020.cnblogs.com/blog/1439869/202101/1439869-20210107023933859-1090545495.png)