Topik ini menjelaskan cara menggunakan Link SDK untuk C guna menghubungkan perangkat ke IoT Platform dan mengaktifkan komunikasi.
Prasyarat
IoT Platform telah diaktifkan.
Informasi latar belakang
Anda dapat mengonfigurasi Link SDK untuk C guna menghubungkan perangkat simulasi ke IoT Platform melalui Message Queuing Telemetry Transport (MQTT). Dalam contoh ini, digunakan perangkat bernama LightSwitch yang dapat mengirimkan data ke IoT Platform menggunakan topik kustom.
Untuk informasi lebih lanjut, lihat Apa itu IoT Platform?.
Buat produk dan perangkat
Masuk ke Konsol IoT Platform. Kemudian, klik kartu public instance.
Di panel navigasi sisi kiri, pilih . Di halaman Produk, klik Create Product.
Di halaman Create Product, atur parameter Product Name menjadi NightLightSwitch dan parameter Category menjadi Kategori Kustom. Gunakan nilai default untuk parameter lainnya. Lalu, klik OK.

Di halaman Buat Produk, klik Add di bagian Tambah Perangkat.
Di halaman Devices, klik Add Device.
Di kotak dialog Add Device, masukkan nama perangkat, misalnya LightSwitch. Lalu, klik OK.

Di kotak dialog The devices have been added., klik Copy Device Certificate. Lalu, simpan informasi sertifikat perangkat ke server lokal. Untuk informasi lebih lanjut, lihat Sertifikat Perangkat.
Persiapkan lingkungan pengembangan
Dalam contoh ini, lingkungan pengembangan adalah Ubuntu 16.04, dengan alat pengembangan gcc dan make. Untuk informasi lebih lanjut, lihat Konfigurasi Proyek.
Instal Ubuntu 16.04.
Untuk informasi lebih lanjut, lihat Ubuntu.
Jalankan perintah berikut untuk menginstal gcc dan make:
sudo apt-get -y install gcc make
Konfigurasikan SDK
Unduh paket demo dari File Demo ke lingkungan pengembangan, lalu ekstrak paket tersebut.
IoT Platform memungkinkan Anda mengembangkan fitur kustom untuk Link SDK. Untuk informasi lebih lanjut, lihat Dapatkan Link SDK untuk C.
Buka file
./LinkSDK/demos/mqtt_basic_demo.cdan konfigurasikan parameter terkait.Konfigurasikan parameter yang digunakan untuk menentukan informasi koneksi perangkat guna menghubungkan perangkat ke IoT Platform. Tabel berikut menjelaskan parameter tersebut. Contoh kode:
char *product_key = "a18wP******"; char *device_name = "LightSwitch"; char *device_secret = "uwMTmVAMnGGHaAkqmeDY6cHxxB******"; char *mqtt_host = "a18wP******.iot-as-mqtt.cn-shanghai.aliyuncs.com";Parameter
Contoh
Deskripsi
mqtt_host
a18wP******.iot-as-mqtt.cn-shanghai.aliyuncs.com
Titik akhir tempat Anda ingin menghubungkan perangkat.
Jika Anda menggunakan instans publik versi sebelumnya, titik akhir instans publik tersebut dalam format
${YourProductKey}.iot-as-mqtt.${YourRegionId}.aliyuncs.com.
product_key
a18wP******
Informasi sertifikat perangkat. Sertifikat perangkat disimpan di server lokal setelah perangkat dibuat.
Anda dapat melihat sertifikat perangkat di halaman Device Details di Konsol IoT Platform. Untuk informasi lebih lanjut, lihat Dapatkan informasi verifikasi perangkat.
device_name
LightSwitch
device_secret
uwMTmVAMnGGHaAkqmeDY6cHxxB******
Tentukan topik yang ingin diikuti oleh perangkat untuk menerima pesan dari IoT Platform. Contoh:
/a18wP******/LightSwitch/user/get. Contoh kode:CatatanJika Anda ingin menggunakan fitur ini, hapus komentar pada kode yang diapit oleh kombinasi garis miring dan tanda bintang (/**/).
{ char *sub_topic = "/a18wP******/LightSwitch/user/get"; res = aiot_mqtt_sub(mqtt_handle, sub_topic, NULL, 1, NULL); if (res < 0) { printf("aiot_mqtt_sub gagal, res: -0x%04X\n", -res); return -1; } }Parameter
Contoh
Deskripsi
sub_topic
/a18wP******/LightSwitch/user/get
Topik yang memiliki izin Subscribe. Perangkat dapat menerima pesan dari IoT Platform menggunakan topik ini.
Anda dapat melihat topik kustom di Konsol IoT Platform. Di halaman Product Details, klik tab Topic Categories. Pada tab yang muncul, klik Topic Category. Untuk informasi lebih lanjut, lihat Topik.
Dalam contoh ini, topik kustom default digunakan. Deskripsi parameter:
a1oGs******menunjukkan ProductKey perangkat.LightSwitchmenunjukkan DeviceName perangkat.
Tentukan topik yang dapat digunakan oleh perangkat untuk mengirim pesan. Contoh:
/a18wP******/LightSwitch/user/update. Lalu, tentukan konten untuk pesan yang ingin dikirim. Contoh kode:CatatanJika Anda ingin menggunakan fitur ini, hapus komentar pada kode yang diapit oleh kombinasi garis miring dan tanda bintang (/**/).
{ char *pub_topic = "/a18wP******/LightSwitch/user/update"; char *pub_payload = "{\"id\":\"1\",\"version\":\"1.0\",\"params\":{\"LightSwitch\":0}}"; res = aiot_mqtt_pub(mqtt_handle, pub_topic, (uint8_t *)pub_payload, (uint32_t)strlen(pub_payload), 0); if (res < 0) { printf("aiot_mqtt_sub gagal, res: -0x%04X\n", -res); return -1; } }Parameter
Contoh
Deskripsi
pub_topic
/a18wP******/LightSwitch/user/update
Topik yang memiliki izin Publish. Perangkat dapat menggunakan topik ini untuk mengirim pesan ke IoT Platform.
Anda dapat melihat topik kustom di Konsol IoT Platform. Di halaman Product Details, klik tab Topic Categories. Pada tab yang muncul, klik Topic Category. Untuk informasi lebih lanjut, lihat Topik.
Dalam contoh ini, topik kustom default digunakan. Deskripsi parameter:
a1oGs******menunjukkan ProductKey perangkat.LightSwitchmenunjukkan DeviceName perangkat.
pub_payload
{\"id\":\"1\",\"version\":\"1.0\",\"params\":{\"LightSwitch\":0}}
Pesan yang dikirim ke IoT Platform.
Dalam contoh ini, topik kustom digunakan. Anda dapat menggunakan format pesan kustom.
Di direktori root SDK, jalankan perintah make.
File kode sampel yang dapat dieksekusi
./output/mqtt-basic-demoakan dihasilkan.
Hasil eksekusi
Di direktori root SDK, jalankan perintah berikut untuk menjalankan file yang dapat dieksekusi:
./output/mqtt-basic-demoAnda dapat melihat hasil eksekusi di perangkat.
Data log berikut menunjukkan bahwa perangkat
LightSwitchterhubung ke IoT Platform.[1619768570.433][LK-0313] MQTT user calls aiot_mqtt_connect api, connect [1619768570.433][LK-0317] LightSwitch&a18wP****** [1619768570.433][LK-0318] 933FE333F78F42E2AAD384F629C771277E06D459577942EA1F04ACFDFE****** core_sysdep_network_establish host a18wP******.iot-as-mqtt.cn-shanghai.aliyuncs.com port 8883, type 0 establish tcp connection with server(host='a18wP******.iot-as-mqtt.cn-shanghai.aliyuncs.com', port=[8883]) success to establish tcp, fd=3 local port: 49122 [1619768570.599][LK-1000] establish mbedtls connection with server(host='a18wP******.iot-as-mqtt.cn-shanghai.aliyuncs.com', port=[8883]) [1619768570.600][LK-1000] success to establish mbedtls connection, (cost 45134 bytes in total, max used 47870 bytes) [1619768570.644][LK-0313] MQTT connect success in 212 ms AIOT_MQTTEVT_CONNECTData log berikut menunjukkan bahwa perangkat
LightSwitchberlangganan topik/a18wP******/LightSwitch/user/get.[1620373302.144][LK-0309] sub: /a18wP******/LightSwitch/user/getSetelah Anda berlangganan topik, Anda dapat kembali ke Konsol IoT Platform. Di tab Topics halaman Device Details, temukan topik dan klik Publish Notification di kolom Aksi. Di kotak dialog Publish Notification, masukkan pesan, seperti Ini adalah pesan uji dari Alibaba IoT Platform.. Lalu, kirim pesan dari IoT Platform ke perangkat.

Data log berikut menunjukkan bahwa perangkat
LightSwitchmenggunakan topik/a18wP******/LightSwitch/user/updateuntuk mengirimkan pesan ke IoT Platform.[1619768570.644][LK-0309] pub: /a18wP******/LightSwitch/user/update [LK-030A] > 7B 22 69 64 22 3A 22 31 22 2C 22 76 65 72 73 69 | {"id":"1","versi [LK-030A] > 6F 6E 22 3A 22 31 2E 30 22 2C 22 70 61 72 61 6D | on":"1.0","param [LK-030A] > 73 22 3A 7B 22 4C 69 67 68 74 53 77 69 74 63 68 | s":{"LightSwitch [LK-030A] > 22 3A 30 7D 7D
Anda dapat masuk ke Konsol IoT Platform untuk melihat status perangkat dan log operasi.
Di panel navigasi sisi kiri, pilih . Lalu, temukan perangkat dan lihat status perangkat. Jika nilai di kolom State/Enabled adalah Online, perangkat terhubung ke IoT Platform.
Di panel navigasi sisi kiri, pilih . Di halaman Log Perangkat, pilih produk NightLightSwitch. Anda dapat melihat log yang mencatat kapan perangkat produk tersebut online, berlangganan topik, dan mengirimkan pesan.
Jika terjadi kesalahan selama debugging, perbaiki kesalahan sesuai petunjuk. Untuk informasi lebih lanjut, lihat Kode Kesalahan Perangkat.