Topik ini menjelaskan cara menggunakan proyek open source Paho MQTT untuk C guna menghubungkan perangkat ke IoT Platform dan mengaktifkan pengiriman pesan.
Catatan Penggunaan
Dalam topik ini, izin pengguna biasa digunakan untuk semua operasi. Jika Anda memerlukan izin administrator untuk operasi tertentu, jalankan perintah sudo.
Prasyarat
Sebuah produk dan perangkat telah dibuat di dalam instans pada Konsol IoT Platform. Sertifikat perangkat dan titik akhir MQTT telah diperoleh. Informasi sertifikat mencakup ProductKey, DeviceName, dan DeviceSecret. Untuk informasi lebih lanjut, lihat topik-topik berikut:
Persiapkan lingkungan pengembangan
Dalam contoh ini, Ubuntu 16.04-LTS digunakan sebagai lingkungan pengembangan. Jalankan perintah berikut untuk menyiapkan lingkungan pengembangan:
sudo apt-get update
sudo apt-get install build-essential git sed cmakeUnduh pustaka Paho MQTT untuk C
Jalankan perintah berikut untuk mengkloning pustaka Paho MQTT untuk C:
git clone https://github.com/eclipse/paho.mqtt.c.gitnullDalam topik ini, cabang master digunakan untuk mengembangkan kode sampel.
ID commitadalahf7799da95e347bbc930b201b52a1173ebbad45a7.Jalankan perintah berikut untuk mengompilasi dan menginstal pustaka Paho MQTT untuk C:
mkdir build cmake .. make -j sudo make install cd .. rm -rf build
Hubungkan perangkat ke IoT Platform
Unduh paket demo dari Paket Demo dan dekompresi paket tersebut ke direktori. Tabel berikut menjelaskan file-file yang termasuk dalam direktori tersebut.
File
Deskripsi
CMakeLists.txtFile konfigurasi proyek.
src/samples/MQTTAsync_publish.cFile ini berisi kode logika yang digunakan untuk menghubungkan perangkat ke IoT Platform dan mengaktifkan komunikasi.
src/samples/aiot_mqtt_sign.cFile ini berisi kode yang digunakan untuk mendapatkan parameter koneksi MQTT. Saat Anda menjalankan file
aiot_c_demo.c, fungsi aiotMqttSign() dipanggil untuk mendapatkan nilai parameter username,password, dan clientId.src/samples/CMakeLists.txtFile konfigurasi proyek demo.
Di dalam file
src/samples/MQTTAsync_publish.c, ganti ProductKey, DeviceName, dan DeviceSecret dengan informasi sertifikat perangkat Anda.#define EXAMPLE_PRODUCT_KEY "ProductKey dari produk" #define EXAMPLE_DEVICE_NAME "DeviceName dari perangkat" #define EXAMPLE_DEVICE_SECRET "DeviceSecret dari perangkat"Di dalam file
src/samples/MQTTAsync_publish.c,tcp://iot-0***********l.mqtt.iothub.aliyuncs.com:443menunjukkan titik akhir.nullUntuk informasi lebih lanjut tentang titik akhir instans publik dan instans Enterprise Edition serta format titik akhir, lihat Lihat titik akhir sebuah instans.
#define ADDRESS "tcp://iot-0***********l.mqtt.iothub.aliyuncs.com:443"Gantikan file yang dijelaskan di bagian "Unduh pustaka Paho MQTT untuk C" dari topik ini dengan file yang dijelaskan di Langkah 1 berdasarkan direktori tempat file disimpan.
Jalankan perintah berikut untuk mengompilasi proyek:
mkdir build // Jalankan perintah di direktori root proyek. cd build cmake .. make -jSetelah mengompilasi proyek, jalankan perintah berikut di direktori
builduntuk menjalankan file program:./src/samples/MQTTAsync_publishSetelah menjalankan file program, log lokal berikut akan dihasilkan:
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 Menunggu publikasi Hello World! di topik /sys/a1*****kc/ty********1/thing/event/property/post untuk klien Koneksi berhasil Pesan dengan nilai token 1 dikonfirmasi pengirimannya Pemutusan koneksi berhasil