Mengubah data secara eksternal untuk IoT Central

Perangkat IoT mengirim data dalam berbagai format. Untuk menggunakan data perangkat dengan aplikasi IoT Central, Anda mungkin perlu menggunakan transformasi untuk:

  • Membuat format data yang kompatibel dengan aplikasi IoT Central Anda.
  • Mengonversi unit.
  • Mengomputasi metrik baru.
  • Memperkaya data dari sumber lain.

Artikel ini menunjukkan cara mentransformasi data perangkat di luar IoT Central baik saat masuk atau keluar.

Catatan

IoT Central juga dapat mengubah data secara internal, untuk mempelajari lebih lanjut lihat Memetakan telemetri pada masuk ke IoT Central dan Mengubah data di dalam aplikasi IoT Central Anda untuk diekspor.

Diagram berikut ini memperlihatkan tiga rute untuk data yang mencakup transformasi:

Ringkasan rute transformasi data baik masuk maupun keluar

Tabel berikut ini memperlihatkan tiga jenis transformasi contoh:

Transformasi Deskripsi Contoh Catatan
Format Pesan Mengonversi atau memanipulasi pesan JSON. CSV ke JSON Saat masuk. IoT Central hanya menerima nilai pesan JSON. Untuk mempelajari selengkapnya, lihat Payload telemetri, properti, dan perintah.
Komputasi Fungsi matematika yang dapat dijalankan oleh Azure Functions. Konversi unit dari Fahrenheit ke Celsius. Melakukan transformasi menggunakan pola keluar untuk memanfaatkan perangkat skalabel yang masuk melalui koneksi langsung ke IoT Central. Dengan mentransformasi data, Anda dapat menggunakan fitur IoT Central seperti visualisasi dan pekerjaan.
Pengayaan Pesan Pengayaan dari sumber data eksternal tidak ditemukan di properti perangkat atau telemetri. Untuk mempelajari selengkapnya tentang pengayaan internal, lihat Mengekspor data IoT ke tujuan cloud menggunakan Blob Storage. Tambahkan informasi cuaca ke pesan menggunakan data lokasi dari perangkat. Melakukan transformasi menggunakan pola keluar untuk memanfaatkan perangkat skalabel yang masuk melalui koneksi langsung ke IoT Central.

Prasyarat

Untuk menyelesaikan langkah-langkah di panduan penggunaan ini, Anda memerlukan:

Transformasi data saat masuk

Untuk mentransformasi data perangkat saat masuk, terdapat dua opsi:

  • IoT Edge: Menggunakan modul IoT Edge untuk mentransformasi data dari perangkat hilir sebelum mengirim data ke aplikasi IoT Central Anda.

  • Jembatan perangkat IoT Central:Jembatan perangkat IoT Central menyambungkan cloud perangkat IoT lainnya, seperti Sigfox, Particle, dan The Things Network, ke IoT Central. Jembatan perangkat menggunakan fungsi Azure untuk meneruskan data dan Anda dapat mengustomisasi fungsi untuk mentransformasi data perangkat.

Menggunakan IoT Edge untuk mentransformasi data perangkat

Transformasi data yang masuk menggunakan IoT Edge

Dalam skenario ini, modul IoT Edge mentransformasi data dari perangkat hilir sebelum meneruskannya ke aplikasi IoT Central Anda. Pada tingkat tinggi, berikut langkah-langkah untuk mengonfigurasi skenario ini:

  1. Siapkan perangkat IoT Edge: Pasang dan provisikan perangkat IoT Edge sebagai gateway dan sambungkan gateway ke aplikasi IoT Central Anda.

  2. Sambungkan perangkat hilir ke perangkat IoT Edge: Sambungkan perangkat hilir ke perangkat IoT Edge dan sambungkan ke aplikasi IoT Central Anda.

  3. Transformasikan data perangkat di IoT Edge: Buat modul IoT Edge untuk mentransformasi data. Sebarkan modul ke perangkat gateway IoT Edge yang meneruskan data perangkat yang ditransformasi ke aplikasi IoT Central Anda.

  4. Verifikasi: Kirim data dari perangkat hilir ke gateway dan pastikan data perangkat yang ditransformasi mencapai aplikasi IoT Central Anda.

Dalam contoh yang dijelaskan di bagian berikut, perangkat hilir mengirim data JSON dalam format berikut ke perangkat gateway IoT Edge:

{
  "device": {
      "deviceId": "<downstream-deviceid>"
  },
  "measurements": {
    "temp": <temperature>,
    "pressure": <pressure>,
    "humidity": <humidity>,
    "scale": "celsius",
  }
}

Anda menggunakan modul IoT Edge untuk mengubah data dan mengonversi nilai suhu dari Celsius ke Fahrenheit sebelum mengirimkannya ke IoT Central:

{
  "device": {
      "deviceId": "<downstream-deviceid>"
  },
  "measurements": {
    "temp": <temperature>,
    "pressure": <pressure>,
    "humidity": <humidity>,
    "scale": "fahrenheit"
  }
}

Telusuri kode

Langkah-langkah berikut ini menunjukkan cara menyiapkan dan mengonfigurasi skenario ini:

Membangun modul kustom

Dalam skenario ini, perangkat IoT Edge menjalankan modul kustom yang mentransformasi data dari perangkat hilir. Sebelum Anda menyebarkan dan mengonfigurasi perangkat IoT Edge, Anda perlu:

  • Membangun modul kustom.
  • Menambahkan modul kustom ke registri kontainer.

Runtime bahasa umum IoT Edge mengunduh modul kustom dari registri kontainer seperti registri kontainer Azure atau Docker Hub. Azure Cloud Shell memiliki semua alat yang Anda butuhkan untuk membuat registri kontainer, menyusun modul, dan mengunggah modul ke registri:

Untuk membuat registri kontainer:

  1. Buka Azure Cloud Shell dan masuk ke langganan Azure Anda.

  2. Pilih shell Bash .

  3. Jalankan perintah berikut untuk membuat registri kontainer Azure:

    REGISTRY_NAME="{your unique container registry name}"
    az group create --name ingress-scenario --location eastus
    az acr create -n $REGISTRY_NAME -g ingress-scenario --sku Standard --admin-enabled true
    az acr credential show -n $REGISTRY_NAME
    

    Catat nilai username dan password karena Anda akan menggunakannya nanti. Anda hanya memerlukan salah satu kata sandi yang ditampilkan dalam output perintah.

Untuk membangun modul kustom di Azure Cloud Shell:

  1. Di Azure Cloud Shell, kloning repositori GitHub yang berisi kode sumber modul:

    git clone https://github.com/iot-for-all/iot-central-transform-with-iot-edge
    
  2. Untuk membangun modul kustom, jalankan perintah berikut di Azure Cloud Shell:

    cd iot-central-transform-with-iot-edge/custommodule/transformmodule
    az acr build --registry $REGISTRY_NAME --image transformmodule:0.0.1-amd64 -f Dockerfile.amd64 .
    

    Perintah sebelumnya mungkin memerlukan waktu beberapa menit untuk dijalankan.

Menyiapkan perangkat IoT Edge

Skenario ini menggunakan perangkat gateway IoT Edge untuk mentransformasi data dari perangkat hilir apa pun. Bagian ini menjelaskan cara membuat templat perangkat IoT Central untuk perangkat gateway di aplikasi IoT Central Anda. Perangkat IoT Edge menggunakan manifes penyebaran untuk mengonfigurasi modulnya.

Dalam contoh ini, perangkat hilir tidak memerlukan templat perangkat. Perangkat hilir terdaftar di IoT Central sehingga Anda dapat menghasilkan kredensial yang diperlukan untuk menyambungkan perangkat IoT Edge. Karena modul IoT Edge mengubah data, semua telemetri perangkat hilir tiba di IoT Central seolah-olah perangkat IoT Edge telah mengirimkannya.

Untuk membuat templat perangkat untuk perangkat gateway IoT Edge:

  1. Simpan salinan manifes penyebaran ke komputer pengembangan lokal Anda: moduledeployment.json.

  2. Buka salinan manifes moduledeployment.json di editor teks.

  3. Cari bagian registryCredentials dan ganti tempat penampung dengan nilai yang Anda catat saat Anda membuat registri kontainer Azure. Nilai address akan terlihat seperti {your username}.azurecr.io.

  4. Cari bagian settings untuk transformmodule. Ganti {your username} dengan nilai yang sama dengan yang Anda gunakan di langkah sebelumnya. Simpan perubahan.

  5. Di aplikasi IoT Central Anda, navigasikan ke halaman Manifes Edge.

  6. Pilih + Baru. Masukkan nama seperti Transformer untuk manifes penyebaran Anda, lalu unggah file moduledeployment.json yang Anda unduh sebelumnya. Manifes penyebaran mencakup modul kustom yang disebut transformmodule.

  7. Pilih Berikutnya lalu Buat.

  8. Di aplikasi IoT Central Anda, buka halaman Templat perangkat.

  9. Pilih + Baru, pilih Azure IoT Edge, lalu pilih Berikutnya: Sesuaikan.

  10. Masukkan perangkat gateway IoT Edge sebagai nama templat perangkat. Pilih Ini adalah perangkat gateway.

  11. Pilih Berikutnya: Tinjau, lalu pilih Buat.

  12. Pada halaman Buat model , pilih Model kustom.

  13. Dalam model, pilih Modul lalu Impor modul dari manifes. Pilih manifes penyebaran Transformer lalu pilih Impor.

Manifes penyebaran tidak menentukan telemetri yang dikirim modul. Untuk menambahkan definisi telemetri ke templat perangkat:

  1. Pilih Transformmodule modul di bagian Modul dari templat perangkat gateway IoT Edge.

  2. Pilih Tambahkan kapabilitas dan gunakan informasi dalam tabel berikut untuk menambahkan jenis telemetri baru:

    Pengaturan Nilai
    Nama tampilan Perangkat
    Nama perangkat
    Jenis kapabilitas telemetri
    Jenis semantik Tidak
    Skema Objek

    Definisi objek:

    Nama tampilan Nama Skema
    ID Perangkat deviceId String

    Simpan perubahan.

  3. Pilih Tambahkan kapabilitas dan gunakan informasi dalam tabel berikut untuk menambahkan jenis telemetri baru:

    Pengaturan Nilai
    Nama tampilan Pengukuran
    Nama pengukuran
    Jenis kapabilitas telemetri
    Jenis semantik Tidak
    Skema Objek

    Definisi objek:

    Nama tampilan Nama Skema
    Suhu suhu Laju
    Tekanan tekanan Laju
    Kelembapan kelembaban Laju
    Skala Skala String

    Simpan perubahan.

  4. Dalam model, pilih Hubungan. Jangan pilih Hubungan dalam modul transformmodule .

  5. Pilih Tambahkan hubungan.

  6. Masukkan Sensor Hilir sebagai nama tampilan, sensor sebagai nama, dan pilih Apa pun sebagai target. Pilih Simpan.

  7. Pilih Terbitkan untuk menerbitkan templat perangkat.

Untuk mendaftarkan perangkat gateway di IoT Central:

  1. Di aplikasi IoT Central Anda, buka halaman Perangkat.

  2. Pilih perangkat gateway IoT Edge dan pilih + Baru. Masukkan perangkat gateway IoT Edge sebagai nama perangkat, masukkan gateway-01 sebagai ID perangkat, pastikan perangkat gateway IoT Edge dipilih sebagai templat perangkat dan Tidak dipilih sebagai Simulasikan perangkat ini?. Pilih Transformer sebagai manifes tepi. Pilih Buat.

  3. Dalam daftar perangkat, klik perangkat gateway IoT Edge, lalu pilih Sambungkan.

  4. Catat Cakupan ID, ID Perangkat, dan nilai Kunci primer untuk perangkat gateway IoT Edge. Anda akan menggunakannya nanti.

Untuk mendaftarkan perangkat hilir di IoT Central:

  1. Di aplikasi IoT Central Anda, buka halaman Perangkat.

  2. Jangan pilih templat perangkat. Pilih + Baru. Masukkan Downstream 01 sebagai nama perangkat, masukkan downstream-01 sebagai ID perangkat, pastikan bahwa templat perangkat Tidak Ditetapkan dan Tidak dipilih sebagai Simulasikan perangkat ini?. Pilih Buat.

  3. Dalam daftar perangkat, klik perangkat Hilir 01 , lalu pilih Kelola Perangkat > Lampirkan ke gateway.

  4. Dalam dialog Lampirkan ke gateway, pilih templat perangkat perangkat gateway IoT Edge, dan instans perangkat perangkat gateway IoT Edge. Pilih Lampirkan.

  5. Pada perangkat Hilir 01, pilih Koneksi.

  6. Catat cakupan ID, ID Perangkat, dan nilai Kunci primer untuk perangkat Hilir 01. Anda akan menggunakannya nanti.

Menyebarkan perangkat gateway dan hilir

Untuk kenyamanan, artikel ini menggunakan komputer virtual Azure untuk menjalankan perangkat gateway dan hilir. Untuk membuat dua komputer virtual Azure, pilih tombol Sebarkan ke Azure yang diperlihatkan setelah tabel berikut ini. Gunakan informasi dalam tabel untuk melengkapi formulir Penyebaran kustom:

Bidang Nilai
Grup sumber daya ingress-scenario
Prefiks Label DNS Gateway Nama DNS unik untuk mesin ini seperti <your name>edgegateway
Prefiks Label DNS Hilir Nama DNS unik untuk mesin ini seperti <your name>downstream
ID Cakupan Nilai cakupan ID yang Anda catat sebelumnya
ID Perangkat Gateway IoT Edge gateway-01
Kunci Perangkat Gateway IoT Edge Nilai kunci primer yang Anda catat sebelumnya
Jenis Autentikasi Kata sandi
Kunci atau Kata Sandi Admin Pilihan kata sandi Anda untuk akun AzureUser di kedua komputer virtual.

Sebarkan ke Tombol Azure

Pilih Tinjau ulang + Buat, lalu pilih Buat. Dibutuhkan beberapa menit untuk membuat komputer virtual dalam grup sumber daya skenario masuk.

Untuk memeriksa apakah perangkat gateway IoT Edge berjalan dengan benar:

  1. Buka aplikasi IoT Central Anda. Kemudian masuk ke perangkat Gateway IoT Edge pada daftar perangkat di halaman Perangkat.

  2. Pilih tab Modul dan periksa status ketiga modul. Dibutuhkan beberapa menit untuk runtime bahasa umum IoT Edge untuk memulai di komputer virtual. Saat komputer virtual berjalan, status ketiga modul berjalan. Jika runtime bahasa umum IoT Edge tidak berjalan, lihat Memecahkan masalah perangkat IoT Edge Anda.

Agar perangkat IoT Edge Anda berfungsi sebagai gateway, perlu beberapa sertifikat untuk membuktikan identitasnya ke perangkat hilir 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:

  1. Gunakan SSH untuk menyambungkan dan masuk di komputer virtual perangkat gateway Anda. Anda dapat menemukan nama DNS untuk komputer virtual ini di portal Microsoft Azure. Buka komputer virtual edgegateway dalam grup sumber daya skenario masuk.

    Tip

    Anda mungkin perlu membuka port 22 untuk akses SSH pada kedua komputer virtual Anda sebelum dapat menggunakan SSH untuk tersambung dari komputer lokal Anda atau Azure Cloud Shell.

  2. 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 dirujuk dari file config.yaml. 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.

  3. Buka file config.toml di editor teks. Contohnya:

    sudo nano /etc/aziot/config.toml
    
  4. Hapus komentar dan ubah 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 CA perangkat yang disertifikasi yang disebut "mycacert".

  5. Simpan perubahan dan jalankan perintah berikut untuk memverifikasi bahwa file config.toml sudah benar:

    sudo iotedge check
    
  6. Mulai ulang runtime IoT Edge:

    sudo iotedge config apply
    

Jika runtime bahasa umum IoT Edge berhasil dimulai setelah perubahan dibuat, status modul $edgeAgent dan $edgeHub berubah menjadi Berjalan. Anda dapat melihat nilai status ini di halaman Modul untuk perangkat gateway Anda di IoT Central.

Jika runtime tidak dimulai, periksa perubahan yang Anda buat di config.toml dan lihat Memecahkan masalah perangkat IoT Edge Anda.

Menyambungkan perangkat hilir ke perangkat IoT Edge

Untuk menyambungkan perangkat hilir ke perangkat gateway Azure IoT Edge:

  1. Gunakan SSH untuk menyambungkan ke dan masuk di komputer virtual perangkat gateway Anda. Anda dapat menemukan nama DNS untuk komputer virtual ini di portal Microsoft Azure. Buka komputer virtual leafdevice dalam grup sumber daya skenario masuk.

    Tip

    Anda mungkin perlu membuka port 22 untuk akses SSH pada kedua komputer virtual Anda sebelum dapat menggunakan SSH untuk tersambung dari komputer lokal Anda atau Azure Cloud Shell.

  2. Untuk mengkloning repositori GitHub dengan kode sumber untuk perangkat hilir sampel, jalankan perintah berikut:

    cd ~
    git clone https://github.com/iot-for-all/iot-central-transform-with-iot-edge
    
  3. Untuk menyalin sertifikat yang diperlukan dari perangkat gateway, jalankan perintah scp berikut ini. Perintah scp ini menggunakan nama host edgegateway untuk mengidentifikasi komputer virtual gateway. Anda dimintai kata sandi Anda:

    cd ~/iot-central-transform-with-iot-edge
    scp AzureUser@edgegateway:/home/AzureUser/certs/certs/azure-iot-test-only.root.ca.cert.pem leafdevice/certs
    
  4. Buka folder leafdevice dan pasang paket yang diperlukan. Kemudian jalankan skrip build dan start untuk memprovisikan dan menyambungkan perangkat ke gateway:

    cd ~/iot-central-transform-with-iot-edge/leafdevice
    sudo apt update
    curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash -
    sudo apt-get install nodejs
    npm install
    npm run-script build
    npm run-script start
    

    Selama sudo apt-get install nodejs perintah, Anda dapat diminta untuk mengizinkan penginstalan: tekan Y jika diminta.

  5. Masukkan ID perangkat, ID cakupan, dan kunci SAS untuk perangkat hilir yang Anda buat sebelumnya. Untuk nama host, masukkan edgegateway. Output dari perintah tersebut akan terlihat seperti:

    Registering device downstream-01 with scope 0ne00284FD9
    Registered device downstream-01.
    Connecting device downstream-01
    Connected device downstream-01
    Sent telemetry for device downstream-01
    Sent telemetry for device downstream-01
    Sent telemetry for device downstream-01
    Sent telemetry for device downstream-01
    Sent telemetry for device downstream-01
    Sent telemetry for device downstream-01
    

Untuk kesederhanaan, kode untuk perangkat hilir menyediakan perangkat di IoT Central. Biasanya, perangkat hilir tersambung melalui gateway karena tidak dapat terhubung ke internet sehingga tidak dapat tersambung ke titik akhir Device Provisioning Service. Untuk mempelajari selengkapnya, lihat Cara menyambungkan perangkat melalui gateway transparan IoT Edge.

Verifikasi

Untuk memverifikasi skenario yang dijalankan, buka perangkat gateway IoT Edge Anda di IoT Central:

Cuplikan layar yang menunjukkan data yang ditransformasi di halaman perangkat.

  • Pilih Modul. Verifikasi bahwa tiga modul IoT Edge $edgeAgent, $edgeHub, dan transformmodule sedang berjalan.

  • Pilih Data mentah. Data telemetri di kolom Perangkat terlihat seperti:

    {"deviceId":"downstream-01"}
    

    Data telemetri di kolom Pengukuran terlihat seperti:

    {"temperature":85.21208,"pressure":59.97321,"humidity":77.718124,"scale":"farenheit"}
    

Suhu dikirim dalam Fahrenheit. Karena perangkat IoT Edge mentransformasi data dari perangkat hilir, telemetri dikaitkan dengan perangkat gateway di IoT Central. Untuk memvisualisasikan telemetri yang diubah, buat tampilan di templat perangkat gateway IoT Edge dan terbitkan ulang.

Transformasi data saat keluar

Anda dapat menyambungkan perangkat Anda ke IoT Central, mengekspor data perangkat ke mesin komputasi untuk mentransformasinya, lalu mengirim data yang ditransformasi kembali ke IoT Central untuk manajemen dan analisis perangkat. Contohnya:

  • Perangkat Anda mengirim data lokasi ke IoT Central.
  • IoT Central mengekspor data ke mesin komputasi yang meningkatkan data lokasi dengan informasi cuaca.
  • Mesin komputasi mengirim data yang ditingkatkan kembali ke IoT Central.

Anda dapat menggunakan jembatan perangkat IoT Central sebagai mesin komputasi untuk mentransformasi data yang diekspor dari IoT Central.

Keuntungan mentransformasi data saat keluar adalah perangkat Anda tersambung langsung ke IoT Central, yang memudahkan proses mengirim perintah ke perangkat atau memperbarui properti perangkat. Namun, dengan metode ini, Anda dapat menggunakan lebih banyak pesan daripada alokasi bulanan Anda dan meningkatkan biaya penggunaan Azure IoT Central.

Menggunakan jembatan perangkat IoT Central untuk mentransformasi data perangkat

Transformasi data keluar menggunakan IoT Edge

Dalam skenario ini, mesin komputasi mentransformasi data perangkat yang diekspor dari IoT Central sebelum mengirimkannya kembali ke aplikasi IoT Central Anda. Pada tingkat tinggi, berikut langkah-langkah untuk mengonfigurasi skenario ini:

  1. Siapkan mesin komputasi: Buat jembatan perangkat IoT Central untuk bertindak sebagai mesin komputasi untuk transformasi data.

  2. Transformasi data perangkat di jembatan perangkat: Transformasi data di jembatan perangkat dengan memodifikasi kode fungsi jembatan perangkat untuk kasus penggunaan transformasi data Anda.

  3. Aktifkan aliran data dari IoT Central ke jembatan perangkat: Ekspor data dari IoT Central ke jembatan perangkat untuk transformasi. Kemudian, teruskan data yang ditransformasi kembali ke IoT Central. Saat Anda membuat ekspor data, gunakan filter properti pesan untuk hanya mengekspor data yang tidak ditransformasi.

  4. Verifikasi: Sambungkan perangkat Anda ke aplikasi IoT Central dan periksa data perangkat mentah dan data yang ditransformasi di IoT Central.

Dalam contoh yang dijelaskan di bagian berikut ini, perangkat mengirim data CSV dalam format berikut ke perangkat gateway IoT Edge:

"<temperature in degrees C>, <humidity>, <latitude>, <longitude>"

Anda menggunakan jembatan perangkat untuk mentransformasi data perangkat dengan:

  • Mengubah satuan suhu dari celcius menjadi fahrenheit.
  • Memperkaya data perangkat dengan data cuaca yang diambil dari layanan Open Weather untuk nilai lintang dan bujur.

Jembatan perangkat kemudian mengirimkan data yang ditransformasi ke IoT Central dalam format berikut:

{
  "temp": <temperature in degrees F>,
  "humidity": <humidity>,
  "lat": <latitude>,
  "lon": <logitude>,
  "weather": {
    "weather_temp": <temperature at lat/lon>,
    "weather_humidity": <humidity at lat/lon>,
    "weather_pressure": <pressure at lat/lon>,
    "weather_windspeed": <wind speed at lat/lon>,
    "weather_clouds": <cloud cover at lat/lon>,
    "weather_uvi": <UVI at lat/lon>
  }
}

Langkah-langkah berikut ini menunjukkan cara menyiapkan dan mengonfigurasi skenario ini:

Mengambil pengaturan koneksi IoT Central Anda

Sebelum Anda mengatur skenario ini, Anda perlu mendapatkan beberapa pengaturan koneksi dari aplikasi IoT Central Anda:

  1. Masuk ke aplikasi IoT Central Anda.

  2. Navigasi ke grup koneksi Perangkat Izin>.

  3. Catat nilai cakupan ID. Anda menggunakan nilai ini nanti.

  4. Pilih grup pendaftaran SaS-IoT-Perangkat. Catat kunci primer tanda tangan akses bersama. Anda menggunakan nilai ini nanti.

Menyiapkan mesin komputasi

Skenario ini menggunakan penyebaran Azure Functions yang sama dengan jembatan perangkat IoT Central. Untuk menyebarkan jembatan perangkat, pilih tombol Sebarkan ke Azure yang diperlihatkan setelah tabel berikut. Gunakan informasi dalam tabel untuk melengkapi formulir Penyebaran kustom:

Bidang Nilai
Grup sumber daya Buat grup sumber daya baru bernama egress-scenario
Wilayah Pilih wilayah yang terdekat dengan Anda.
ID Cakupan Gunakan Cakupan ID yang Anda catat sebelumnya.
Kunci SAS IoT Central Gunakan kunci primer tanda tangan akses bersama untuk grup pendaftaran SaS-IoT-Devices. Anda membuat catatan tentang nilai ini sebelumnya.

Sebarkan ke Azure.

Pilih Tinjau ulang + Buat, lalu pilih Buat. Dibutuhkan beberapa menit untuk membuat fungsi Azure dan sumber daya terkait dalam grup sumber daya skenario keluar.

Mentransformasi data perangkat di jembatan perangkat

Untuk mengonfigurasi jembatan perangkat untuk mentransformasi data perangkat yang diekspor:

  1. Dapatkan kunci API aplikasi dari layanan Open Weather. Akun gratis dengan penggunaan layanan terbatas. Untuk membuat kunci API aplikasi, buat akun di portal layanan Open Weather dan ikuti instruksinya. Anda akan menggunakan kunci API Open Weather nanti.

  2. Di portal Microsoft Azure, buka Function App di grup sumber daya skenario keluar.

  3. Di navigasi kiri, di Alat Pengembangan, pilih Editor App Service (Pratinjau).

  4. Pilih Buka → untuk membuka halaman Editor App Service. Lakukan perubahan berikut:

    1. Buka file wwwroot/IoTCIntegration/index.js. Ganti semua kode dalam file ini dengan kode di index.js.

    2. Di bagian index.js baru, perbarui file variabel openWeatherAppId dengan kunci API Open Weather yang Anda peroleh sebelumnya.

      const openWeatherAppId = '<Your Open Weather API Key>'
      
    3. Tambahkan properti pesan ke data yang dikirim oleh fungsi ke IoT Central. IoT Central menggunakan properti ini untuk mencegah agar tidak mengekspor data yang ditransformasi. Untuk melakukan perubahan ini, buka file wwwroot/IoTCIntegration/lib/engine.js. Cari kode berikut:

      if (timestamp) {
        message.properties.add('iothub-creation-time-utc', timestamp);
      }
      

      Tambahkan kode berikut tepat setelah kode di cuplikan sebelumnya:

      // add a message property that we can look for in data export to not re-compute computed telemetry
      message.properties.add('computed', true);
      

      Untuk referensi, Anda dapat melihat contoh file engine.js.

  5. Di Editor App Service, pilih Konsol di navigasi kiri. Jalankan perintah berikut untuk memasang paket yang diperlukan:

    cd IoTCIntegration
    npm install
    

    Perlu beberapa menit untuk menjalankan perintah ini.

  6. Kembali ke halaman Ringkasan Fungsi Azure dan mulai ulang fungsi:

    Memulai ulang fungsi

  7. Pilih Fungsi di navigasi kiri. Kemudian pilih IoTCIntegration. Pilih Kode + Pengujian.

  8. Catat URL fungsi. Anda memerlukan nilai ini nanti:

    Mendapatkan URL fungsi

Aktifkan aliran data dari IoT Central ke jembatan perangkat

Bagian ini menjelaskan cara menyiapkan aplikasi Azure IoT Central.

Pertama, simpan file model perangkat ke komputer lokal Anda.

Untuk menambahkan templat perangkat ke aplikasi IoT Central Anda, masuk ke aplikasi IoT Central Anda lalu:

  1. Masuk ke aplikasi IoT Central Anda dan buka halaman Templat perangkat.

  2. Pilih + Baru, pilih Perangkat IoT, pilih Berikutnya: Kustomisasi, masukkan Model komputasi sebagai nama templat. Pilih Berikutnya: Tinjauan. Lalu pilih Buat.

  3. Pilih Impor model dan telusuri file model.js yang Anda unduh sebelumnya.

  4. Setelah model diimpor, pilih Terbitkan untuk menerbitkan templat perangkat Model komputasi.

Siapkan ekspor data untuk mengirim data ke jembatan Perangkat Anda:

  1. Di aplikasi IoT Central Anda, pilih Ekspor data.

  2. Pilih + Tujuan baru untuk membuat tujuan yang akan digunakan dengan jembatan perangkat. Panggil tujuan Fungsi komputasi, untuk Jenis tujuan pilih Webhook. Untuk URL Panggilan Balik, pilih tempel di URL fungsi yang Anda catat sebelumnya. Biarkan Otorisasi sebagai Tanpa Otorisasi.

  3. Simpan perubahan.

  4. Pilih + Ekspor baru dan buat ekspor data yang disebut Ekspor komputasi.

  5. Tambahkan filter untuk hanya mengekspor data perangkat untuk templat perangkat yang Anda gunakan. Pilih + Filter, pilih item Templat perangkat, pilih operator Sama dengan, dan pilih templat perangkat Model komputasi yang Anda buat.

  6. Tambahkan filter pesan untuk membedakan antara data yang ditransformasi dan tidak ditransformasi. Filter ini mencegah pengiriman nilai yang ditransformasi kembali ke jembatan perangkat. Pilih + Filter properti pesan dan masukkan nilai nama komputasi, lalu pilih operator Tidak ada. String computed digunakan sebagai kata kunci dalam kode contoh jembatan perangkat.

  7. Untuk tujuan, pilih tujuan Fungsi komputasi yang Anda buat sebelumnya.

  8. Simpan perubahan. Setelah satu menit atau lebih, Status ekspor muncul sebagai Sehat.

Verifikasi

Perangkat sampel yang Anda gunakan untuk menguji skenario ditulis dalam Node.js. Pastikan Anda telah menginstal Node.js dan npm di komputer lokal Anda. Jika Anda tidak ingin menginstal prasyarat ini, gunakan Azure Cloud Shell tempat pra-instalannya.

Untuk menjalankan perangkat sampel yang menguji skenario:

  1. Buat klon repositori GitHub yang berisi kode sumber modul, lalu jalankan perintah berikut:

    git clone https://github.com/Azure/iot-central-compute
    
  2. Untuk menyambungkan perangkat sampel ke aplikasi IoT Central Anda, edit pengaturan koneksi di file iot-central-compute/device/device.js. Ganti cakupan ID dan kunci SAS grup dengan nilai yang Anda catat sebelumnya:

    // These values need to be filled in from your Azure IoT Central application
    //
    const scopeId = "<IoT Central Scope Id value>";
    const groupSasKey = "<IoT Central Group SAS key>";
    //
    

    Simpan perubahan.

  3. Gunakan perintah berikut untuk memasang paket yang diperlukan dan memulai aplikasi:

    cd ~/iot-central-compute/device
    npm install
    node device.js
    
  4. Hasil dari perintah ini terlihat seperti output berikut:

    registration succeeded
    assigned hub=iotc-2bd611b0....azure-devices.net
    deviceId=computeDevice
    Client connected
    send status: MessageEnqueued [{"data":"33.23, 69.09, 30.7213, -61.1192"}]
    send status: MessageEnqueued [{"data":"2.43, 75.86, -2.6358, 162.935"}]
    send status: MessageEnqueued [{"data":"6.19, 76.55, -14.3538, -82.314"}]
    send status: MessageEnqueued [{"data":"33.26, 48.01, 71.9172, 48.6606"}]
    send status: MessageEnqueued [{"data":"40.5, 36.41, 14.6043, 14.079"}]
    
  5. Di aplikasi IoT Central Anda, buka perangkat yang disebut computeDevice. Pada tampilan Data mentah, ada dua aliran telemetri berbeda yang muncul sekitar setiap lima detik. Aliran dengan data yang tidak dimodelkan adalah telemetri asli, aliran dengan data yang dimodelkan adalah data yang ditransformasikan fungsi:

    Cuplikan layar yang memperlihatkan data mentah asli dan yang ditransformasi.

Membersihkan sumber daya

Jika Anda tidak lagi memerlukan sumber daya Azure yang Anda buat saat mengikuti langkah-langkah dalam panduan ini, hapus grup sumber daya di portal Microsoft Azure.

Dua grup sumber daya yang Anda gunakan dalam panduan ini adalah skenario masuk dan skenario keluar.

Langkah berikutnya

Dalam artikel ini, Anda telah mempelajari berbagai opsi untuk mentransformasi data perangkat untuk IoT Central, baik saat masuk maupun keluar. Artikel ini menyertakan panduan untuk dua skenario khusus:

  • Menggunakan modul IoT Edge untuk mentransformasi data dari perangkat hilir sebelum data dikirim ke aplikasi IoT Central Anda.
  • Menggunakan Azure Functions untuk mentransformasi data di luar IoT Central. Dalam skenario ini, IoT Central menggunakan ekspor data untuk mengirim data masuk ke fungsi Azure untuk ditransformasikan. Fungsi ini mengirim data yang ditransformasi kembali ke aplikasi IoT Central Anda.

Sekarang setelah Anda mempelajari cara mengubah data perangkat di luar aplikasi Azure IoT Central, Anda dapat mempelajari Cara menggunakan penjelajah data untuk menganalisis data perangkat di IoT Central.