Cara menyambungkan perangkat melalui gateway transparan IoT Edge
Perangkat IoT Edge dapat bertindak sebagai gateway yang menyediakan koneksi antara perangkat lain di jaringan lokal dan aplikasi IoT Central Anda. Anda menggunakan gateway saat perangkat tidak dapat mengakses aplikasi IoT Central Anda secara langsung.
IoT Edge mendukung pola gateway transparan dan terjemahan. Artikel ini merangkum cara mengimplementasikan pola gateway transparan. Dalam pola ini, gateway meneruskan pesan dari perangkat downstream ke titik akhir IoT Hub di aplikasi IoT Central Anda. Gateway tidak memanipulasi pesan saat diteruskan. Di IoT Central, setiap perangkat hilir muncul sebagai turunan ke perangkat gateway:
Untuk kesederhanaan, artikel ini menggunakan komputer virtual untuk menghosting perangkat hilir dan gateway. Dalam skenario nyata, perangkat downstream dan gateway akan berjalan pada perangkat fisik di jaringan lokal Anda.
Artikel ini memperlihatkan cara menerapkan skenario dengan menggunakan runtime IoT Edge 1.4.
Prasyarat
Untuk menyelesaikan langkah-langkah dalam artikel ini, Anda perlu:
Langganan Azure aktif. Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.
Aplikasi IoT Central yang dibuat dari templat aplikasi Kustom. Untuk mempelajari lebih lanjut, lihat Membuat aplikasi IoT Central.
Untuk mengikuti langkah-langkah dalam artikel ini, unduh file berikut ke komputer Anda:
- Model perangkat termostat (thermostat-1.json) - file ini adalah model perangkat untuk perangkat hilir.
- Manifes gateway transparan (EdgeTransparentGatewayManifest.json) - file ini adalah manifes penyebaran IoT Edge untuk perangkat gateway.
Impor manifes penyebaran
Setiap perangkat IoT Edge memerlukan manifes penyebaran untuk mengonfigurasi runtime IoT Edge. Untuk mengimpor manifes penyebaran untuk gateway transparan IoT Edge:
Navigasikan ke manifes Edge.
Pilih + Baru, masukkan nama untuk manifes penyebaran seperti Gateway transparan lalu unggah file EdgeTransparentGatewayManifest.json yang Anda unduh sebelumnya.
Pilih Buat untuk menyimpan manifes penyebaran di aplikasi Anda.
Menambahkan templat perangkat
Baik perangkat hilir maupun perangkat gateway dapat menggunakan templat perangkat di IoT Central. IoT Central memungkinkan Anda memodelkan hubungan antara perangkat downstream dan gateway sehingga Anda dapat melihat dan mengelolanya setelah tersambung. Templat perangkat tidak diperlukan untuk melampirkan perangkat hilir ke gateway.
Untuk membuat templat perangkat untuk perangkat downstream, buat templat perangkat standar yang memodelkan kemampuan perangkat Anda. Contoh yang ditunjukkan dalam artikel ini menggunakan model perangkat termostat yang Anda unduh.
Guna membuat templat perangkat untuk perangkat downstream:
Buat templat perangkat dan pilih perangkat IoT sebagai jenis templat.
Pada halaman Kustomisasi wizard, masukkan nama seperti Termostat untuk templat perangkat.
Setelah Anda membuat templat perangkat, pilih Impor model. Pilih model seperti daftar file thermostat-1.js yang Anda unduh sebelumnya.
Untuk menghasilkan beberapa tampilan default untuk termostat, pilih tampilan lalu pilih Hasilkan tampilan default.
Menerbitkan templat perangkat.
Untuk membuat templat perangkat untuk perangkat gateway transparan IoT Edge:
Buat templat perangkat dan pilih Azure IoT Edge sebagai jenis templat.
Pada halaman Kustomisasi wizard, masukkan nama seperti Gateway Azure Stack Edge untuk templat perangkat.
Pada halaman Kustomisasi panduan, centang Ini adalah perangkat gateway.
Pada halaman Tinjau, pilih Buat.
Pada halaman Buat model , pilih Model kustom.
Tambahkan entri dalam Hubungan ke templat perangkat downstream.
Cuplikan layar berikut menunjukkan halaman Hubungan untuk perangkat gateway IoT Edge dengan perangkat hilir yang menggunakan templat perangkat Termostat:
Cuplikan layar sebelumnya memperlihatkan templat perangkat gateway IoT Edge tanpa modul yang ditentukan. Gateway transparan tidak memerlukan modul apa pun karena runtime IoT Edge meneruskan pesan dari perangkat hilir langsung ke IoT Central. Jika gateway itu sendiri perlu mengirim telemetri, menyinkronkan properti, atau menangani perintah, Anda dapat menentukan kemampuan ini di komponen root atau di modul.
Tambahkan semua properti dan tampilan cloud yang diperlukan sebelum Anda menerbitkan gateway dan templat perangkat downstream.
Menambahkan perangkat
Saat Anda menambahkan perangkat ke aplikasi IoT Central, Anda dapat menentukan hubungan antara perangkat downstream dan gateway transparan.
Untuk menambahkan perangkat:
Navigasi ke halaman perangkat di aplikasi IoT Central Anda.
Tambahkan instans perangkat IoT Edge gateway transparan. Saat Anda menambahkan perangkat, pastikan Anda memilih manifes penyebaran gateway Transparan. Dalam artikel ini, ID perangkat gateway adalah
edgegateway
.Tambahkan satu atau beberapa instans perangkat downstream. Dalam artikel ini, perangkat downstream adalah termostat dengan
thermostat1
danthermostat2
ID.Di daftar perangkat, pilih setiap perangkat downstream dan pilih Lampirkan ke gateway.
Cuplikan layar berikut ini memperlihatkan bahwa Anda dapat menampilkan daftar perangkat yang dilampirkan ke gateway di halaman Perangkat Downstream:
Di gateway transparan, perangkat downstream tersambung ke gateway itu sendiri, bukan ke modul kustom yang dihosting oleh gateway.
Sebelum Anda menyebarkan perangkat, Anda memerlukan:
- Lingkup ID aplikasi IoT Central Anda.
- Nilai ID perangkat untuk perangkat gateway dan downstream.
- Nilai Kunci primer untuk perangkat gateway dan downstream.
Untuk menemukan nilai ini, navigasi ke setiap perangkat di daftar perangkat dan pilih Sambungkan. Catat nilai-nilai ini sebelum Anda melanjutkan.
Tip
Anda dapat menghubungkan perangkat dan membangun hubungan tanpa terlebih dahulu membuat templat perangkat untuk perangkat. Anda dapat melampirkan perangkat hilir yang tidak ditetapkan ke perangkat gateway yang tidak ditetapkan.
Menyebarkan gateway dan perangkat
Untuk memungkinkan Anda mencoba skenario ini, langkah-langkah berikut menunjukkan kepada Anda cara menyebarkan gateway dan perangkat hilir ke komputer virtual Azure.
Tip
Untuk mempelajari cara menyebarkan runtime IoT Edge ke perangkat fisik, lihat Membuat perangkat IoT Edge di dokumentasi IoT Edge.
Untuk mencoba skenario gateway transparan, pilih tombol berikut untuk menyebarkan dua komputer virtual Linux. Satu komputer virtual memiliki runtime IoT Edge 1.4 yang terinstal dan merupakan gateway IoT Edge transparan. Komputer virtual lainnya adalah perangkat hilir tempat Anda menjalankan kode untuk mengirim telemetri termostat yang disimulasikan:
Ketika dua komputer virtual disebarkan dan dijalankan, verifikasi bahwa perangkat gateway IoT Edge berjalan pada komputer virtual edgegateway
:
Buka halaman Perangkat di aplikasi IoT Central Anda. Jika perangkat gateway IoT Edge tersambung ke IoT Central, statusnya adalah Diprovisikan.
Buka perangkat gateway IoT Edge dan verifikasi status modul pada halaman Modul. Jika runtime IoT Edge berhasil dimulai, status modul $edgeAgent dan $edgeHub adalah Berjalan:
Tip
Anda mungkin harus menunggu beberapa menit saat komputer virtual dimulai dan perangkat diprovisikan di aplikasi IoT Central Anda.
Mengonfigurasi gateway
Agar perangkat IoT Edge Anda berfungsi sebagai gateway transparan, perangkat tersebut memerlukan beberapa sertifikat untuk membuktikan identitasnya ke perangkat downstream mana pun. Artikel ini menggunakan sertifikat demo. Di lingkungan produksi, gunakan sertifikat dari otoritas sertifikat Anda.
Untuk menghasilkan sertifikat demo dan memasangnya di perangkat gateway Anda:
Gunakan SSH untuk menyambungkan dan masuk di komputer virtual perangkat gateway Anda.
Jalankan perintah berikut untuk mengklon repositori IoT Edge dan membuat sertifikat demo Anda:
# Clone the repo cd ~ git clone https://github.com/Azure/iotedge.git # Generate the demo certificates mkdir certs cd certs cp ~/iotedge/tools/CACertificates/*.cnf . cp ~/iotedge/tools/CACertificates/certGen.sh . ./certGen.sh create_root_and_intermediate ./certGen.sh create_edge_device_ca_certificate "mycacert"
Setelah Anda menjalankan perintah sebelumnya, file berikut ini siap digunakan di langkah berikutnya:
- ~/certs/certs/azure-iot-test-only.root.ca.cert.pem - Sertifikat CA akar yang digunakan untuk membuat semua sertifikat demo lainnya untuk menguji skenario IoT Edge.
- ~/certs/certs/iot-edge-device-mycacert-full-chain.cert.pem - Sertifikat CA perangkat yang direferensikan dari file konfigurasi IoT Edge. Dalam skenario gateway, sertifikat CA ini adalah cara perangkat IoT Edge memverifikasi identitasnya ke perangkat downstream.
- ~/certs/private/iot-edge-device-mycacert.key.pem - Kunci privat yang terkait dengan sertifikat CA perangkat.
Untuk mempelajari selengkapnya tentang sertifikat demo ini, lihat Membuat sertifikat demo untuk menguji fitur perangkat IoT Edge.
Buka file config.toml di editor teks. Contohnya:
sudo nano /etc/aziot/config.toml
Temukan pengaturan berikut dalam file konfigurasi. Tambahkan pengaturan sertifikat sebagai berikut:
trust_bundle_cert = "file:///home/AzureUser/certs/certs/azure-iot-test-only.root.ca.cert.pem" [edge_ca] cert = "file:///home/AzureUser/certs/certs/iot-edge-device-ca-mycacert-full-chain.cert.pem" pk = "file:///home/AzureUser/certs/private/iot-edge-device-ca-mycacert.key.pem"
Contoh sebelumnya mengasumsikan Anda masuk sebagai AzureUser dan membuat sertifikat OS perangkat yang disebut "mycacert".
Simpan perubahan dan mulai ulang runtime bahasa umum IoT Edge:
sudo iotedge config apply
Jika runtime IoT Edge berhasil dimulai setelah perubahan Anda, status modul $edgeAgent dan $edgeHub berubah menjadi Berjalan pada halaman Modul untuk perangkat gateway di IoT Central.
Jika runtime tidak dimulai, periksa perubahan yang Anda buat di file konfigurasi IoT Edge dan lihat Memecahkan masalah perangkat IoT Edge Anda.
Gateway transparan Anda sekarang dikonfigurasi dan siap untuk mulai meneruskan telemetri dari perangkat downstream.
Memprovisikan perangkat downstream
IoT Central bergantung pada Device Provisioning Service (DPS) untuk menyediakan perangkat di IoT Central. Saat ini, IoT Edge tidak dapat menggunakan DPS yang menyediakan perangkat hilir ke aplikasi IoT Central Anda. Langkah-langkah berikut menunjukkan kepada Anda cara memprovisikan thermostat1
perangkat secara manual. Untuk menyelesaikan langkah-langkah ini, Anda memerlukan lingkungan dengan Python terinstal dan konektivitas internet. Periksa Azure IoT Python SDK untuk persyaratan versi Python saat ini. Azure Cloud Shell memiliki Python yang telah diinstal sebelumnya:
Jalankan perintah berikut untuk menginstal modul
azure.iot.device
:pip install azure.iot.device
Jalankan perintah berikut untuk mengunduh skrip Python yang melakukan provisi perangkat:
wget https://raw.githubusercontent.com/Azure-Samples/iot-central-docs-samples/main/transparent-gateway-1-4/provision_device.py
Untuk menyediakan
thermostat1
perangkat hilir di aplikasi IoT Central Anda, jalankan perintah berikut, ganti{your application id scope}
dan{your device primary key}
. Anda mencatat nilai-nilai ini saat menambahkan perangkat ke aplikasi IoT Central Anda:export IOTHUB_DEVICE_DPS_DEVICE_ID=thermostat1 export IOTHUB_DEVICE_DPS_ID_SCOPE={your application id scope} export IOTHUB_DEVICE_DPS_DEVICE_KEY={your device primary key} python provision_device.py
Di aplikasi IoT Central Anda, verifikasi bahwa status Perangkat untuk thermostat1
perangkat sekarang Disediakan.
Mengonfigurasi perangkat downstream
Di bagian sebelumnya, Anda mengonfigurasi komputer virtual edgegateway
dengan sertifikat demo untuk memungkinkannya berjalan sebagai gateway. Komputer virtual leafdevice
siap untuk dipasangi simulator termostat yang menggunakan gateway untuk tersambung ke IoT Central.
Komputer virtual leafdevice
membutuhkan salinan sertifikat CA akar yang Anda buat di komputer virtual edgegateway
. Salin file /home/AzureUser/certs/certs/azure-iot-test-only.root.ca.cert.pem dari komputer virtual edgegateway
ke direktori rumah Anda di komputer virtual leafdevice
. Anda dapat menggunakan perintah scp untuk menyalin file antara komputer virtual Linux. Misalnya, dari komputer leafdevice
:
scp AzureUser@edgegateway:/home/AzureUser/certs/certs/azure-iot-test-only.root.ca.cert.pem .
Untuk mempelajari cara memeriksa koneksi dari perangkat downstream ke gateway, lihat Menguji koneksi gateway.
Untuk menjalankan simulator termostat pada komputer virtual leafdevice
:
Gunakan SSH untuk menyambungkan dan masuk di komputer virtual Anda
leafdevice
.Unduh sampel Python ke direktori rumah Anda:
cd ~ wget https://raw.githubusercontent.com/Azure-Samples/iot-central-docs-samples/main/transparent-gateway-1-4/simple_thermostat.py
Pasang modul Python perangkat Azure IoT:
sudo apt update sudo apt install python3-pip pip3 install azure.iot.device
Atur variabel lingkungan untuk mengonfigurasi sampel. Ganti
{your device shared key}
dengan kunci primerthermostat1
yang Anda catat sebelumnya. Variabel-variabel ini mengasumsikan nama komputer virtual gateway adalahedgegateway
dan ID perangkat termostat adalahthermostat1
:export IOTHUB_DEVICE_SECURITY_TYPE=connectionString export IOTHUB_DEVICE_CONNECTION_STRING="HostName=edgegateway;DeviceId=thermostat1;SharedAccessKey={your device shared key}" export IOTEDGE_ROOT_CA_CERT_PATH=~/azure-iot-test-only.root.ca.cert.pem
Perhatikan bagaimana string koneksi menggunakan nama perangkat gateway dan bukan nama IoT hub.
Untuk menjalankan kode, gunakan perintah berikut:
python3 simple_thermostat.py
Output dari perintah ini terlihat seperti:
Connecting using Connection String HostName=edgegateway;DeviceId=thermostat1;SharedAccessKey={your device shared key} Listening for command requests and property updates Press Q to quit Sending telemetry for temperature Sent message Sent message Sent message ...
Tip
Jika Anda melihat kesalahan saat perangkat hilir mencoba menyambungkan. Coba jalankan kembali langkah-langkah provisi perangkat.
Untuk melihat telemetri di IoT Central, navigasikan ke halaman Ringkasan untuk perangkat termostat1:
Pada halaman Tentang Anda bisa menampilkan nilai properti yang dikirim dari perangkat downstream, dan pada halaman Perintah Anda bisa memanggil perintah di perangkat downstream.