Gunakan MQTT.fx di Windows untuk mensimulasikan perangkat yang terhubung ke Platform IoT Alibaba Cloud dan menguji fitur inti pengiriman pesan.
Prasyarat
-
Produk dan perangkat telah dibuat, serta parameter koneksi MQTT telah diperoleh. Buat produk dan perangkat dan Dapatkan parameter koneksi MQTT.
Tabel berikut mencantumkan sertifikat perangkat dan parameter koneksi MQTT yang digunakan dalam contoh ini. Untuk detail parameter, lihat Koneksi MQTT-TLS.
Parameter
Nilai
ProductKey
a1***DeviceName
device1DeviceSecret
f35***d9eclientId
a1***.device1|securemode=2,signmethod=hmacsha256,timestamp=2524608000000|username
device1&a1***passwd
86761***21dmqttHostUrl
a1***.iot-as-mqtt.cn-shanghai.aliyuncs.comport
1883 -
Properti telah didefinisikan dalam model TSL untuk menguji pengiriman pesan upstream dan downstream melalui topik komunikasi TSL. Definisikan model TSL untuk produk.
Contoh ini mendefinisikan properti berikut:
LightCurrent(arus operasi, float, rentang 0–9) danLightSwitch(sakelar lampu utama, boolean, 1 = nyala, 0 = mati).
Perangkat yang disimulasikan oleh MQTT.fx hanya dapat menggunakan data non-pass-through. Untuk menguji data pass-through, gunakan perangkat fisik atau SDK.
Konfigurasikan koneksi MQTT.fx
-
Unduh dan instal MQTT.fx. Untuk instruksi instalasi dan penggunaan, lihat MQTT.fx.
Topik ini menggunakan mqttfx-5.2.0-windows-x64 sebagai contoh. Antarmuka pengguna Anda mungkin berbeda karena pembaruan versi.
CatatanAnda harus mengajukan permohonan lisensi untuk menggunakan tool MQTT.fx.
-
Buka perangkat lunak MQTT.fx, klik Extras pada bilah menu, lalu pilih Edit Connection Profiles.
-
Pada halaman Edit Connection Profiles, konfigurasikan parameter berikut.
-
Konfigurasikan informasi dasar.
Parameter
Deskripsi
Profile Name
Masukkan nama kustom, seperti iot connection.
Profile Type
Pilih MQTT Broker.
Broker Address
Titik akhir koneksi MQTT. Gunakan mqttHostUrl dari bagian Prasyarat: a1***.iot-as-mqtt.cn-shanghai.aliyuncs.com.
-
a1*** adalah ProductKey produk.
-
cn-shanghai adalah ID wilayah.
Masukkan hanya nama domain. Jangan sertakan nomor port.
Broker Port
Atur ke 1883.
Client ID
Bidang protokol MQTT.
Format:
${ClientId}|securemode=${Mode},signmethod=${SignMethod}|timestamp=${timestamp}|.Masukkan clientId dari bagian Prasyarat: a1***.device1|securemode=2,signmethod=hmacsha256,timestamp=2524608000000|.
Deskripsi parameter:
-
${ClientId}: ID klien untuk perangkat, aplikasi, atau klien web.
PentingHarus kustom dan panjangnya maksimal 64 karakter. Untuk perangkat, gunakan alamat MAC atau nomor seri (SN).
-
${Mode}: Mode keamanan. Atur ke 2 untuk TLS langsung (memerlukan pengaturan SSL/TLS) atau 3 untuk TCP langsung (tidak memerlukan pengaturan SSL/TLS).
-
${SignMethod}: Algoritma signature. Didukung: hmacsha256, hmacmd5, dan hmacsha1.
-
${timestamp}: Waktu saat ini dalam milidetik. Parameter timestamp bersifat opsional.
Secara default, Platform IoT menetapkan ${ClientId} ke
${ProductKey}.${DeviceName}, ${Mode} ke 2, dan ${SignMethod} ke hmacsha256. Ubah nilai-nilai ini sesuai kebutuhan.Penting-
Jangan kelirukan antara bidang Client ID MQTT.fx dengan nilai ${ClientId} perangkat.
-
Jangan menghilangkan tanda vertikal (|) di antara parameter atau di akhir string.
-
Pastikan nilai parameter tidak memiliki spasi di awal atau akhir.
-
Setelah memasukkan informasi Client ID, jangan klik Generate.
General
Pengaturan default digunakan dalam contoh ini. Sesuaikan berdasarkan skenario Anda.
-
-
Klik User Credentials, centang kotak Use Username/Password, lalu atur User Name dan Password.
Parameter
Deskripsi
User Name
Username terdiri dari DeviceName perangkat, tanda ampersand (&), dan ProductKey produk, dalam format
${DeviceName}&${ProductKey}.Masukkan username dari bagian Prasyarat: device1&a1***.
-
device1adalah DeviceName perangkat. -
a1***adalah ProductKey produk.
Password
Password dihasilkan dengan mengenkripsi parameter yang digabungkan menggunakan DeviceSecret sebagai kunci, dengan algoritma signature yang dipilih.
Masukkan passwd dari bagian Prasyarat: 86761***21d.
Penting-
Pada beberapa versi MQTT.fx, password disembunyikan setelah ditempelkan. Jika kursor berpindah ke akhir, penempelan berhasil. Jangan tempelkan lagi.
-
Parameter dan nilainya bersifat case-sensitive.
-
Jika Anda mengubah ${ClientId} atau ${SignMethod} di Client ID, pastikan nilai signature sesuai dengan yang ada di Client ID, lalu hitung ulang password. Hitung password menggunakan skrip Node.js.
-
-
Untuk koneksi TLS langsung (securemode=2), klik SSL/TLS, centang Enable SSL/TLS, lalu atur Protocol ke TLSv1.2.
PentingUntuk koneksi TCP langsung (
securemode=3), Anda tidak perlu mengonfigurasi pengaturan SSL/TLS. Lanjutkan ke langkah berikutnya.
-
-
Klik OK di pojok kanan bawah.
-
Klik Connect.
Indikator hijau menunjukkan koneksi ke Platform IoT berhasil.
Verifikasi status perangkat di Konsol Platform IoT. Di instans Anda, buka , pilih produk, lalu pastikan status perangkat adalah Online.
Bagian berikut menguji pengiriman pesan upstream dan downstream menggunakan topik kustom dan topik komunikasi TSL. Jika hasil Anda berbeda, koneksi gagal — perbaiki pengaturan berdasarkan informasi log.
Gunakan topik kustom untuk komunikasi
Untuk detail topik kustom, lihat Gunakan topik kustom untuk komunikasi. Contoh ini menggunakan topik kustom default yang disediakan oleh Platform IoT:
|
Topik |
Izin |
Deskripsi |
|
|
publish |
Pengiriman pesan upstream: Perangkat mengirim pesan ke Platform IoT melalui topik ini. |
|
|
subscribe |
Pengiriman pesan downstream: Perangkat berlangganan untuk menerima pesan dari Platform IoT. |
Pengiriman pesan upstream
-
Di MQTT.fx, klik Publish. Di kotak teks Publish, masukkan topik dengan izin publish:
/a1***/device1/user/update/error. -
Masukkan isi pesan di editor teks lalu klik Publish.
Pastikan QoS diatur ke QoS 0 dan isi pesan, misalnya,
This is a publish test.. -
Di Konsol Platform IoT, buka halaman Device Log instans Anda dan periksa log device-to-cloud message. Kueri log runtime sisi cloud.
Klik View untuk entri log. Di kotak dialog View Details, verifikasi bahwa Topik adalah
/a[ProductKey]/device1/user/update/errordan isi pesannya adalahThis is a publish test..
Pengiriman pesan downstream
-
Di MQTT.fx, klik Subscribe. Di kotak teks Subscribe, masukkan topik dengan izin Subscribe:
/a1***/device1/user/get. -
Klik Subscribe.
Setelah berlangganan, topik akan muncul dalam daftar.
-
Di Konsol Platform IoT, buka di instans Anda.
-
Di kolom Actions perangkat, klik View untuk membuka halaman device details.
-
Klik tab Topic List. Di kolom Actions untuk topik yang berlangganan, klik Publish Message.
-
Masukkan pesan, misalnya This is a test., lalu klik OK.
-
Kembali ke MQTT.fx untuk melihat pesan yang diterima.
Di tab Subscribe, topik
/a{ProductKey}/device1/user/getmenerima pesanThis is a test(QoS 0, didekode dengan Plain Text Decoder).
Gunakan topik untuk komunikasi TSL
Untuk detail topik komunikasi TSL, lihat Apa itu topik?. Contoh ini menggunakan topik komunikasi TSL berikut:
|
Topik |
Izin |
Deskripsi |
|
|
publish |
Pengiriman pesan upstream: Perangkat menggunakan topik ini untuk melaporkan data properti ke Platform IoT. |
|
|
subscribe |
Pengiriman pesan downstream: Perangkat berlangganan untuk menerima tanggapan setelah melaporkan data properti. |
|
|
subscribe |
Pengiriman pesan downstream: Perangkat berlangganan untuk menerima perintah pengaturan properti dari Platform IoT. |
Laporkan properti perangkat
-
Di MQTT.fx, klik Subscribe. Di kotak teks Subscribe, masukkan topik dengan izin subscribe:
/sys/a1****/device1/thing/event/property/post_reply. -
Di MQTT.fx, klik Publish, lalu di kotak teks Publish, masukkan topik dengan izin publish:
/sys/a1****/device1/thing/event/property/post. -
Masukkan data properti di editor teks lalu klik Publish.
Data properti harus menggunakan format JSON Alink standar. Perangkat melaporkan properti. Contoh ini melaporkan properti LightCurrent dan LightSwitch. Topiknya adalah
/sys/${ProductKey}/device1/thing/event/property/post, dengan muatan JSON contoh berikut:{"method":"thing.event.property.post","id":"162277852","params":{"LightSwitch":1,"LightCurrent":1.4},"version":"1.0.0"}. -
Di Konsol Platform IoT, buka di instans Anda.
-
Klik View di kolom Actions perangkat. Di halaman device details, klik tab TSL Data untuk melihat data yang dilaporkan.
Atur properti perangkat
-
Di MQTT.fx, klik Subscribe. Di kotak teks Subscribe, masukkan topik dengan izin Subscribe:
/sys/a1****/device1/thing/service/property/set. -
Di Konsol Platform IoT, buka di instans Anda.
-
Pilih perangkat. Di tab Property Debugging, atur LightSwitch ke 0.
-
Klik Set untuk mengirim perintah.
-
Di tab Subscribe di MQTT.fx, lihat pesan yang diterima.
/sys/axxxxx/device1/thing/service/property/set {"method":"thing.service.property.set","id":"2016306076","params":{"LightSwitch":0},"version":"1.0.0"}
Lihat log
-
Di Konsol Platform IoT, buka halaman Device Log instans Anda untuk melihat pesan log waktu proses, termasuk waktu, TraceID, dan jenis bisnis. Kueri log runtime sisi cloud.
-
Di MQTT.fx, klik tab Log untuk melihat log operasi dan error.
INFO --- MqttFX ClientModel : messageArrived() with topic: /ext/error/axxx0/device1 INFO --- PublishController : publish INFO --- MqttFX ClientModel : attempt to add PublishTopic INFO --- MqttFX ClientModel : addPublishTopic : /a1xxx/device1/user/get INFO --- MqttFX ClientModel : sucessfully published message test to topic /axxx/device1/user/g INFO --- PublishController : publish INFO --- MqttFX ClientModel : attempt to add PublishTopic INFO --- MqttFX ClientModel : sucessfully published message test to topic /axxx/device1/user/g INFO --- PublishController : publish INFO --- MqttFX ClientModel : attempt to add PublishTopic INFO --- MqttFX ClientModel : sucessfully published message test to topic /axxx/device1/user/g INFO --- BrokerConnectorController : onDisconnect INFO --- ScriptsController : Clear console. INFO --- ScriptsController : Cancel script excution. INFO --- ScriptsController : Clear console. INFO --- ScriptsController : Cancel script excution. INFO --- ScriptsController : Clear console. INFO --- ScriptsController : Cancel script excution. INFO --- BrokerConnectorController : onConnect INFO --- ScriptsController : Clear console. INFO --- MqttFX ClientModel : MqttClient with ID a1xxx0.device1|securemode=2,signmethod=hmacsha... INFO --- MqttFX ClientModel : session present: false INFO --- SubscribeController : onSubscribe INFO --- MqttFX ClientModel : rebuildMessagesList() INFO --- MqttFX ClientModel : attempt to addRecentSubscriptionTopic INFO --- MqttFX ClientModel : addRecentSubscriptionTopic : de.jensd.mqttfx.entities.Topixxx1 INFO --- MqttFX ClientModel : attempt to add PublishTopic INFO --- MqttFX ClientModel : addPublishTopic : /axxx/device1/user/get INFO --- MqttFX ClientModel : sucessfully subscribed to topic /a1xxxSp0/device1/user/get (QoS 0) INFO --- MqttFX ClientModel : messageArrived() with topic: /a1Kucxxx/device1/user/get INFO --- MqttFX ClientModel : messageArrived() added: message #1 to topic '/axxx/device1/user/... INFO --- PublishController : publish INFO --- MqttFX ClientModel : attempt to add PublishTopic INFO --- MqttFX ClientModel : addPublishTopic : /a1xxx/device1/user/update/error INFO --- MqttFX ClientModel : sucessfully published message This is a publish test. to topic /a1Kuc5xxx/device1/user/get
Dokumen terkait
-
Platform IoT mendukung protokol MQTT, yang banyak digunakan dalam IoT untuk lingkungan dengan sumber daya terbatas dan bandwidth rendah. Spesifikasi protokol MQTT.
-
Untuk menghubungkan perangkat ke Platform IoT, lihat panduan koneksi perangkat.
-
Topik berfungsi sebagai perantara untuk penerbitan dan berlangganan pesan MQTT. Untuk konsep dan definisi topik, lihat Apa itu topik?.