Tutorial: Menggunakan perangkat simulasi untuk menguji konektivitas dengan IoT hub Anda
Dalam tutorial ini, Anda menggunakan alat portal Azure IoT Hub dan perintah Azure CLI untuk menguji konektivitas perangkat. Tutorial ini juga menggunakan simulator perangkat sederhana yang Anda jalankan di komputer desktop Anda.
Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.
Dalam tutorial ini, Anda akan mempelajari cara:
- Memeriksa autentikasi perangkat Anda
- Memeriksa konektivitas perangkat-ke-cloud
- Memeriksa konektivitas cloud-ke-perangkat
- Memeriksa sinkronisasi kembar perangkat
Prasyarat
Tutorial ini menggunakan Azure CLI untuk membuat sumber daya cloud. Ada dua cara untuk menjalankan perintah CLI:
Gunakan lingkungan Bash di Azure Cloud Shell. Untuk informasi selengkapnya, lihat Mulai Cepat Azure Cloud Shell - Bash.
Jika Anda lebih suka menjalankan perintah referensi CLI secara lokal, instal Azure CLI. Jika Anda menjalankan Windows atau macOS, pertimbangkan untuk menjalankan Azure CLI dalam kontainer Docker. Untuk informasi lebih lanjut, lihat Cara menjalankan Azure CLI di kontainer Docker.
- Masuk ke Azure CLI dengan perintah az login.
- Saat diminta, pasang ekstensi saat pertama kali menggunakan Azure CLI. Untuk informasi selengkapnya tentang ekstensi, lihat Menggunakan ekstensi dengan Azure CLI.
- Jalankan versi az untuk menemukan versi dan pustaka dependen yang diinstal. Untuk meningkatkan ke versi terbaru, jalankan peningkatan az.
Catatan
Artikel ini menggunakan versi terbaru ekstensi Azure IoT, yang disebut
azure-iot
. Versi warisan disebutazure-cli-iot-ext
. Anda seharusnya hanya memiliki satu versi yang terinstal pada satu waktu. Anda bisa menggunakan perintahaz extension list
untuk memvalidasi ekstensi yang saat ini terinstal.Gunakan
az extension remove --name azure-cli-iot-ext
untuk menghapus versi lama ekstensi.Gunakan
az extension add --name azure-iot
untuk menambahkan versi baru ekstensi.Untuk melihat ekstensi apa yang telah Anda instal, gunakan
az extension list
.Aplikasi sampel yang Anda jalankan dalam tutorial ini menggunakan Node.js. Anda perlu Node.js v10.x.x atau lebih baru di komputer pengembangan Anda.
Anda dapat mengunduh Node.js untuk beberapa platform dari nodejs.org.
Anda dapat memverifikasi versi Node.js saat ini di komputer pengembangan Anda menggunakan perintah berikut:
node --version
Kloning atau unduh sampel proyek Node.js dari sampel Azure IoT untuk Node.js.
Pastikan port 8883 terbuka di firewall Anda. Sampel perangkat dalam tutorial ini menggunakan protokol MQTT, yang berkomunikasi melalui port 8883. Port ini dapat diblokir di beberapa lingkungan jaringan perusahaan dan pendidikan. Untuk informasi selengkapnya dan cara mengatasi masalah ini, lihat Menyambungkan ke Azure IoT Hub (MQTT).
Membuat IoT Hub
Di bagian ini, Anda menggunakan Azure CLI untuk membuat hub IoT dan grup sumber daya. Grup sumber daya Azure adalah kontainer logis tempat sumber daya Azure disebarkan dan dikelola. Hub IoT bertindak sebagai hub pesan pusat untuk komunikasi dua arah antara aplikasi IoT Anda dan perangkat.
Jika sudah memiliki IoT hub di langganan Azure, Anda dapat melewati bagian ini.
Untuk membuat hub IoT dan grup sumber daya:
Luncurkan aplikasi CLI Anda. Untuk menjalankan perintah CLI di sisa artikel ini, salin sintaks perintah, tempelkan ke aplikasi CLI Anda, edit nilai variabel, dan tekan
Enter
.- Jika Anda menggunakan Cloud Shell, pilih tombol Cobalah pada perintah CLI untuk meluncurkan Cloud Shell di jendela browser terpisah. Atau Anda dapat membuka Cloud Shell di tab browser terpisah.
- Jika Anda menggunakan Azure CLI secara lokal, buka aplikasi konsol CLI Anda dan masuk ke Azure CLI.
Jalankan az extension add untuk memasang atau meningkatkan ekstensi azure-iot ke versi saat ini.
az extension add --upgrade --name azure-iot
Di aplikasi CLI Anda, jalankan perintah az group create untuk membuat grup sumber daya. Perintah berikut membuat grup sumber daya bernama MyResourceGroup di lokasi eastus.
Catatan
Secara opsional, Anda dapat mengatur lokasi yang berbeda. Untuk melihat lokasi yang tersedia, jalankan
az account list-locations
. Mulai cepat ini menggunakan eastus seperti yang ditunjukkan dalam perintah contoh.az group create --name MyResourceGroup --location eastus
Jalankan perintah az iot hub create untuk membuat hub IoT. Mungkin perlu waktu beberapa menit untuk membuat hub IoT.
YourIotHubName. Ganti tempat penampung ini dan kurung kurawal di sekitarnya dalam perintah berikut, menggunakan nama yang Anda pilih untuk hub IoT Anda. Nama hub IoT harus unik secara global di Azure. Gunakan nama hub IoT Anda di sisa mulai cepat ini di mana pun Anda melihat tempat penampung.
az iot hub create --resource-group MyResourceGroup --name {your_iot_hub_name}
Memeriksa autentikasi perangkat
Perangkat harus mengautentikasi dengan hub Anda sebelum dapat bertukar data dengan hub. Anda dapat menggunakan alat Perangkat IoT di bagian Pengelolaan Perangkat portal untuk mengelola perangkat dan memeriksa kunci autentikasi yang perangkat tersebut gunakan. Di bagian tutorial ini, Anda menambahkan perangkat uji baru, mengambil kuncinya, dan memeriksa bahwa perangkat pengujian dapat terhubung ke hub. Kemudian Anda mengatur ulang kunci autentikasi untuk mengamati apa yang terjadi ketika perangkat mencoba menggunakan kunci yang sudah ketinggalan zaman.
Mendaftarkan perangkat
Perangkat harus terdaftar dengan hub IoT Anda sebelum dapat terhubung. Dalam bagian ini, Anda menggunakan Azure CLI untuk membuat identitas perangkat.
Jika sudah memiliki perangkat yang terdaftar di IoT hub, Anda dapat melewati bagian ini.
Untuk membuat identitas perangkat:
Jalankan perintah az iot hub device-identity create di shell CLI Anda. Perintah ini akan membuat identitas perangkat.
your_iot_hub_name. Ganti tempat penampung di bawah ini dengan nama yang Anda pilih untuk hub IoT Anda.
myDevice. Anda dapat menggunakan nama ini untuk ID perangkat di seluruh artikel ini, atau memberikan nama perangkat yang berbeda.
az iot hub device-identity create --device-id myDevice --hub-name {your_iot_hub_name}
Jalankan perintah az iot hub device-identity connection-string show.
az iot hub device-identity connection-string show --device-id myDevice --hub-name {your_iot_hub_name}
Output string koneksi menggunakan format berikut:
HostName=<your IoT Hub name>.azure-devices.net;DeviceId=<your device id>;SharedAccessKey=<some value>
Simpan string koneksi di lokasi yang aman.
Catatan
Biarkan aplikasi CLI Anda tetap terbuka. Anda akan menggunakannya di langkah-langkah selanjutnya.
Mensimulasikan perangkat pengujian
Untuk mensimulasikan perangkat yang mengirim telemetri ke hub IoT Anda, jalankan aplikasi perangkat simulasi Node.js yang Anda unduh sebelumnya.
Di jendela terminal pada komputer pengembangan Anda, navigasikan ke folder akar sampel Node.js proyek yang Anda unduh. Kemudian buka folder iot-hub\Tutorial\ConnectivityTests.
Di jendela terminal, jalankan perintah berikut untuk menginstal pustaka yang diperlukan serta jalankan aplikasi perangkat simulasi. Gunakan perangkat string koneksi Anda mencatat kapan Anda mendaftarkan perangkat.
npm install node SimulatedDevice-1.js "{your_device_connection_string}"
Jendela terminal menampilkan pesan sukses setelah tersambung ke hub Anda:
Anda kini berhasil mengautentikasi dari perangkat menggunakan kunci perangkat yang dihasilkan oleh IoT hub Anda.
Reset kunci
Di bagian ini, Anda mereset kunci perangkat dan mengamati kesalahan saat perangkat simulasi mencoba menyambungkan.
Untuk mengatur ulang kunci perangkat utama untuk perangkat Anda, jalankan perintah az iot hub device-identity update :
# Generate a new Base64 encoded key using the current date read key < <(date +%s | sha256sum | base64 | head -c 32) # Reset the primary device key for test device az iot hub device-identity update --device-id {your_device_id} --set authentication.symmetricKey.primaryKey=$key --hub-name {your_iot_hub_name}
Di jendela terminal pada komputer pengembangan Anda, jalankan aplikasi perangkat simulasi lagi:
npm install node SimulatedDevice-1.js "{your_device_connection_string}"
Kali ini, Anda akan melihat kesalahan autentikasi ketika aplikasi mencoba untuk menyambungkan:
Membuat token tanda tangan akses bersama (SAS)
Jika perangkat Anda menggunakan salah satu SDK perangkat IoT Hub, kode pustaka SDK membuat token SAS yang digunakan untuk mengautentikasi dengan hub. Token SAS dibuat dari nama hub Anda, nama perangkat Anda, dan kunci perangkat.
Dalam beberapa skenario, seperti di gateway protokol cloud atau sebagai bagian dari skema autentikasi kustom, Anda mungkin perlu membuat token SAS sendiri. Untuk memecahkan masalah pada kode generasi SAS Anda, sebaiknya buat token SAS yang dikenal baik guna digunakan selama pengujian.
Catatan
Sampel SimulatedDevice-2.js menyertakan contoh pembuatan token SAS dengan dan tanpa SDK.
Jalankan perintah az iot hub generate-sas-token untuk menghasilkan token SAS yang diketahui baik menggunakan CLI:
az iot hub generate-sas-token --device-id {your_device_id} --hub-name {your_iot_hub_name}
Salin teks lengkap token SAS yang dihasilkan. Token SAS terlihat seperti contoh berikut:
SharedAccessSignature sr=tutorials-iot-hub.azure-devices.net%2Fdevices%2FmyDevice&sig=xxxxxx&se=111111
Di jendela terminal pada komputer pengembangan Anda, buka folder akar dari proyek Node.js sampel yang Anda unduh. Kemudian buka folder iot-hub\Tutorial\ConnectivityTests.
Di jendela terminal, jalankan perintah berikut untuk menginstal pustaka yang diperlukan serta jalankan aplikasi perangkat simulasi:
npm install node SimulatedDevice-2.js "{Your SAS token}"
Jendela terminal menampilkan pesan sukses setelah tersambung ke hub Anda menggunakan token SAS:
Anda kini telah berhasil mengautentikasi dari perangkat menggunakan token SAS uji yang dibuat oleh perintah CLI. File SimulatedDevice-2.js menyertakan kode sampel yang menunjukkan kepada Anda cara membuat token SAS dalam kode.
Protokol
Perangkat dapat menggunakan salah satu protokol berikut untuk menyambungkan ke IoT hub Anda:
Protokol | Port keluar |
---|---|
MQTT | 8883 |
MQTT melalui Websocket | 443 |
AMQP | 5671 |
AMQP melalui WebSocket | 443 |
HTTPS | 443 |
Jika port keluar diblokir oleh firewall, perangkat tidak dapat tersambung:
Memeriksa konektivitas perangkat-ke-cloud
Setelah perangkat tersambung, perangkat dapat mulai mengirim telemetri ke hub IoT Anda. Bagian ini menunjukkan cara Anda dapat memverifikasi bahwa telemetri yang dikirim oleh perangkat mencapai hub Anda.
Mengirim pesan perangkat ke cloud
Karena kami mengatur ulang string koneksi untuk perangkat Anda di bagian sebelumnya, gunakan perintah az iot hub device-identity connection-string show untuk mengambil string koneksi yang diperbarui:
az iot hub device-identity connection-string show --device-id {your_device_id} --output table --hub-name {your_iot_hub_name}
Untuk menjalankan perangkat simulasi yang mengirim pesan, buka folder iot-hub\Tutorials\ConnectivityTests dalam kode yang Anda unduh.
Di jendela terminal, jalankan perintah berikut untuk menginstal pustaka yang diperlukan serta jalankan aplikasi perangkat simulasi:
npm install node SimulatedDevice-3.js "{your_device_connection_string}"
Jendela terminal menampilkan informasi saat mencoba mengirimkan telemetri ke hub Anda:
Memantau pesan masuk
Anda dapat menggunakan Metrik di portal guna memverifikasi bahwa pesan telemetri mencapai IoT hub Anda.
Di portal Azure, pilih hub IoT Anda di menu drop-down Sumber Daya.
Pilih Metrik dari bagian Pemantauan pada menu navigasi.
Pilih Pesan telemetri yang dikirim sebagai metrik, dan atur rentang waktu ke Jam lalu. Bagan menunjukkan jumlah agregat pesan yang dikirim oleh perangkat simulasi:
Dibutuhkan beberapa menit agar metrik tersedia setelah Anda memulai perangkat simulasi.
Memeriksa konektivitas cloud-ke-perangkat
Bagian ini menunjukkan cara Anda dapat melakukan pengujian panggilan metode langsung ke perangkat untuk memeriksa konektivitas cloud-ke-perangkat. Anda menjalankan perangkat simulasi pada komputer pengembangan untuk mendengarkan panggilan metode langsung dari hub Anda.
Di jendela terminal, gunakan perintah berikut untuk menjalankan aplikasi perangkat simulasi:
node SimulatedDevice-3.js "{your_device_connection_string}"
Di jendela terpisah, gunakan perintah az iot hub invoke-device-method untuk memanggil metode langsung pada perangkat:
az iot hub invoke-device-method --device-id {your_device_id} --method-name TestMethod --timeout 10 --method-payload '{"key":"value"}' --hub-name {your_iot_hub_name}
Perangkat simulasi mencetak pesan ke konsol saat menerima panggilan metode langsung:
Ketika perangkat simulasi berhasil menerima panggilan metode langsung, perangkat tersebut akan mengirimkan konfirmasi kembali ke hub:
Memeriksa sinkronisasi kembar
Perangkat menggunakan sinkronisasi kembar untuk menyinkronkan status antara perangkat dan hub. Di bagian ini, Anda menggunakan perintah CLI untuk mengirimkan properti yang diinginkan ke perangkat dan membaca properti yang dilaporkan yang dikirim oleh perangkat.
Perangkat simulasi yang Anda gunakan di bagian ini mengirimkan properti yang dilaporkan ke hub setiap kali perangkat aktif, dan mencetak properti yang diinginkan ke konsol setiap kali menerimanya.
Di jendela terminal, gunakan perintah berikut untuk menjalankan aplikasi perangkat simulasi:
node SimulatedDevice-3.js "{your_device_connection_string}"
Di jendela terpisah, jalankan perintah az iot hub device-twin show untuk memverifikasi bahwa hub menerima properti yang dilaporkan dari perangkat:
az iot hub device-twin show --device-id {your_device_id} --hub-name {your_iot_hub_name}
Dalam output dari perintah, Anda dapat melihat properti devicelaststarted di bagian properti yang dilaporkan. Properti ini menunjukkan tanggal dan waktu Anda terakhir kali memulai perangkat simulasi.
Untuk memverifikasi bahwa hub dapat mengirim nilai properti yang diinginkan ke perangkat, gunakan perintah az iot hub device-twin update :
az iot hub device-twin update --set properties.desired='{"mydesiredproperty":"propertyvalue"}' --device-id {your_device_id} --hub-name {your_iot_hub_name}
Perangkat simulasi mencetak pesan saat menerima pembaruan properti yang diinginkan dari hub:
Selain menerima perubahan properti yang diinginkan saat dibuat, perangkat simulasi secara otomatis memeriksa properti yang diinginkan saat perangkat aktif.
Membersihkan sumber daya
Jika Anda tidak memerlukan IoT hub lagi, hapus lot hub dan grup sumber daya di portal. Untuk melakukannya, pilih grup sumber daya yang berisi hub IoT Anda dan pilih Hapus.
Langkah berikutnya
Dalam tutorial ini, Anda telah melihat cara memeriksa kunci perangkat, konektivitas perangkat ke cloud, konektivitas cloud-ke-perangkat, dan sinkronisasi kembar perangkat. Untuk mempelajari lebih lanjut cara memantau IoT hub Anda, kunjungi artikel terkait cara memantau IoT Hub.