Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Gunakan PC atau Mac Windows atau Linux Anda sebagai AWS IoT pesawat
Dalam tutorial ini, Anda akan mengkonfigurasi komputer pribadi untuk digunakan dengan AWS IoT. Instruksi ini mendukung Windows dan Linux PC 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.
Dalam tutorial ini, Anda akan:
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 SDK Perangkat untuk Python
Di bagian ini, Anda akan menginstal Python, dan AWS IoT Device SDK untuk Python di komputer Anda.
Instal versi terbaru dari 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
-
Periksa untuk melihat apakah Anda telah menginstal Git di komputer Anda. Masukkan perintah ini di baris perintah.
git --versionJika 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. -
Periksa untuk melihat apakah Anda sudah menginstal Python. Masukkan perintah di baris perintah.
python -Vcatatan
Jika perintah ini memberikan kesalahan:
Python was not found, itu mungkin karena sistem operasi Anda memanggil Python v3.x yang dapat dieksekusi sebagai.Python3Dalam hal ini, ganti semua instancepythondenganpython3dan lanjutkan sisa tutorial ini.Jika perintah menampilkan versi Python, Python sudah diinstal. Tutorial ini membutuhkan Python v3.7 atau yang lebih baru.
-
Jika Python diinstal, Anda dapat melewati langkah-langkah lainnya di bagian ini. Jika tidak, lanjutkan.
-
Buka https://www.python.org/downloads/
dan unduh penginstal untuk komputer Anda. -
Jika unduhan tidak secara otomatis mulai diinstal, jalankan program yang diunduh untuk menginstal Python.
-
Verifikasi instalasi Python.
python -VKonfirmasikan bahwa perintah menampilkan versi Python. Jika versi Python tidak ditampilkan, coba unduh dan instal Python lagi.
Instal AWS IoT SDK Perangkat untuk Python
Untuk menginstal AWS IoT Perangkat SDK untuk Python di komputer Anda
-
Instal v2 dari AWS IoT Device SDK untuk Python.
python3 -m pip install awsiotsdk -
Kloning AWS IoT Device SDK untuk repositori Python ke direktori aws-iot-device-sdk-python-v2 direktori home Anda. Prosedur ini mengacu pada direktori dasar untuk file yang Anda instal
home.Lokasi sebenarnya dari
homedirektori tergantung pada sistem operasi Anda.catatan
Jika Anda menggunakan Windows PowerShell sebagai lawan daricmd.exe, maka gunakan perintah berikut.
echo $home
Untuk informasi selengkapnya, lihat AWS IoT
Device SDK untuk GitHub repositori Python
Bersiaplah untuk menjalankan aplikasi sampel
Untuk mempersiapkan sistem Anda untuk menjalankan aplikasi sampel
-
Buatlah direktori
certs. Kecertsdirektori, salin kunci pribadi, sertifikat perangkat, dan file sertifikat CA root yang Anda simpan saat Anda membuat dan mendaftarkan objek benda tersebutBuat AWS IoT sumber daya. Nama file dari setiap file di direktori tujuan harus sesuai dengan yang ada di tabel.Perintah di bagian selanjutnya mengasumsikan bahwa file kunci dan sertifikat Anda disimpan di perangkat Anda seperti yang ditunjukkan dalam tabel ini.
Siapkan kebijakan dan jalankan aplikasi sampel
Di bagian ini, Anda akan mengatur 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 bagaimana perangkat Anda menggunakan pustaka MQTT untuk menerbitkan dan berlangganan pesan MQTT.
Aplikasi pubsub.py contoh berlangganan topiktest/topic, menerbitkan 10 pesan ke topik tersebut, dan menampilkan pesan yang diterima dari broker pesan.
Untuk menjalankan skrip pubsub.py sampel, Anda memerlukan informasi berikut:
|
Parameter |
Di mana menemukan nilainya |
|---|---|
your-iot-endpoint |
|
your-iot-endpointNilai memiliki format:, misalnya,endpoint_id-ats.iot.region.amazonaws.com.rproxy.goskope.coma3qj468EXAMPLE-ats.iot.us-west-2.amazonaws.com.
Sebelum menjalankan skrip, pastikan kebijakan item Anda memberikan izin untuk skrip sampel untuk menghubungkan, berlangganan, menerbitkan, dan menerima.
Untuk menemukan dan meninjau dokumen kebijakan untuk sumber daya sesuatu
-
Di AWS IoT konsol
, dalam daftar Th ings, temukan sumber daya benda yang mewakili perangkat Anda. -
Pilih tautan Nama dari sumber daya benda yang mewakili perangkat Anda untuk membuka halaman detail hal.
-
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 file-file-nya diinstal pada perangkat Anda dan yang akan digunakan untuk terhubung AWS IoT Core.
Di halaman detail sertifikat, di tab Kebijakan, pilih kebijakan yang dilampirkan ke 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.
-
Di halaman ik htisar kebijakan, cari editor JSON dan pilih Edit dokumen kebijakan untuk meninjau dan mengedit dokumen kebijakan sesuai kebutuhan.
-
JSON kebijakan ditampilkan dalam contoh berikut. Dalam
"Resource"elemen, gantidengan Anda Wilayah AWS dan Akun AWS di setiapregion:accountResourcenilai.-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish", "iot:Receive" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:topic/test/topic" ] }, { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:topicfilter/test/topic" ] }, { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:client/test-*" ] } ] }
Skrip sampel:
-
Terhubung ke AWS IoT Core untuk akun Anda.
-
Berlangganan topik pesan, test/topic, dan menampilkan pesan yang diterimanya pada topik tersebut.
-
Menerbitkan 10 pesan ke topik, test/topic.
-
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 tersebut dapat membantu Anda memperbaiki masalah.
Melihat pesan dari aplikasi contoh di AWS IoT konsol
Anda dapat melihat pesan contoh aplikasi saat melewati broker pesan dengan menggunakan klien uji MQTT di AWS IoT konsol.
Untuk melihat pesan MQTT yang diterbitkan oleh aplikasi sampel
-
TinjauanLihat pesan MQTT dengan AWS IoT Klien MQTT. Ini membantu Anda mempelajari cara menggunakan klien uji MQTT di AWS IoT konsol untuk melihat pesan MQTT saat melewati broker pesan.
-
Buka klien uji MQTT di AWS IoT konsol.
-
Di Berlangganan topik, berlangganan topik, test/topic.
-
Di jendela baris perintah Anda, jalankan aplikasi sampel lagi dan tonton pesan di klien MQTT di AWS IoT konsol.
Untuk informasi lebih lanjut tentang MQTT dan bagaimana AWS IoT Core mendukung protokol, lihat MQ TT.
Jalankan contoh Berlangganan Bersama di Python
AWS IoT Core mendukung Lang ganan Bersama untuk MQTT 3 dan MQTT 5. Langganan Bersama memungkinkan beberapa klien untuk berbagi langganan ke 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 mengatur kebijakan dan menjalankan contoh Langganan Bersama
-
Untuk menjalankan contoh Langganan Bersama, Anda harus mengatur kebijakan barang Anda seperti yang didokumentasikan dalam Langganan Ber sama MQTT 5.
-
Untuk menjalankan contoh Berlangganan Bersama, jalankan perintah berikut.
catatan
Anda dapat secara opsional menentukan pengidentifikasi grup berdasarkan kebutuhan Anda saat menjalankan sampel (mis.,
--group_identifier consumer). Jika Anda tidak menentukan satu,python-sampleadalah pengidentifikasi grup default. -
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! -
Buka klien uji MQTT 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 contoh Python Langganan Bersama MQTT 5dan Langganan Bersama dari Panduan AWS IoT Core Pengembang. Di jendela baris perintah Anda, jalankan aplikasi sampel lagi dan saksikan distribusi pesan di klien uji MQTT Anda dari AWS IoT konsol dan baris perintah.