View a markdown version of this page

Mengambil data ke AWS IoT SiteWise From AWS IoT barang - AWS IoT SiteWise

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengambil data ke AWS IoT SiteWise From AWS IoT barang

Pelajari cara menelan data AWS IoT SiteWise dari armada AWS IoT benda dengan menggunakan bayangan perangkat dalam tutorial ini. Bayangan perangkat adalah objek JSON yang menyimpan informasi status saat ini untuk AWS IoT perangkat. Untuk informasi selengkapnya, lihat Layanan bayangan perangkat di Panduan AWS IoT Pengembang.

Setelah Anda menyelesaikan tutorial ini, Anda dapat mengatur operasi AWS IoT SiteWise berdasarkan AWS IoT hal-hal. Dengan menggunakan AWS IoT hal-hal, Anda dapat mengintegrasikan operasi Anda dengan fitur berguna lainnya AWS IoT. Misalnya, Anda dapat mengonfigurasi AWS IoT fitur untuk melakukan tugas-tugas berikut:

  • Konfigurasikan aturan tambahan untuk mengalirkan data ke AWS IoT Events, Amazon DynamoDB, dan layanan lainnya AWS . Untuk informasi selengkapnya, lihat Aturan di Panduan AWS IoT Pengembang.

  • Indeks, cari, dan kumpulkan data perangkat Anda dengan layanan pengindeksan AWS IoT armada. Untuk informasi selengkapnya, lihat layanan pengindeksan armada di AWS IoT Panduan Pengembang.

  • Audit dan amankan perangkat Anda dengan AWS IoT Device Defender. Untuk informasi lebih lanjut, lihat AWS IoT Device Defender dalam Panduan Pengembang AWS IoT .

Dalam tutorial ini, Anda belajar cara menyerap data dari bayangan perangkat AWS IoT benda ke aset di dalamnya. AWS IoT SiteWise Untuk melakukannya, Anda membuat satu atau lebih AWS IoT hal dan menjalankan skrip yang memperbarui bayangan perangkat setiap hal dengan CPU dan data penggunaan memori. Anda menggunakan data penggunaan CPU dan memori dalam tutorial ini untuk meniru data sensor yang realistis. Kemudian, Anda membuat aturan dengan AWS IoT SiteWise tindakan yang mengirimkan data ini ke aset AWS IoT SiteWise setiap kali bayangan perangkat diperbarui. Untuk informasi selengkapnya, lihat Menelan data untuk AWS IoT SiteWise menggunakan aturan AWS IoT Core.

Prasyarat

Untuk menyelesaikan tutorial ini, Anda memerlukan hal berikut:

  • Sebuah AWS akun. Jika Anda tidak memilikinya, lihat Menyiapkan AWS akun.

  • Komputer pengembangan yang berjalan WindowsmacOS,Linux,, atau Unix untuk mengakses Konsol Manajemen AWS. Untuk informasi lebih lanjut, lihat Memulai dengan Konsol Manajemen AWS.

  • Pengguna AWS Identity and Access Management (IAM) dengan izin administrator.

  • Python3 diinstal pada komputer pengembangan Anda atau diinstal pada perangkat yang ingin Anda daftarkan sebagai AWS IoT sesuatu.

Langkah 1: Buat AWS IoT kebijakan

Dalam prosedur ini, buat AWS IoT kebijakan yang memungkinkan AWS IoT hal-hal Anda mengakses sumber daya yang digunakan dalam tutorial ini.

Console

Gunakan prosedur berikut untuk membuat AWS IoT kebijakan menggunakan AWS IoT Core konsol:

Untuk membuat sebuah AWS IoT kebijakan
  1. Masuk ke Konsol Manajemen AWS.

  2. Tinjau AWS Wilayah di AWS IoT SiteWise mana didukung. Beralih ke salah satu Wilayah yang didukung ini, jika perlu.

  3. Navigasikan ke konsol AWS IoT tersebut. Jika tombol Hubungkan perangkat muncul, pilih.

  4. Di panel navigasi kiri, pilih Keamanan dan kemudian pilih Kebijakan.

  5. Pilih Buat.

  6. Masukkan nama untuk AWS IoT kebijakan (misalnya,SiteWiseTutorialDevicePolicy).

  7. Di bawah Dokumen kebijakan, pilih JSON untuk memasukkan kebijakan berikut dalam bentuk JSON. Ganti region dan account-id dengan Wilayah dan ID akun Anda, seperti us-east-1 dan123456789012.

    JSON
    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:Connect", "Resource": "arn:aws:iot:us-east-1:123456789012:client/SiteWiseTutorialDevice*" }, { "Effect": "Allow", "Action": "iot:Publish", "Resource": [ "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/${iot:Connection.Thing.ThingName}/shadow/update", "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/${iot:Connection.Thing.ThingName}/shadow/delete", "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/${iot:Connection.Thing.ThingName}/shadow/get" ] }, { "Effect": "Allow", "Action": "iot:Receive", "Resource": [ "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/${iot:Connection.Thing.ThingName}/shadow/update/accepted", "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/${iot:Connection.Thing.ThingName}/shadow/delete/accepted", "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/${iot:Connection.Thing.ThingName}/shadow/get/accepted", "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/${iot:Connection.Thing.ThingName}/shadow/update/rejected", "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/${iot:Connection.Thing.ThingName}/shadow/delete/rejected" ] }, { "Effect": "Allow", "Action": "iot:Subscribe", "Resource": [ "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/${iot:Connection.Thing.ThingName}/shadow/update/accepted", "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/${iot:Connection.Thing.ThingName}/shadow/delete/accepted", "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/${iot:Connection.Thing.ThingName}/shadow/get/accepted", "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/${iot:Connection.Thing.ThingName}/shadow/update/rejected", "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/${iot:Connection.Thing.ThingName}/shadow/delete/rejected" ] }, { "Effect": "Allow", "Action": [ "iot:GetThingShadow", "iot:UpdateThingShadow", "iot:DeleteThingShadow" ], "Resource": "arn:aws:iot:us-east-1:123456789012:thing/SiteWiseTutorialDevice*" } ] }
  8. Pilih Buat.

AWS CLI
penting

Kebijakan ini menggunakan wildcard agar tetap berada dalam batas ukuran AWS IoT SiteWise CLI. Untuk izin yang lebih ketat dengan jalur topik eksplisit, buat kebijakan melalui AWS IoT SiteWise konsol sebagai gantinya. Untuk informasi selengkapnya, lihat contoh kebijakan IoT yang disediakan di tab.

Gunakan AWS CLI perintah berikut untuk membuat kebijakan IoT:

aws iot create-policy \ --policy-name "SiteWiseTutorialDevicePolicy" \ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:Connect", "Resource": "arn:aws:iot:region:account-id:client/SiteWiseTutorialDevice*" }, { "Effect": "Allow", "Action": ["iot:Publish", "iot:Receive"], "Resource": [ "arn:aws:iot:region:account-id:topic/$aws/things/${iot:Connection.Thing.ThingName}/shadow/*" ] }, { "Effect": "Allow", "Action": "iot:Subscribe", "Resource": [ "arn:aws:iot:region:account-id:topicfilter/$aws/things/${iot:Connection.Thing.ThingName}/shadow/*" ] }, { "Effect": "Allow", "Action": [ "iot:GetThingShadow", "iot:UpdateThingShadow", "iot:DeleteThingShadow" ], "Resource": "arn:aws:iot:region:account-id:thing/SiteWiseTutorialDevice*" } ] }'

Untuk memverifikasi bahwa kebijakan Anda berhasil dibuat, gunakan perintah berikut:

aws iot get-policy --policy-name "SiteWiseTutorialDevicePolicy"

Kebijakan ini memungkinkan AWS IoT perangkat Anda untuk membuat koneksi dan berkomunikasi dengan bayangan perangkat menggunakan pesan MQTT. Untuk informasi selengkapnya tentang pesan MQTT, lihat Apa itu MQTT? . Untuk berinteraksi dengan bayangan perangkat, AWS IoT barang Anda memublikasikan dan menerima pesan MQTT tentang topik yang dimulai dengan$aws/things/thing-name/shadow/. Kebijakan ini menggabungkan variabel kebijakan yang dikenal sebagai${iot:Connection.Thing.ThingName}. Variabel ini menggantikan nama benda yang terhubung di setiap topik. Per iot:Connect nyataan menetapkan batasan perangkat mana yang dapat membuat koneksi, memastikan bahwa variabel kebijakan hal hanya dapat menggantikan nama yang dimulai denganSiteWiseTutorialDevice.

Untuk informasi selengkapnya, lihat Variabel kebijakan Th ing di Panduan AWS IoT Pengembang.

catatan

Kebijakan ini berlaku untuk hal-hal yang namanya dimulai denganSiteWiseTutorialDevice. Untuk menggunakan nama yang berbeda untuk barang-barang Anda, Anda harus memperbarui kebijakan yang sesuai.

Langkah 2: Buat dan konfigurasikan AWS IoT hal

Dalam prosedur ini, Anda membuat dan mengkonfigurasi AWS IoT sesuatu. Anda dapat menetapkan komputer pengembangan Anda sebagai AWS IoT sesuatu. Saat Anda maju, ingatlah bahwa prinsip-prinsip yang Anda pelajari di sini dapat diterapkan pada proyek aktual. Anda memiliki fleksibilitas untuk membuat dan mengatur AWS IoT hal-hal di perangkat apa pun yang mampu menjalankan AWS IoT SDK, termasuk AWS IoT Greengrass dan FreeRTOS. Untuk informasi selengkapnya, lihat AWS IoT SDK di Panduan Peng AWS IoT embang.

Console
Untuk membuat dan mengkonfigurasi AWS IoT hal
  1. Buka baris perintah dan jalankan perintah berikut untuk membuat direktori untuk tutorial ini.

    mkdir iot-sitewise-rule-tutorial cd iot-sitewise-rule-tutorial
  2. Jalankan perintah berikut untuk membuat direktori untuk sertifikat barang Anda.

    mkdir device1

    Jika Anda membuat hal-hal tambahan, tambahkan nomor dalam nama direktori sesuai untuk melacak sertifikat mana yang dimiliki benda mana.

  3. Navigasikan ke konsol AWS IoT tersebut.

  4. Di panel navigasi kiri, pilih Semua perangkat di bagian Kelola. Lalu, pilih Berbagai hal.

  5. Jika kotak dialog Anda belum memiliki hal-hal apa pun muncul, pilih Buat sesuatu. Jika tidak, pilih Buat sesuatu.

  6. Pada halaman Membuat hal-hal, pilih Buat satu hal dan kemudian pilih Ber ikutnya.

  7. Pada halaman Properti T entukan hal, masukkan nama untuk AWS IoT benda Anda (misalnya,SiteWiseTutorialDevice1) lalu pilih Ber ikutnya. Jika Anda membuat hal-hal tambahan, tambahkan nomor dalam nama benda yang sesuai.

    penting

    Nama benda harus sesuai dengan nama yang digunakan dalam kebijakan yang Anda buat di Langkah 1: Membuat AWS IoT kebijakan. Jika tidak, perangkat Anda tidak dapat terhubung ke AWS IoT.

  8. Pada halaman Konfigurasi sertifikat perangkat - opsional, pilih Auto-generate sertifikat baru (disarankan), lalu pilih Ber ikutnya. Sertifik AWS IoT at memungkinkan untuk mengidentifikasi perangkat Anda dengan aman.

  9. Pada halaman Lampirkan kebijakan ke sertifikat - opsional, pilih kebijakan yang Anda buat di Langkah 1: Membuat AWS IoT kebijakan dan pilih Buat hal.

  10. Pada kotak dialog Unduh sertifikat dan kunci, lakukan hal berikut:

    1. Pilih tautan Unduh untuk mengunduh sertifikat barang Anda, kunci publik, dan kunci pribadi. Simpan ketiga file ke direktori yang Anda buat untuk sertifikat benda Anda (misalnya,iot-sitewise-rule-tutorial/device1).

      penting

      Ini adalah satu-satunya waktu Anda dapat mengunduh sertifikat dan kunci barang Anda, yang Anda perlukan agar perangkat Anda berhasil terhubung AWS IoT.

    2. Pilih tautan Unduh untuk mengunduh sertifikat CA root. Simpan sertifikat CA root keiot-sitewise-rule-tutorial. Kami merekomendasikan mengunduh Amazon Root CA 1.

  11. Pilih Selesai.

AWS CLI

Ikuti langkah-langkah ini untuk membuat dan mengkonfigurasi AWS IoT sesuatu menggunakan AWS CLI:

  1. Buka baris perintah dan jalankan perintah berikut untuk membuat direktori untuk tutorial ini:

    mkdir iot-sitewise-rule-tutorial
  2. Arahkan ke direktori tutorial:

    cd iot-sitewise-rule-tutorial
  3. Jalankan perintah berikut untuk membuat direktori untuk sertifikat barang Anda:

    mkdir device1

    Jika Anda membuat hal-hal tambahan, tambahkan nomor dalam nama direktori sesuai untuk melacak sertifikat mana yang dimiliki benda mana.

  4. Buat AWS IoT sesuatu:

    aws iot create-thing --thing-name "SiteWiseTutorialDevice1"
    penting

    Nama benda harus sesuai dengan pola nama yang digunakan dalam kebijakan yang Anda buat di Langkah 1. Jika tidak, perangkat Anda tidak dapat terhubung ke AWS IoT.

  5. Buat sertifikat dan simpan file. Perhatikan sertifikat ARN dari output - Anda akan membutuhkannya dalam langkah berikutnya:

    aws iot create-keys-and-certificate \ --set-as-active \ --certificate-pem-outfile "device1/device.pem.crt" \ --public-key-outfile "device1/public.pem.key" \ --private-key-outfile "device1/private.pem.key"
  6. Lampirkan kebijakan yang Anda buat di Langkah 1 ke sertifikat:

    aws iot attach-policy \ --policy-name "SiteWiseTutorialDevicePolicy" \ --target "certificate-arn"
  7. Lampirkan sertifikat ke benda itu:

    aws iot attach-thing-principal \ --thing-name "SiteWiseTutorialDevice1" \ --principal "certificate-arn"
  8. Unduh sertifikat CA root Amazon:

    curl https://www.amazontrust.com/repository/AmazonRootCA1.pem > AmazonRootCA1.pem

    Sertifikat ini diperlukan agar perangkat Anda berhasil terhubung AWS IoT.

penting

Simpan sertifikat dan kunci Anda dengan aman. Anda tidak dapat mengunduh kredenSIAL ini lagi setelah membuatnya.

Anda sekarang telah mendaftarkan AWS IoT sesuatu di komputer Anda. Ambil salah satu langkah berikut:

  • Lanjutkan ke Langkah 3: Membuat model aset perangkat tanpa membuat AWS IoT hal-hal tambahan. Anda dapat menyelesaikan tutorial ini hanya dengan satu hal.

  • Ulangi langkah-langkah di bagian ini di komputer atau perangkat lain untuk membuat lebih banyak AWS IoT hal. Untuk tutorial ini, kami sarankan Anda mengikuti opsi ini sehingga Anda dapat menyerap data penggunaan CPU dan memori unik dari beberapa perangkat.

  • Ulangi langkah-langkah di bagian ini pada perangkat yang sama (komputer Anda) untuk membuat lebih banyak AWS IoT hal. Setiap AWS IoT hal menerima data penggunaan CPU dan memori yang serupa dari komputer Anda, jadi gunakan pendekatan ini untuk menunjukkan konsumsi data non-unik dari beberapa perangkat.

Langkah 3: Buat model aset perangkat

Dalam prosedur ini, Anda membuat model aset AWS IoT SiteWise untuk mewakili perangkat Anda yang melakukan streaming CPU dan data penggunaan memori. Untuk memproses data dalam aset yang mewakili kelompok perangkat, model aset menerapkan informasi yang konsisten di beberapa aset dengan jenis yang sama. Untuk informasi selengkapnya, lihat Model aset industri.

Untuk membuat model aset yang mewakili perangkat
  1. Navigasikan ke konsol AWS IoT SiteWise tersebut.

  2. Di panel navigasi kiri, pilih Model.

  3. Pilih Buat model aset.

  4. Di bawah Detail model, masukkan nama untuk model Anda. Misalnya, SiteWise Tutorial Device Model.

  5. Di bawah Definisi pengukuran, lakukan hal berikut:

    1. Di Nama, masukkan CPU Usage.

    2. Di Unit, masukkan%.

    3. Biarkan tipe Data sebagai Double.

    Properti pengukuran mewakili aliran data mentah perangkat. Untuk informasi selengkapnya, lihat Tentukan aliran data dari peralatan (pengukuran).

  6. Pilih Tambahkan pengukuran baru untuk menambahkan properti pengukuran kedua.

  7. Di baris kedua di bawah Definisi pengukuran, lakukan hal berikut:

    1. Di Nama, masukkan Memory Usage.

    2. Di Unit, masukkan%.

    3. Biarkan tipe Data sebagai Double.

  8. Di bawah Definisi metrik, lakukan hal berikut:

    1. Di Nama, masukkan Average CPU Usage.

    2. Di Formula, masukkanavg(CPU Usage). Pilih CPU Usage dari daftar pelengkapan otomatis saat muncul.

    3. Di Interval waktu, masukkan5 minutes.

    Properti metrik menentukan perhitungan agregasi yang memproses semua titik data input selama interval dan menghasilkan satu titik data per interval. Properti metrik ini menghitung penggunaan CPU rata-rata setiap perangkat setiap 5 menit. Untuk informasi selengkapnya, lihat Data agregat dari properti dan aset lainnya (metrik).

  9. Pilih Tambahkan metrik baru untuk menambahkan properti metrik kedua.

  10. Di baris kedua di bawah Definisi metrik, lakukan hal berikut:

    1. Di Nama, masukkan Average Memory Usage.

    2. Di Formula, masukkanavg(Memory Usage). Pilih Memory Usage dari daftar pelengkapan otomatis saat muncul.

    3. Di Interval waktu, masukkan5 minutes.

    Properti metrik ini menghitung penggunaan memori rata-rata setiap perangkat setiap 5 menit.

  11. (Opsional) Tambahkan metrik tambahan lain yang ingin Anda hitung per perangkat. Beberapa fungsi menarik termasuk min danmax. Untuk informasi selengkapnya, lihat Gunakan ekspresi rumus. Pada Langkah 4: Membuat model aset armada perangkat, Anda membuat aset induk yang dapat menghitung metrik menggunakan data dari seluruh armada perangkat Anda.

  12. Pilih Buat model.

Langkah 4: Buat model aset armada perangkat

Dalam prosedur ini, Anda membuat model aset AWS IoT SiteWise untuk melambangkan koleksi perangkat Anda. Dalam model aset ini, Anda membuat struktur yang memungkinkan Anda menautkan banyak aset perangkat ke satu aset armada menyeluruh. Setelah itu, Anda menguraikan metrik dalam model aset armada untuk mengkonsolidasikan data dari semua aset perangkat yang terhubung. Pendekatan ini memberi Anda wawasan komprehensif tentang kinerja kolektif seluruh armada Anda.

Untuk membuat model aset yang mewakili armada perangkat
  1. Navigasikan ke konsol AWS IoT SiteWise tersebut.

  2. Di panel navigasi kiri, pilih Model.

  3. Pilih Buat model aset.

  4. Di bawah Detail model, masukkan nama untuk model Anda. Misalnya, SiteWise Tutorial Device Fleet Model.

  5. Di bawah Definisi hierarki, lakukan hal berikut:

    1. Di Nama hierarki, masukkanDevice.

    2. Di Model hierarki, pilih model aset perangkat Anda (SiteWise Tutorial Device Model).

    Hirarki mendefinisikan hubungan antara model aset induk (armada) dan model aset anak (perangkat). Aset induk dapat mengakses data properti aset anak. Saat membuat aset nanti, Anda perlu mengaitkan aset anak ke aset induk sesuai dengan definisi hierarki dalam model aset induk. Untuk informasi selengkapnya, lihat Hierarki aset mewakili hubungan peralatan.

  6. Di bawah Definisi metrik, lakukan hal berikut:

    1. Di Nama, masukkan Average CPU Usage.

    2. Di Formula, masukkanavg(Device | Average CPU Usage). Saat daftar pelengkapan otomatis muncul, pilih Device untuk memilih hierarki, lalu pilih Average CPU Usage untuk memilih metrik dari aset perangkat yang Anda buat sebelumnya.

    3. Di Interval waktu, masukkan5 minutes.

    Properti metrik ini menghitung rata-rata penggunaan CPU dari semua aset perangkat yang terkait dengan aset armada melalui Device hierarki.

  7. Pilih Tambahkan metrik baru untuk menambahkan properti metrik kedua.

  8. Di baris kedua di bawah Definisi metrik, lakukan hal berikut:

    1. Di Nama, masukkan Average Memory Usage.

    2. Di Formula, masukkanavg(Device | Average Memory Usage). Saat daftar pelengkapan otomatis muncul, pilih Device untuk memilih hierarki, lalu pilih Average Memory Usage untuk memilih metrik dari aset perangkat yang Anda buat sebelumnya.

    3. Di Interval waktu, masukkan5 minutes.

    Properti metrik ini menghitung penggunaan memori rata-rata semua aset perangkat yang terkait dengan aset armada melalui Device hierarki.

  9. (Opsional) Tambahkan metrik tambahan lain yang ingin Anda hitung di seluruh armada perangkat Anda.

  10. Pilih Buat model.

Langkah 5: Membuat dan mengonfigurasi aset perangkat

Dalam prosedur ini, Anda membuat aset perangkat yang didasarkan pada model aset perangkat Anda. Kemudian, Anda menentukan alias properti untuk setiap properti pengukuran. Alias properti adalah string unik yang mengidentifikasi properti aset. Kemudian, Anda dapat mengidentifikasi properti untuk diunggah data dengan menggunakan alias alih-alih ID aset dan ID properti. Untuk informasi selengkapnya, lihat Mengelola aliran data untuk AWS IoT SiteWise.

Untuk membuat aset perangkat dan menentukan alias properti
  1. Navigasikan ke konsol AWS IoT SiteWise tersebut.

  2. Di panel navigasi kiri, pilih A set.

  3. Pilih Buat aset.

  4. Di bawah Informasi model, pilih model aset perangkat Anda,SiteWise Tutorial Device Model.

  5. Di bawah Informasi aset, masukkan nama untuk aset Anda. Misalnya, SiteWise Tutorial Device 1.

  6. Pilih Buat aset.

  7. Untuk aset perangkat baru Anda, pilih Edit.

  8. Di bawah Pengukuran:

    1. Di bawah CPU Usage, masukkan /tutorial/device/SiteWiseTutorialDevice1/cpu sebagai alias properti. Anda menyer AWS IoT takan nama benda di alias properti, sehingga Anda dapat menyerap data dari semua perangkat Anda menggunakan satu AWS IoT aturan.

    2. Di bawah Memory Usage, masukkan /tutorial/device/SiteWiseTutorialDevice1/memory sebagai alias properti.

  9. Pilih Simpan.

Jika Anda membuat beberapa AWS IoT hal sebelumnya, ulangi langkah 3 hingga 10 untuk setiap perangkat, dan tambahkan nomor dalam nama aset dan alias properti yang sesuai. Misalnya, nama aset perangkat kedua harusSiteWise Tutorial Device 2, dan alias propertinya harus/tutorial/device/SiteWiseTutorialDevice2/cpu, dan/tutorial/device/SiteWiseTutorialDevice2/memory.

Langkah 6: Membuat dan mengonfigurasi aset armada perangkat

Dalam prosedur ini, Anda membentuk aset armada perangkat yang berasal dari model aset armada perangkat Anda. Kemudian, Anda menautkan aset perangkat individual Anda ke aset armada. Asosiasi ini memungkinkan properti metrik aset armada untuk mengkompilasi dan menganalisis data dari beberapa perangkat. Data ini memberi Anda pandangan konsolidasi tentang kinerja kolektif seluruh armada.

Untuk membuat aset armada perangkat dan mengaitkan aset perangkat
  1. Navigasikan ke konsol AWS IoT SiteWise tersebut.

  2. Di panel navigasi kiri, pilih A set.

  3. Pilih Buat aset.

  4. Di bawah Informasi model, pilih model aset armada perangkat Anda,SiteWise Tutorial Device Fleet Model.

  5. Di bawah Informasi aset, masukkan nama untuk aset Anda. Misalnya, SiteWise Tutorial Device Fleet 1.

  6. Pilih Buat aset.

  7. Untuk aset armada perangkat baru Anda, pilih Edit.

  8. Di bawah Aset yang terkait dengan aset ini, pilih Tambahkan aset terkait dan lakukan hal berikut:

    1. Di bawah Hierarki, pilih Device. Hirarki ini mengidentifikasi hubungan hierarkis antara aset armada perangkat dan perangkat. Anda mendefinisikan hierarki ini dalam model aset armada perangkat sebelumnya dalam tutorial ini.

    2. Di bawah Aset, pilih aset perangkat Anda, SiteWise Tutorial Device 1.

  9. (Opsional) Jika Anda membuat beberapa aset perangkat sebelumnya, ulangi langkah 8 hingga 10 untuk setiap aset perangkat yang Anda buat.

  10. Pilih Simpan.

    Anda sekarang harus melihat aset perangkat Anda diatur sebagai hierarki.

Langkah 7: Buat aturan di AWS IoT Inti untuk mengirim data ke aset perangkat

Dalam prosedur ini, Anda menetapkan aturan di AWS IoT Core. Aturan ini dirancang untuk menafsirkan pesan notifikasi dari bayangan perangkat dan mengirimkan data ke aset perangkat Anda di AWS IoT SiteWise. Setiap kali bayangan perangkat Anda diperbarui, AWS IoT mengirimkan pesan MQTT. Anda dapat membuat aturan yang mengambil tindakan saat bayangan perangkat berubah berdasarkan pesan MQTT. Dalam hal ini, tujuannya adalah untuk menangani pesan pembaruan, mengekstrak nilai properti, dan mengirimkannya ke aset perangkat Anda di AWS IoT SiteWise.

Untuk membuat aturan dengan AWS IoT SiteWise tindakan
  1. Navigasikan ke konsol AWS IoT tersebut.

  2. Di panel navigasi kiri, pilih Perutean pesan dan kemudian pilih A turan.

  3. Pilih Buat aturan.

  4. Masukkan nama dan deskripsi untuk aturan Anda dan pilih Ber ikutnya.

  5. Masukkan pernyataan SQL berikut dan pilih Ber ikutnya.

    SELECT * FROM '$aws/things/+/shadow/update/accepted' WHERE startsWith(topic(3), "SiteWiseTutorialDevice")

    Pernyataan kueri aturan ini berfungsi karena layanan bayangan perangkat menerbitkan pembaruan bayangan ke$aws/things/thingName/shadow/update/accepted. Untuk informasi selengkapnya tentang bayangan perangkat, lihat Layanan bayangan perangkat di Panduan AWS IoT Pengembang.

    Dalam WHERE klausa, pernyataan kueri aturan ini menggunakan topic(3) fungsi untuk mendapatkan nama benda dari segmen ketiga topik. Kemudian, pernyataan menyaring perangkat yang memiliki nama yang tidak cocok dengan perangkat tutorial. Untuk informasi selengkapnya tentang AWS IoT SQL, lihat referensi AWS IoT SQL di Panduan AWS IoT Pengembang.

  6. Di bawah Tind akan aturan, pilih Kirim data pesan ke properti aset di AWS IoT SiteWise dan lakukan hal berikut:

    1. Pilih Berdasarkan alias properti.

    2. Di alias properti, masukkan/tutorial/device/${topic(3)}/cpu.

      ${...}Sintaks adalah template substitusi. AWS IoT mengevaluasi isi dalam kawat gigi. Template substitusi ini menarik nama benda dari topik untuk membuat alias unik untuk setiap hal. Untuk informasi selengkapnya, lihat Template substitusi di Panduan AWS IoT Pengembang.

      catatan

      Karena ekspresi dalam template substitusi dievaluasi secara terpisah dari SELECT pernyataan, Anda tidak dapat menggunakan template substitusi untuk mereferensikan alias yang dibuat menggunakan AS klausa. Anda hanya dapat merujuk informasi yang ada di muatan asli, selain fungsi dan operator yang didukung.

    3. Di ID Entri - opsional , masukkan${concat(topic(3), "-cpu-", floor(state.reported.timestamp))}.

      ID entri secara unik mengidentifikasi setiap upaya entri nilai. Jika entri mengembalikan kesalahan, Anda dapat menemukan ID entri di keluaran kesalahan untuk memecahkan masalah. Template substitusi dalam ID entri ini menggabungkan nama benda dan stempel waktu perangkat yang dilaporkan. Misalnya, ID entri yang dihasilkan mungkin terlihat sepertiSiteWiseTutorialDevice1-cpu-1579808494.

    4. Dalam Waktu dalam detik, masukkan${floor(state.reported.timestamp)}.

      Template substitusi ini menghitung waktu dalam detik dari cap waktu perangkat yang dilaporkan. Dalam tutorial ini, perangkat melaporkan stempel waktu dalam hitungan detik dalam waktu zaman Unix sebagai angka float point.

    5. Di Offset di nano - opsional , masukkan${floor((state.reported.timestamp % 1) * 1E9)}.

      Template substitusi ini menghitung offset nanodetik dari waktu dalam detik dengan mengubah bagian desimal dari cap waktu yang dilaporkan perangkat.

      catatan

      AWS IoT SiteWise mengharuskan data Anda memiliki stempel waktu saat ini dalam waktu zaman Unix. Jika perangkat Anda tidak melaporkan waktu secara akurat, Anda bisa mendapatkan waktu saat ini dari mesin AWS IoT aturan dengan timestamp (). Fungsi ini melaporkan waktu dalam milidetik, jadi Anda harus memperbarui parameter waktu tindakan aturan Anda ke nilai berikut:

      • Dalam Waktu dalam detik, masukkan${floor(timestamp() / 1E3)}.

      • Di Offset in nano, masukkan${(timestamp() % 1E3) * 1E6}.

    6. Di Jenis data, pilih Double.

      Tipe data ini harus sesuai dengan tipe data properti aset yang Anda tentukan dalam model aset.

    7. Dalam Value (Nilai), masukkan ${state.reported.cpu}. Dalam template substitusi, Anda menggunakan . operator untuk mengambil nilai dari dalam struktur JSON.

    8. Pilih Tambah entri untuk menambahkan entri baru untuk properti penggunaan memori, dan selesaikan langkah-langkah berikut lagi untuk properti itu:

      1. Pilih Berdasarkan alias properti.

      2. Di alias properti, masukkan/tutorial/device/${topic(3)}/memory.

      3. Di ID Entri - opsional , masukkan${concat(topic(3), "-memory-", floor(state.reported.timestamp))}.

      4. Dalam Waktu dalam detik, masukkan${floor(state.reported.timestamp)}.

      5. Di Offset di nano - opsional , masukkan${floor((state.reported.timestamp % 1) * 1E9)}.

      6. Di Jenis data, pilih Double.

      7. Dalam Value (Nilai), masukkan ${state.reported.memory}.

    9. Di bawah Peran IAM, pilih Buat peran baru untuk membuat peran IAM untuk tindakan aturan ini. Peran ini memungkinkan AWS IoT untuk mendorong data ke properti di aset armada perangkat Anda dan hierarki asetnya.

    10. Masukkan nama peran dan pilih Buat.

  7. (Opsional) Konfigurasikan tindakan kesalahan yang dapat Anda gunakan untuk memecahkan masalah aturan Anda. Untuk informasi selengkapnya, lihat Memecahkan masalah aturan (AWS IoT SiteWise).

  8. Pilih Berikutnya.

  9. Tinjau pengaturan dan pilih Buat untuk membuat aturan.

Langkah 8: Jalankan skrip klien perangkat

Untuk tutorial ini, Anda tidak menggunakan perangkat aktual untuk melaporkan data. Sebagai gantinya, Anda menjalankan skrip untuk memperbarui AWS IoT bayangan perangkat Anda dengan penggunaan CPU dan memori untuk meniru data sensor nyata. Untuk menjalankan skrip, Anda harus terlebih dahulu menginstal Python paket yang diperlukan. Dalam prosedur ini, Anda menginstal Python paket yang diperlukan dan kemudian menjalankan skrip klien perangkat.

Untuk mengkonfigurasi dan menjalankan skrip klien perangkat
  1. Navigasikan ke konsol AWS IoT tersebut.

  2. Di bagian bawah panel navigasi kiri, pilih Peng aturan.

  3. Simpan titik akhir kustom Anda untuk digunakan dengan skrip klien perangkat. Anda menggunakan titik akhir ini untuk berinteraksi dengan bayangan benda Anda. Titik akhir ini unik untuk akun Anda di Wilayah saat ini.

    Titik akhir kustom Anda akan terlihat seperti contoh berikut.

    identifier.iot.region.amazonaws.com
  4. Buka baris perintah dan jalankan perintah berikut untuk menavigasi ke direktori tutorial yang Anda buat sebelumnya.

    cd iot-sitewise-rule-tutorial
  5. Jalankan perintah berikut untuk menginstal AWS IoT Device SDK for Python.

    pip3 install AWSIoTPythonSDK

    Untuk informasi selengkapnya, lihat AWS IoT Device SDK for Python di Panduan AWS IoT Pengembang

  6. Jalankan perintah berikut untuk menginstal psutil, proses lintas platform dan pustaka utilitas sistem.

    pip3 install psutil

    Untuk informasi lebih lanjut, lihat psutil di Indeks Paket Python.

  7. Buat file yang di thing_performance.py panggil di iot-sitewise-rule-tutorial direktori dan kemudian salin kode Python berikut ke dalam file.

    import AWSIoTPythonSDK.MQTTLib as AWSIoTPyMQTT import json import psutil import argparse import logging import time # Configures the argument parser for this program. def configureParser(): parser = argparse.ArgumentParser() parser.add_argument( "-e", "--endpoint", action="store", required=True, dest="host", help="Your AWS IoT custom endpoint", ) parser.add_argument( "-r", "--rootCA", action="store", required=True, dest="rootCAPath", help="Root CA file path", ) parser.add_argument( "-c", "--cert", action="store", required=True, dest="certificatePath", help="Certificate file path", ) parser.add_argument( "-k", "--key", action="store", required=True, dest="privateKeyPath", help="Private key file path", ) parser.add_argument( "-p", "--port", action="store", dest="port", type=int, default=8883, help="Port number override", ) parser.add_argument( "-n", "--thingName", action="store", required=True, dest="thingName", help="Targeted thing name", ) parser.add_argument( "-d", "--requestDelay", action="store", dest="requestDelay", type=float, default=1, help="Time between requests (in seconds)", ) parser.add_argument( "-v", "--enableLogging", action="store_true", dest="enableLogging", help="Enable logging for the AWS IoT Device SDK for Python", ) return parser # An MQTT shadow client that uploads device performance data to AWS IoT at a regular interval. class PerformanceShadowClient: def __init__( self, thingName, host, port, rootCAPath, privateKeyPath, certificatePath, requestDelay, ): self.thingName = thingName self.host = host self.port = port self.rootCAPath = rootCAPath self.privateKeyPath = privateKeyPath self.certificatePath = certificatePath self.requestDelay = requestDelay # Updates this thing's shadow with system performance data at a regular interval. def run(self): print("Connecting MQTT client for {}...".format(self.thingName)) mqttClient = self.configureMQTTClient() mqttClient.connect() print("MQTT client for {} connected".format(self.thingName)) deviceShadowHandler = mqttClient.createShadowHandlerWithName( self.thingName, True ) print("Running performance shadow client for {}...\n".format(self.thingName)) while True: performance = self.readPerformance() print("[{}]".format(self.thingName)) print("CPU:\t{}%".format(performance["cpu"])) print("Memory:\t{}%\n".format(performance["memory"])) payload = {"state": {"reported": performance}} deviceShadowHandler.shadowUpdate( json.dumps(payload), self.shadowUpdateCallback, 5 ) time.sleep(args.requestDelay) # Configures the MQTT shadow client for this thing. def configureMQTTClient(self): mqttClient = AWSIoTPyMQTT.AWSIoTMQTTShadowClient(self.thingName) mqttClient.configureEndpoint(self.host, self.port) mqttClient.configureCredentials( self.rootCAPath, self.privateKeyPath, self.certificatePath ) mqttClient.configureAutoReconnectBackoffTime(1, 32, 20) mqttClient.configureConnectDisconnectTimeout(10) mqttClient.configureMQTTOperationTimeout(5) return mqttClient # Returns the local device's CPU usage, memory usage, and timestamp. def readPerformance(self): cpu = psutil.cpu_percent() memory = psutil.virtual_memory().percent timestamp = time.time() return {"cpu": cpu, "memory": memory, "timestamp": timestamp} # Prints the result of a shadow update call. def shadowUpdateCallback(self, payload, responseStatus, token): print("[{}]".format(self.thingName)) print("Update request {} {}\n".format(token, responseStatus)) # Configures debug logging for the AWS IoT Device SDK for Python. def configureLogging(): logger = logging.getLogger("AWSIoTPythonSDK.core") logger.setLevel(logging.DEBUG) streamHandler = logging.StreamHandler() formatter = logging.Formatter( "%(asctime)s - %(name)s - %(levelname)s - %(message)s" ) streamHandler.setFormatter(formatter) logger.addHandler(streamHandler) # Runs the performance shadow client with user arguments. if __name__ == "__main__": parser = configureParser() args = parser.parse_args() if args.enableLogging: configureLogging() thingClient = PerformanceShadowClient( args.thingName, args.host, args.port, args.rootCAPath, args.privateKeyPath, args.certificatePath, args.requestDelay, ) thingClient.run()
  8. J thing_performance.py alankan dari baris perintah dengan parameter berikut:

    • -n, --thingName - Nama benda Anda, sepertiSiteWiseTutorialDevice1.

    • -e, --endpoint — Titik AWS IoT akhir kustom Anda yang disimpan sebelumnya dalam prosedur ini.

    • -r, --rootCA — Jalur ke sertifikat CA AWS IoT root Anda.

    • -c, --cert — Jalan menuju sertifikat AWS IoT barang Anda.

    • -k, --key — Jalur ke kunci pribadi sertifikat AWS IoT barang Anda.

    • -d, --requestDelay - (Opsional) Waktu dalam detik untuk menunggu antara setiap pembaruan bayangan perangkat. Defaultnya 1 detik.

    • -v, --enableLogging — (Opsional) Jika parameter ini ada, skrip mencetak pesan debug dari AWS IoT Device SDK for Python.

    Perintah Anda akan terlihat mirip dengan contoh berikut.

    python3 thing_performance.py \ --thingName SiteWiseTutorialDevice1 \ --endpoint identifier.iot.region.amazonaws.com \ --rootCA AmazonRootCA1.pem \ --cert device1/thing-id-certificate.pem.crt \ --key device1/thing-id-private.pem.key

    Jika Anda menjalankan skrip untuk AWS IoT hal-hal tambahan, perbarui nama benda dan direktori sertifikat yang sesuai.

  9. Coba buka dan tutup program di perangkat Anda untuk melihat bagaimana penggunaan CPU dan memori berubah. Skrip mencetak setiap pembacaan penggunaan CPU dan memori. Jika skrip berhasil mengunggah data ke layanan bayangan perangkat, output skrip akan terlihat seperti contoh berikut.

    [SiteWiseTutorialDevice1] CPU: 24.6% Memory: 85.2% [SiteWiseTutorialDevice1] Update request e6686e44-fca0-44db-aa48-3ca81726f3e3 accepted
  10. Ikuti langkah-langkah ini untuk memverifikasi bahwa skrip memperbarui bayangan perangkat:

    1. Navigasikan ke konsol AWS IoT tersebut.

    2. Di panel navigasi kiri, pilih Semua perangkat dan kemudian pilih Th ings.

    3. Pilih barang Anda, SiteWiseTutorialDevice.

    4. Pilih tab Device Shadows, pilih Classic Shadow, dan verifikasi bahwa status Shadow terlihat seperti contoh berikut.

      { "reported": { "cpu": 24.6, "memory": 85.2, "timestamp": 1579567542.2835066 } }

      Jika status bayangan benda Anda kosong atau tidak terlihat seperti contoh sebelumnya, periksa apakah skrip sedang berjalan dan berhasil terhubung AWS IoT. Jika skrip terus habis saat menghubungkan ke AWS IoT, periksa apakah kebijakan item Anda dikonfigurasi sesuai dengan tutorial ini.

  11. Ikuti langkah-langkah berikut untuk memverifikasi bahwa tindakan aturan mengirim data ke AWS IoT SiteWise:

    1. Navigasikan ke konsol AWS IoT SiteWise tersebut.

    2. Di panel navigasi kiri, pilih A set.

    3. Pilih panah di sebelah aset armada perangkat Anda (SiteWise Tutorial Device Fleet 1) untuk memperluas hierarki asetnya, lalu pilih aset perangkat Anda (SiteWise Tutorial Device1).

    4. Pilih Pengukuran.

    5. Verifikasi bahwa sel nilai terbaru memiliki nilai untuk CPU Usage Memory Usage properti dan.

      Screenshot dengan “Pengukuran” disorot.
    6. Jika Memory Usage properti CPU Usage dan tidak memiliki nilai terbaru, segarkan halaman. Jika nilai tidak muncul setelah beberapa menit, lihatMemecahkan masalah aturan (AWS IoT SiteWise).

Anda telah menyelesaikan tutorial ini. Jika Anda ingin menjelajahi visualisasi langsung data Anda, Anda dapat mengonfigurasi portal di AWS IoT SiteWise Monitor. Untuk informasi selengkapnya, lihat Memantau data dengan AWS IoT SiteWise Monitor. Jika tidak, Anda dapat menekan CTRL+C di command prompt Anda untuk menghentikan skrip klien perangkat. Tidak mungkin program Python akan mengirim pesan yang cukup untuk dikenakan biaya, tetapi ini adalah praktik terbaik untuk menghentikan program ketika Anda selesai.

Langkah 9: Bersihkan sumber daya setelah tutorial

catatan

Sumber daya yang dibuat dalam tutorial ini diperlukan untuk mengintegrasikan data ke dalam tutorial SiteWise Edge. Jangan membersihkan sumber daya dalam langkah ini jika Anda berencana untuk menyelesaikannya.

Setelah Anda menyelesaikan tutorial tentang menelan data dari berbagai AWS IoT hal, bersihkan sumber daya Anda untuk menghindari menimbulkan biaya tambahan.

Untuk menghapus aset hierarkis di AWS IoT SiteWise
  1. Arahkan ke AWS IoT SiteWise konsol

  2. Di panel navigasi kiri, pilih A set.

  3. Saat Anda menghapus aset di AWS IoT SiteWise, Anda harus terlebih dahulu memisahkannya.

    Selesaikan langkah-langkah berikut untuk memisahkan aset perangkat Anda dari aset armada perangkat Anda:

    1. Pilih aset armada perangkat Anda (SiteWise Tutorial Device Fleet 1).

    2. Pilih Edit.

    3. Di bawah Aset yang terkait dengan aset ini, pilih Put uskan kait annya untuk setiap aset perangkat yang terkait dengan aset armada perangkat ini.

    4. Pilih Simpan.

      Anda sekarang akan melihat aset perangkat Anda tidak lagi diatur sebagai hierarki.

  4. Pilih aset perangkat Anda (SiteWise Tutorial Device1).

  5. Pilih Hapus.

  6. Dalam dialog konfirmasi, masukkan Delete dan kemudian pilih H apus.

  7. Ulangi langkah 4 hingga 6 untuk setiap aset perangkat dan aset armada perangkat (SiteWise Tutorial Device Fleet 1).

Untuk menghapus model aset hierarkis di AWS IoT SiteWise
  1. Navigasikan ke konsol AWS IoT SiteWise tersebut.

  2. Jika belum melakukannya, hapus aset armada perangkat dan perangkat Anda. Untuk informasi lebih lanjut, lihat prosedur sebelumnya. Anda tidak dapat menghapus model jika Anda memiliki aset yang dibuat dari model tersebut.

  3. Di panel navigasi kiri, pilih Model.

  4. Pilih model aset armada perangkat Anda (SiteWise Tutorial Device Fleet Model).

    Saat menghapus model aset hierarkis, mulailah dengan menghapus model aset induk terlebih dahulu.

  5. Pilih Hapus.

  6. Dalam dialog konfirmasi, masukkan Delete dan kemudian pilih H apus.

  7. Ulangi langkah 4 hingga 6 untuk model aset perangkat Anda (SiteWise Tutorial Device Model).

Untuk menonaktifkan atau menghapus aturan di AWS IoT Core
  1. Navigasikan ke konsol AWS IoT tersebut.

  2. Di panel navigasi kiri, pilih Perutean pesan dan kemudian pilih A turan.

  3. Pilih aturan Anda dan pilih H apus.

  4. Dalam dialog konfirmasi, masukkan nama aturan dan kemudian pilih H apus.