Tema ini menjelaskan cara mengonfigurasi SDK perangkat untuk menghubungkan gateway ke IoT Platform.
Prasyarat
Operasi berikut telah selesai:
- Buat Gateway dan Sub-Perangkat: Buat gateway dan sub-perangkat di IoT Platform serta dapatkan informasi sertifikat terkait sub-perangkat tersebut.
- Inisialisasi SDK: Impor paket SDK yang berisi kode contoh.
Konfigurasikan SDK perangkat untuk gateway
Dalam contoh ini, file DeviceTopoManager di direktori java/src/main/java/com/aliyun/iot/api/common/deviceApi berisi kode contoh yang digunakan untuk menghubungkan gateway ke IoT Platform.
- Tentukan informasi sertifikat untuk gateway menggunakan parameter GWproductKey, GWdeviceName, dan GWdeviceSecret.
Anda dapat melihat nilai parameter ini di halaman Device Details pada konsol IoT Platform.
private static String regionId = "cn-shanghai"; private static final String TAG = "TOPO"; // Informasi sertifikat tentang gateway. private static String GWproductKey = "a1Bxp*********"; private static String GWdeviceName = "XMtrv3y*************"; private static String GWdeviceSecret = "19xJNybifnmgc*************"; public static void main(String[] args) { /** * Informasi tentang koneksi MQTT. */ DeviceTopoManager manager = new DeviceTopoManager(); /** * Java HTTP client pada server mendukung TSLv1.2. */ System.setProperty("https.protocols", "TLSv2"); manager.init(); } - Konfigurasikan titik akhir MQTT menggunakan parameter channelHost untuk menetapkan koneksi MQTT.
Untuk informasi lebih lanjut tentang titik akhir MQTT, lihat Kelola Titik Akhir dari Sebuah Instance.
public void init() { LinkKitInitParams params = new LinkKitInitParams(); /** * Tentukan parameter untuk inisialisasi MQTT. */ IoTMqttClientConfig config = new IoTMqttClientConfig(); config.productKey = GWproductKey; config.deviceName = GWdeviceName; config.deviceSecret = GWdeviceSecret; config.channelHost = GWproductKey + ".iot-as-mqtt." + regionId + ".aliyuncs.com:1883"; /** * Tentukan apakah akan menerima pesan offline. * Bidang cleanSession yang sesuai dengan koneksi MQTT. */ config.receiveOfflineMsg = false; params.mqttClientConfig = config; ALog.setLevel(LEVEL_DEBUG); ALog.i(TAG, "informasi koneksi mqtt=" + params); /** * Konfigurasikan inisialisasi dan masukkan informasi sertifikat tentang perangkat. */ DeviceInfo deviceInfo = new DeviceInfo(); deviceInfo.productKey = GWproductKey; deviceInfo.deviceName = GWdeviceName; deviceInfo.deviceSecret = GWdeviceSecret; params.deviceInfo = deviceInfo; /**Tetapkan koneksi.**/ 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); //Periksa hubungan topologi gateway, dan periksa apakah ada hubungan topologi antara gateway dan sub-perangkat yang ditentukan. //Hubungkan sub-perangkat ke IoT Platform jika hubungan topologi ada. getGWDeviceTopo(); //Daftarkan sub-perangkat secara dinamis untuk mendapatkan DeviceSecret dari sub-perangkat.Jika gateway sudah mendapatkan sertifikat sub-perangkat, lewati langkah ini. //Saat Anda membuat sub-perangkat di IoT Platform, atur parameter DeviceName ke nomor seri atau alamat MAC sub-perangkat. gatewaySubDevicRegister(); //Informasi tentang sub-perangkat dalam hubungan topologi. gatewayAddSubDevice(); } }); }
Uji koneksi
Setelah Anda mengonfigurasi informasi gateway di SDK perangkat, Anda dapat menguji koneksi antara gateway dan IoT Platform.
- Jalankan file DeviceTopoManager.java.
- Masuk ke konsol IoT Platform, klik instance yang ingin Anda kelola, lalu pilih di panel navigasi di sebelah kiri.
- Di halaman Perangkat, temukan gateway yang terhubung ke IoT Platform dan periksa statusnya. Jika status gateway adalah Online, gateway berhasil terhubung ke IoT Platform.