Gunakan Windows atau Linux PC atau Mac sebagai AWS IoT perangkat - AWS IoT Core

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

Gunakan Windows atau Linux PC atau Mac sebagai AWS IoT perangkat

Dalam tutorial ini, Anda akan mengkonfigurasi komputer pribadi untuk digunakan dengan AWS IoT. Instruksi ini mendukung Windows dan Linux PCs dan Mac. Untuk mencapai ini, Anda perlu menginstal beberapa perangkat lunak di komputer Anda. Jika Anda tidak ingin menginstal perangkat lunak di komputer Anda, Anda dapat mencobaBuat perangkat virtual dengan Amazon EC2, yang menginstal semua perangkat lunak pada mesin virtual.

Siapkan komputer pribadi Anda

Untuk menyelesaikan tutorial ini, Anda memerlukan PC Windows atau Linux atau Mac dengan koneksi ke internet.

Sebelum Anda melanjutkan ke langkah berikutnya, pastikan Anda dapat membuka jendela baris perintah di komputer Anda. Gunakan cmd.exe pada PC Windows. Pada PC Linux atau Mac, gunakanTerminal.

Instal Git, Python, dan AWS IoT Perangkat SDK untuk Python

Di bagian ini, Anda akan menginstal Python, dan AWS IoT Perangkat untuk SDK Python di komputer Anda.

Instal versi terbaru Git dan Python

Prosedur ini menjelaskan cara menginstal versi terbaru Git dan Python di komputer pribadi Anda.

Untuk mengunduh dan menginstal Git dan Python di komputer Anda
  1. Periksa untuk melihat apakah Anda telah menginstal Git di komputer Anda. Masukkan perintah ini di baris perintah.

    git --version

    Jika perintah menampilkan versi Git, Git diinstal dan Anda dapat melanjutkan ke langkah berikutnya.

    Jika perintah menampilkan kesalahan, buka https://git-scm.com/downloaddan instal Git untuk komputer Anda.

  2. Periksa untuk melihat apakah Anda telah menginstal Python. Masukkan perintah di baris perintah.

    python -V
    catatan

    Jika perintah ini memberikan kesalahan:Python was not found, mungkin karena sistem operasi Anda memanggil Python v3.x yang dapat dieksekusi sebagai. Python3 Dalam hal ini, ganti semua contoh python dengan python3 dan lanjutkan sisa tutorial ini.

    Jika perintah menampilkan versi Python, Python sudah diinstal. Tutorial ini membutuhkan Python v3.7 atau yang lebih baru.

  3. Jika Python diinstal, Anda dapat melewati langkah-langkah lainnya di bagian ini. Jika tidak, lanjutkan.

  4. Buka https://www.python.org/downloads/ dan unduh installer untuk komputer Anda.

  5. Jika unduhan tidak secara otomatis mulai diinstal, jalankan program yang diunduh untuk menginstal Python.

  6. Verifikasi instalasi Python.

    python -V

    Konfirmasikan bahwa perintah menampilkan versi Python. Jika versi Python tidak ditampilkan, coba unduh dan instal Python lagi.

Instal AWS IoT Perangkat SDK untuk Python

Untuk menginstal AWS IoT Perangkat SDK untuk Python di komputer Anda
  1. Instal v2 AWS IoT Perangkat SDK untuk Python.

    python3 -m pip install awsiotsdk
  2. Kloning AWS IoT Perangkat SDK untuk repositori Python ke direktori -python-v2 aws-iot-device-sdk dari direktori home Anda. Prosedur ini mengacu pada direktori dasar untuk file yang Anda instal sebagai home.

    Lokasi sebenarnya dari home direktori tergantung pada sistem operasi Anda.

    Linux/macOS

    Di macOS dan Linux, home Direktori adalah ~

    cd ~ git clone https://github.com/aws/aws-iot-device-sdk-python-v2.git
    Windows

    Di Windows, Anda dapat menemukan home path direktori dengan menjalankan perintah ini di cmd jendela.

    echo %USERPROFILE% cd %USERPROFILE% git clone https://github.com/aws/aws-iot-device-sdk-python-v2.git
    catatan

    Jika Anda menggunakan Windows PowerShell sebagai lawan daricmd.exe, maka gunakan perintah berikut.

    echo $home

Untuk informasi selengkapnya, lihat AWS IoT repositori Perangkat SDK untuk Python GitHub .

Bersiaplah untuk menjalankan aplikasi sampel

Untuk mempersiapkan sistem Anda untuk menjalankan aplikasi sampel
  • Buatlah direktori certs. Ke certs direktori, salin kunci pribadi, sertifikat perangkat, dan file sertifikat CA root yang Anda simpan saat Anda membuat dan mendaftarkan objek bendaBuat AWS IoT sumber daya. Nama file dari setiap file di direktori tujuan harus cocok dengan yang ada di tabel.

    Perintah di bagian berikutnya mengasumsikan bahwa file kunci dan sertifikat Anda disimpan di perangkat Anda seperti yang ditunjukkan dalam tabel ini.

    Linux/macOS

    Jalankan perintah ini untuk membuat certs subdirektori yang akan Anda gunakan ketika Anda menjalankan aplikasi sampel.

    mkdir ~/certs

    Ke subdirektori baru, salin file ke jalur file tujuan yang ditunjukkan pada tabel berikut.

    Nama berkas sertifikat

    File

    Jalur file

    Kunci privat

    ~/certs/private.pem.key

    Sertifikat perangkat

    ~/certs/device.pem.crt

    Sertifikat Root CA

    ~/certs/Amazon-root-CA-1.pem

    Jalankan perintah ini untuk membuat daftar file dalam certs direktori dan membandingkannya dengan yang tercantum dalam tabel.

    ls -l ~/certs
    Windows

    Jalankan perintah ini untuk membuat certs subdirektori yang akan Anda gunakan ketika Anda menjalankan aplikasi sampel.

    mkdir %USERPROFILE%\certs

    Ke subdirektori baru, salin file ke jalur file tujuan yang ditunjukkan pada tabel berikut.

    Nama berkas sertifikat

    File

    Jalur file

    Kunci privat

    %USERPROFILE%\certs\private.pem.key

    Sertifikat perangkat

    %USERPROFILE%\certs\device.pem.crt

    Sertifikat Root CA

    %USERPROFILE%\certs\Amazon-root-CA-1.pem

    Jalankan perintah ini untuk membuat daftar file dalam certs direktori dan membandingkannya dengan yang tercantum dalam tabel.

    dir %USERPROFILE%\certs

Menyiapkan kebijakan dan menjalankan contoh aplikasi

Di bagian ini, Anda akan menyiapkan kebijakan dan menjalankan skrip pubsub.py sampel yang ditemukan di aws-iot-device-sdk-python-v2/samples direktori AWS IoT Device SDK for Python. Skrip ini menunjukkan cara perangkat Anda menggunakan MQTT pustaka untuk menerbitkan dan berlangganan MQTT pesan.

Aplikasi pubsub.py sampel berlangganan topiktest/topic, menerbitkan 10 pesan ke topik itu, dan menampilkan pesan saat diterima dari broker pesan.

Untuk menjalankan skrip pubsub.py sampel, Anda memerlukan informasi berikut:

Nilai parameter aplikasi

Parameter

Di mana menemukan nilainya

your-iot-endpoint
  1. Di AWS IoT konsol, di menu kiri, pilih Pengaturan.

  2. Pada halaman Pengaturan, titik akhir Anda ditampilkan di bagian titik akhir data perangkat.

Bagian your-iot-endpoint nilai memiliki format:endpoint_id-ats.iot.region.amazonaws.com, misalnya,a3qj468EXAMPLE-ats.iot.us-west-2.amazonaws.com.

Sebelum menjalankan skrip, pastikan kebijakan hal Anda memberikan izin untuk skrip sampel untuk terhubung, berlangganan, menerbitkan, dan menerima.

Untuk menemukan dan meninjau dokumen kebijakan untuk sumber daya sesuatu
  1. Di AWS IoT konsol, di daftar Things, temukan sumber daya benda yang mewakili perangkat Anda.

  2. Pilih tautan Nama dari sumber daya benda yang mewakili perangkat Anda untuk membuka halaman Detail hal.

  3. Di halaman Detail hal, di tab Sertifikat, pilih sertifikat yang dilampirkan ke sumber daya benda. Seharusnya hanya ada satu sertifikat dalam daftar. Jika ada lebih dari satu, pilih sertifikat yang filenya diinstal pada perangkat Anda dan yang akan digunakan untuk terhubung AWS IoT Core.

    Di halaman Detail sertifikat, di tab Kebijakan, pilih kebijakan yang dilampirkan pada sertifikat. Seharusnya hanya ada satu. Jika ada lebih dari satu, ulangi langkah berikutnya untuk masing-masing untuk memastikan bahwa setidaknya satu kebijakan memberikan akses yang diperlukan.

  4. Di halaman Ringkasan kebijakan, temukan JSON editor dan pilih Edit dokumen kebijakan untuk meninjau dan mengedit dokumen kebijakan sesuai kebutuhan.

  5. Kebijakan JSON ditampilkan dalam contoh berikut. Dalam "Resource" elemen, ganti region:account dengan Anda Wilayah AWS dan Akun AWS di setiap Resource nilai.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish", "iot:Receive" ], "Resource": [ "arn:aws:iot:region:account:topic/test/topic" ] }, { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:region:account:topicfilter/test/topic" ] }, { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": [ "arn:aws:iot:region:account:client/test-*" ] } ] }
Linux/macOS
Untuk menjalankan skrip sampel di Linux/macOS
  1. Di jendela baris perintah Anda, arahkan ke ~/aws-iot-device-sdk-python-v2/samples/node/pub_sub direktori yang SDK dibuat dengan menggunakan perintah ini.

    cd ~/aws-iot-device-sdk-python-v2/samples
  2. Di jendela baris perintah Anda, ganti your-iot-endpoint seperti yang ditunjukkan dan jalankan perintah ini.

    python3 pubsub.py --endpoint your-iot-endpoint --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key
Windows
Untuk menjalankan aplikasi sampel pada PC Windows
  1. Di jendela baris perintah Anda, navigasikan ke %USERPROFILE%\aws-iot-device-sdk-python-v2\samples direktori yang SDK dibuat dan instal aplikasi sampel dengan menggunakan perintah ini.

    cd %USERPROFILE%\aws-iot-device-sdk-python-v2\samples
  2. Di jendela baris perintah Anda, ganti your-iot-endpoint seperti yang ditunjukkan dan jalankan perintah ini.

    python3 pubsub.py --endpoint your-iot-endpoint --ca_file %USERPROFILE%\certs\Amazon-root-CA-1.pem --cert %USERPROFILE%\certs\device.pem.crt --key %USERPROFILE%\certs\private.pem.key

Contoh skrip:

  1. Terhubung ke AWS IoT Core untuk akun Anda.

  2. Berlangganan topik pesan, uji/topik, dan menampilkan pesan yang diterimanya pada topik itu.

  3. Menerbitkan 10 pesan ke topik, uji/topik.

  4. Menampilkan output yang mirip dengan berikut ini:

Connected! Subscribing to topic 'test/topic'... Subscribed with QoS.AT_LEAST_ONCE Sending 10 message(s) Publishing message to topic 'test/topic': Hello World! [1] Received message from topic 'test/topic': b'"Hello World! [1]"' Publishing message to topic 'test/topic': Hello World! [2] Received message from topic 'test/topic': b'"Hello World! [2]"' Publishing message to topic 'test/topic': Hello World! [3] Received message from topic 'test/topic': b'"Hello World! [3]"' Publishing message to topic 'test/topic': Hello World! [4] Received message from topic 'test/topic': b'"Hello World! [4]"' Publishing message to topic 'test/topic': Hello World! [5] Received message from topic 'test/topic': b'"Hello World! [5]"' Publishing message to topic 'test/topic': Hello World! [6] Received message from topic 'test/topic': b'"Hello World! [6]"' Publishing message to topic 'test/topic': Hello World! [7] Received message from topic 'test/topic': b'"Hello World! [7]"' Publishing message to topic 'test/topic': Hello World! [8] Received message from topic 'test/topic': b'"Hello World! [8]"' Publishing message to topic 'test/topic': Hello World! [9] Received message from topic 'test/topic': b'"Hello World! [9]"' Publishing message to topic 'test/topic': Hello World! [10] Received message from topic 'test/topic': b'"Hello World! [10]"' 10 message(s) received. Disconnecting... Disconnected!

Jika Anda mengalami masalah dalam menjalankan aplikasi sampel, tinjauMemecahkan masalah dengan aplikasi sampel.

Anda juga dapat menambahkan --verbosity Debug parameter ke baris perintah sehingga aplikasi sampel menampilkan pesan terperinci tentang apa yang dilakukannya. Informasi itu dapat membantu Anda memperbaiki masalah.

Melihat pesan dari aplikasi sampel di AWS IoT konsol

Anda dapat melihat pesan aplikasi sampel saat mereka melewati broker pesan dengan menggunakan klien MQTT pengujian di AWS IoT konsol.

Untuk melihat MQTT pesan yang diterbitkan oleh aplikasi sampel
  1. UlasanLihat MQTT pesan dengan AWS IoT MQTT klien. Ini membantu Anda mempelajari cara menggunakan klien MQTT pengujian di AWS IoT konsol untuk melihat MQTT pesan saat mereka melewati broker pesan.

  2. Buka klien MQTT uji di AWS IoT konsol.

  3. Di Berlangganan topik, berlangganan topik, uji/topik.

  4. Di jendela baris perintah Anda, jalankan aplikasi sampel lagi dan tonton pesan di MQTTklien di AWS IoT konsol.

    Linux/macOS
    cd ~/aws-iot-device-sdk-python-v2/samples python3 pubsub.py --topic test/topic --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpoint your-iot-endpoint
    Windows
    cd %USERPROFILE%\aws-iot-device-sdk-python-v2\samples python3 pubsub.py --topic test/topic --ca_file %USERPROFILE%\certs\Amazon-root-CA-1.pem --cert %USERPROFILE%\certs\device.pem.crt --key %USERPROFILE%\certs\private.pem.key --endpoint your-iot-endpoint

Untuk informasi selengkapnya tentang MQTT dan cara AWS IoT Core mendukung protokol, lihat MQTT.

Jalankan contoh Berlangganan Bersama dengan Python

AWS IoT Core mendukung Langganan Bersama untuk MQTT 3 dan MQTT 5. Langganan Bersama memungkinkan beberapa klien untuk berbagi langganan ke suatu topik dan hanya satu klien yang akan menerima pesan yang dipublikasikan ke topik tersebut menggunakan distribusi acak. Untuk menggunakan Langganan Bersama, klien berlangganan filter topik Langganan Bersama:$share/{ShareName}/{TopicFilter}.

Untuk menyiapkan kebijakan dan menjalankan contoh Langganan Bersama
  1. Untuk menjalankan contoh Berlangganan Bersama, Anda harus menyiapkan kebijakan hal Anda seperti yang didokumentasikan dalam MQTT5 Langganan Bersama.

  2. Untuk menjalankan contoh Berlangganan Bersama, jalankan perintah berikut.

    Linux/macOS
    Untuk menjalankan skrip sampel di Linux/macOS
    1. Di jendela baris perintah Anda, arahkan ke ~/aws-iot-device-sdk-python-v2/samples direktori yang SDK dibuat dengan menggunakan perintah ini.

      cd ~/aws-iot-device-sdk-python-v2/samples
    2. Di jendela baris perintah Anda, ganti your-iot-endpoint seperti yang ditunjukkan dan jalankan perintah ini.

      python3 mqtt5_shared_subscription.py --endpoint your-iot-endpoint --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --group_identifier consumer
    Windows
    Untuk menjalankan aplikasi sampel pada PC Windows
    1. Di jendela baris perintah Anda, navigasikan ke %USERPROFILE%\aws-iot-device-sdk-python-v2\samples direktori yang SDK dibuat dan instal aplikasi sampel dengan menggunakan perintah ini.

      cd %USERPROFILE%\aws-iot-device-sdk-python-v2\samples
    2. Di jendela baris perintah Anda, ganti your-iot-endpoint seperti yang ditunjukkan dan jalankan perintah ini.

      python3 mqtt5_shared_subscription.py --endpoint your-iot-endpoint --ca_file %USERPROFILE%\certs\Amazon-root-CA-1.pem --cert %USERPROFILE%\certs\device.pem.crt --key %USERPROFILE%\certs\private.pem.key --group_identifier consumer
    catatan

    Anda dapat secara opsional menentukan pengidentifikasi grup berdasarkan kebutuhan Anda saat menjalankan sampel (misalnya,--group_identifier consumer). Jika Anda tidak menentukannya, python-sample adalah pengidentifikasi grup default.

  3. Output di baris perintah Anda dapat terlihat seperti berikut:

    Publisher]: Lifecycle Connection Success [Publisher]: Connected Subscriber One]: Lifecycle Connection Success [Subscriber One]: Connected Subscriber Two]: Lifecycle Connection Success [Subscriber Two]: Connected [Subscriber One]: Subscribed to topic 'test/topic' in shared subscription group 'consumer'. [Subscriber One]: Full subscribed topic is: '$share/consumer/test/topic' with SubAck code: [<SubackReasonCode.GRANTED_QOS_1: 1>] [Subscriber Two]: Subscribed to topic 'test/topic' in shared subscription group 'consumer'. [Subscriber Two]: Full subscribed topic is: '$share/consumer/test/topic' with SubAck code: [<SubackReasonCode.GRANTED_QOS_1: 1>] [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber Two] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [1]"' [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber One] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [2]"' [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber Two] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [3]"' [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber One] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [4]"' [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber Two] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [5]"' [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber One] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [6]"' [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber Two] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [7]"' [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber One] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [8]"' [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber Two] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [9]"' [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber One] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [10]"' [Subscriber One]: Unsubscribed to topic 'test/topic' in shared subscription group 'consumer'. [Subscriber One]: Full unsubscribed topic is: '$share/consumer/test/topic' with UnsubAck code: [<UnsubackReasonCode.SUCCESS: 0>] [Subscriber Two]: Unsubscribed to topic 'test/topic' in shared subscription group 'consumer'. [Subscriber Two]: Full unsubscribed topic is: '$share/consumer/test/topic' with UnsubAck code [<UnsubackReasonCode.SUCCESS: 0>] Publisher]: Lifecycle Disconnected [Publisher]: Lifecycle Stopped [Publisher]: Fully stopped Subscriber One]: Lifecycle Disconnected [Subscriber One]: Lifecycle Stopped [Subscriber One]: Fully stopped Subscriber Two]: Lifecycle Disconnected [Subscriber Two]: Lifecycle Stopped [Subscriber Two]: Fully stopped Complete!
  4. Buka klien MQTT uji di AWS IoT konsol. Di Berlangganan topik, berlangganan topik Langganan Bersama seperti:$share/consumer/test/topic. Anda dapat menentukan pengidentifikasi grup berdasarkan kebutuhan Anda saat menjalankan sampel (mis.,--group_identifier consumer). Jika Anda tidak menentukan pengidentifikasi grup, nilai defaultnya adalahpython-sample. Untuk informasi selengkapnya, lihat MQTT5 contoh Python Berlangganan Bersama dan Langganan Bersama dari AWS IoT Core Panduan Pengembang.

    Di jendela baris perintah Anda, jalankan aplikasi sampel lagi dan perhatikan distribusi pesan di klien MQTT pengujian AWS IoT konsol dan baris perintah.

    Halaman keluaran langganan bersama.