本文介紹配置裝置端SDK實現網關裝置串連物聯網平台。
前提條件
您已完成以下操作:
配置網關裝置端SDK
本樣本Demo中,java/src/main/java/com/aliyun/iot/api/common/deviceApi目錄下的DeviceTopoManager檔案中包含網關接入物聯網平台的程式碼範例。
- 設定網關裝置的裝置認證資訊:GWproductKey、GWdeviceName和GWdeviceSecret。
您可在物聯網平台控制台的裝置詳情頁面查看。
private static String regionId = "cn-shanghai"; private static final String TAG = "TOPO"; //網關裝置 private static String GWproductKey = "a1Bxp*********"; private static String GWdeviceName = "XMtrv3y*************"; private static String GWdeviceSecret = "19xJNybifnmgc*************"; public static void main(String[] args) { /** * mqtt串連資訊 */ DeviceTopoManager manager = new DeviceTopoManager(); /** * 伺服器端的java http 用戶端使用TSLv1.2。 */ System.setProperty("https.protocols", "TLSv2"); manager.init(); }
- 配置MQTT接入資訊channelHost,建立串連。
MQTT裝置接入資訊的查看方法,請參見查看和配置執行個體終端節點資訊(Endpoint)。
public void init() { LinkKitInitParams params = new LinkKitInitParams(); /** * 設定 Mqtt 初始化參數 */ IoTMqttClientConfig config = new IoTMqttClientConfig(); config.productKey = GWproductKey; config.deviceName = GWdeviceName; config.deviceSecret = GWdeviceSecret; config.channelHost = GWproductKey + ".iot-as-mqtt." + regionId + ".aliyuncs.com:1883"; /** * 是否接受離線訊息 * 對應 mqtt 的 cleanSession 欄位 */ config.receiveOfflineMsg = false; params.mqttClientConfig = config; ALog.setLevel(LEVEL_DEBUG); ALog.i(TAG, "mqtt connetcion info=" + params); /** * 設定初始化,傳入裝置認證資訊 */ DeviceInfo deviceInfo = new DeviceInfo(); deviceInfo.productKey = GWproductKey; deviceInfo.deviceName = GWdeviceName; deviceInfo.deviceSecret = GWdeviceSecret; params.deviceInfo = deviceInfo; /**建立連結**/ LinkKit.getInstance().init(params, new ILinkKitConnectListener() { public void onError(AError aError) { ALog.e(TAG, "Init Error error=" + aError); } public void onInitDone(InitResult initResult) { ALog.i(TAG, "onInitDone result=" + initResult); //擷取網關下topo關係,查詢網關與自裝置是否已經存在topo關係 //如果已經存在,則直接上線子裝置 getGWDeviceTopo(); //子裝置動態註冊擷取裝置deviceSecret,如果裝置已知裝置認證則忽略此步,直接添加topo關係 //預註冊裝置時,可以使用裝置的MAC地址或SN序號等作為DeviceName gatewaySubDevicRegister(); //待添加拓撲關係,子裝置資訊 gatewayAddSubDevice(); } }); }
測試
在裝置端SDK中,配置完網關裝置資訊後,測試SDK是否能串連物聯網平台。
- 運行程式檔案DeviceTopoManager.java。
- 在物聯網平台控制台對應執行個體下的左側導覽列中,選擇 。
- 在裝置列表中,找到網關裝置,查看其狀態。如果狀態顯示為線上,說明網關裝置已串連物聯網平台。