Gunakan library open source Paho MQTT C (untuk sistem non-embedded) untuk menghubungkan perangkat ke Alibaba Cloud IoT Platform dan bertukar pesan.
Catatan penting
Langkah-langkah dalam topik ini dilakukan sebagai pengguna biasa. Jika suatu operasi memerlukan izin administratif, tambahkan awalan perintah dengan sudo.
Prasyarat
Sebuah produk dan perangkat telah dibuat dalam sebuah instans di IoT Platform console. Sertifikat perangkat dan MQTT endpoint telah diperoleh. Informasi sertifikat mencakup ProductKey, DeviceName, dan DeviceSecret. Untuk informasi selengkapnya, lihat topik berikut:
Siapkan lingkungan pengembangan
Contoh ini menggunakan Ubuntu 16.04 LTS sebagai lingkungan pengembangan. Jalankan perintah berikut untuk menginstal dependensi yang diperlukan.
sudo apt-get update
sudo apt-get install build-essential git sed cmake
Unduh library Paho MQTT C
-
Jalankan perintah berikut untuk mengkloning library Paho MQTT C.
git clone https://github.com/eclipse/paho.mqtt.c.gitCatatanDemo ini dibuat menggunakan branch master. ID
commitadalahf7799da95e347bbc930b201b52a1173ebbad45a7. -
Jalankan perintah berikut untuk mengompilasi dan menginstal library Paho.
mkdir build cmake .. make -j sudo make install cd .. rm -rf build
Hubungkan ke IoT Platform
-
Unduh paket demo. Paket yang diekstraksi berisi file-file berikut:
Nama file
Deskripsi
CMakeLists.txtFile konfigurasi utama untuk proyek.
src/samples/MQTTAsync_publish.cBerisi logika untuk menghubungkan perangkat ke IoT Platform dan bertukar pesan.
src/samples/aiot_mqtt_sign.cMenghasilkan parameter koneksi MQTT. Saat
aiot_c_demo.cdijalankan, fungsiaiotMqttSign()yang didefinisikan dalam file ini dipanggil untuk menghitung parameter username, password, dan clientId.src/samples/CMakeLists.txtFile konfigurasi untuk proyek demo.
-
Pada file
src/samples/MQTTAsync_publish.c, perbarui informasi perangkat (ProductKey, DeviceName, dan DeviceSecret) dengan informasi sertifikat perangkat Anda.#define EXAMPLE_PRODUCT_KEY "Your_ProductKey" #define EXAMPLE_DEVICE_NAME "Your_DeviceName" #define EXAMPLE_DEVICE_SECRET "Your_DeviceSecret" -
Pada file
src/samples/MQTTAsync_publish.c,tcp://iot-0***********l.mqtt.iothub.aliyuncs.com:443adalah nama domain akses.CatatanUntuk informasi selengkapnya mengenai format endpoint untuk instans publik dan Enterprise, lihat View instance endpoint information.
#define ADDRESS "tcp://iot-0***********l.mqtt.iothub.aliyuncs.com:443" -
Timpa file-file asli di direktori Paho MQTT C library dengan file-file yang sesuai dari paket demo yang telah Anda unduh.
-
Jalankan perintah berikut untuk mengompilasi proyek.
mkdir build // Jalankan perintah ini di direktori root proyek. cd build cmake .. make -j -
Setelah kompilasi selesai, buka direktori
builddan jalankan perintah berikut untuk menjalankan program../src/samples/MQTTAsync_publishJika program berjalan berhasil, output log berikut menunjukkan bahwa perangkat telah terhubung ke IoT Platform.
clientid: ty***1&a1****kc|timestamp=2524608000000,_v=paho-c-standard-1.0.0,securemode=3,signmethod=hmacsha256,lan=C| username: ty***1&a1****kc password: 1BB**************************************************3621 Waiting for publication of Hello World! on topic /sys/a1*****kc/ty********1/thing/event/property/post for client Successful connection Message with token value 1 delivery confirmed Successful disconnection