View a markdown version of this page

Siapkan Raspberry Pi untuk mendemonstrasikan komunikasi pesan MQTT - AWS IoT Core

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

Siapkan Raspberry Pi untuk mendemonstrasikan komunikasi pesan MQTT

Prosedur ini menciptakan sumber daya di dalam AWS IoT dan di Raspberry Pi untuk menunjukkan komunikasi pesan MQTT menggunakan Klien AWS IoT Perangkat.

Buat file sertifikat untuk menunjukkan komunikasi MQTT

Prosedur ini membuat file sertifikat perangkat untuk demo ini.

Untuk membuat dan mengunduh file sertifikat perangkat untuk Raspberry Pi Anda

  1. Di jendela terminal di komputer host lokal Anda, masukkan perintah berikut untuk membuat file sertifikat perangkat untuk perangkat Anda.

    mkdir ~/certs/pubsub aws iot create-keys-and-certificate \ --set-as-active \ --certificate-pem-outfile "~/certs/pubsub/device.pem.crt" \ --public-key-outfile "~/certs/pubsub/public.pem.key" \ --private-key-outfile "~/certs/pubsub/private.pem.key"

    Perintah mengembalikan respons seperti berikut ini. Simpan certificateArn nilai untuk digunakan nanti.

    { "certificateArn": "arn:aws:iot:us-west-2:57EXAMPLE833:cert/76e7e4edb3e52f52334be2f387a06145b2aa4c7fcd810f3aea2d92abc227d269", "certificateId": "76e7e4edb3e52f5233EXAMPLE7a06145b2aa4c7fcd810f3aea2d92abc227d269", "certificatePem": "-----BEGIN CERTIFICATE-----\nMIIDWTCCAkGgAwIBAgI_SHORTENED_FOR_EXAMPLE_Lgn4jfgtS\n-----END CERTIFICATE-----\n", "keyPair": { "PublicKey": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BA_SHORTENED_FOR_EXAMPLE_ImwIDAQAB\n-----END PUBLIC KEY-----\n", "PrivateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQE_SHORTENED_FOR_EXAMPLE_T9RoDiukY\n-----END RSA PRIVATE KEY-----\n" } }
  2. Masukkan perintah berikut untuk mengatur izin pada direktori sertifikat dan file-file-nya.

    chmod 700 ~/certs/pubsub chmod 644 ~/certs/pubsub/* chmod 600 ~/certs/pubsub/private.pem.key
  3. Jalankan perintah ini untuk meninjau izin pada direktori dan file sertifikat Anda.

    ls -l ~/certs/pubsub

    Output dari perintah harus sama dengan apa yang Anda lihat di sini, kecuali tanggal dan waktu file akan berbeda.

    -rw-r--r-- 1 pi pi 1220 Oct 28 13:02 device.pem.crt -rw------- 1 pi pi 1675 Oct 28 13:02 private.pem.key -rw-r--r-- 1 pi pi 451 Oct 28 13:02 public.pem.key
  4. Masukkan perintah ini untuk membuat direktori untuk file log.

    mkdir ~/.aws-iot-device-client mkdir ~/.aws-iot-device-client/log chmod 745 ~/.aws-iot-device-client/log echo " " > ~/.aws-iot-device-client/log/aws-iot-device-client.log echo " " > ~/.aws-iot-device-client/log/pubsub_rx_msgs.log chmod 600 ~/.aws-iot-device-client/log/*

Menyediakan perangkat Anda untuk menunjukkan komunikasi MQTT

Bagian ini membuat AWS IoT sumber daya yang menyediakan Raspberry Pi Anda AWS IoT.

Untuk menyediakan perangkat Anda di AWS IoT:
  1. Di jendela terminal di komputer host lokal Anda, masukkan perintah berikut untuk mendapatkan alamat titik akhir data perangkat untuk Anda Akun AWS.

    aws iot describe-endpoint --endpoint-type IoT:Data-ATS

    Nilai titik akhir tidak berubah sejak saat Anda menjalankan perintah ini untuk tutorial sebelumnya. Menjalankan perintah lagi di sini dilakukan untuk membuatnya mudah untuk menemukan dan menempelkan nilai titik akhir data ke dalam file konfigurasi yang digunakan dalam tutorial ini.

    Perintah dari langkah-langkah sebelumnya mengembalikan respons seperti berikut ini. Catat endpointAddress nilainya untuk digunakan nanti.

    { "endpointAddress": "a3qjEXAMPLEffp-ats.iot.us-west-2.amazonaws.com" }
  2. Masukkan perintah ini untuk membuat sumber AWS IoT daya baru untuk Raspberry Pi Anda.

    aws iot create-thing --thing-name "PubSubTestThing"

    Karena sumber daya AWS IoT benda adalah representasi virtual perangkat Anda di cloud, kami dapat membuat beberapa sumber daya benda untuk AWS IoT digunakan untuk tujuan yang berbeda. Mereka semua dapat digunakan oleh perangkat IoT fisik yang sama untuk mewakili aspek yang berbeda dari perangkat.

    Tutorial ini hanya akan menggunakan satu sumber daya pada satu waktu untuk mewakili Raspberry Pi. Dengan cara ini, dalam tutorial ini, mereka mewakili demo yang berbeda sehingga setelah Anda membuat AWS IoT sumber daya untuk demo, Anda dapat kembali dan mengulangi demo menggunakan sumber daya yang Anda buat khusus untuk masing-masing.

    Jika sumber daya AWS IoT benda Anda dibuat, perintah mengembalikan respons seperti ini.

    { "thingName": "PubSubTestThing", "thingArn": "arn:aws:iot:us-west-2:57EXAMPLE833:thing/PubSubTestThing", "thingId": "8ea78707-32c3-4f8a-9232-14bEXAMPLEfd" }
  3. Di jendela terminal:

    1. Buka editor teks, sepertinano.

    2. Salin dokumen JSON ini dan tempelkan ke editor teks terbuka Anda.

      { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": [ "arn:aws:iot:us-west-2:123456789012:client/PubSubTestThing" ] }, { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "arn:aws:iot:us-west-2:123456789012:topic/test/dc/pubtopic" ] }, { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:us-west-2:123456789012:topicfilter/test/dc/subtopic" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:us-west-2:123456789012:topic/test/dc/subtopic" ] } ] }
    3. Di editor, di setiap Resource bagian dokumen kebijakan, ganti us-west-2:57EXAMPLE833 dengan karakter titik Wilayah AWS dua (:), dan Akun AWS nomor 12 digit Anda.

    4. Simpan file di editor teks Anda sebagai~/policies/pubsub_test_thing_policy.json.

  4. Jalankan perintah ini untuk menggunakan dokumen kebijakan dari langkah-langkah sebelumnya untuk membuat AWS IoT kebijakan.

    aws iot create-policy \ --policy-name "PubSubTestThingPolicy" \ --policy-document "file://~/policies/pubsub_test_thing_policy.json"

    Jika kebijakan dibuat, perintah mengembalikan respons seperti ini.

    { "policyName": "PubSubTestThingPolicy", "policyArn": "arn:aws:iot:us-west-2:57EXAMPLE833:policy/PubSubTestThingPolicy", "policyDocument": "{\n\"Version\": \"2012-10-17\",\n\"Statement\": [\n{\n\"Effect\": \"Allow\",\n\"Action\": [\n\"iot:Connect\"\n],\n\"Resource\": [\n\"arn:aws:iot:us-west-2:57EXAMPLE833:client/PubSubTestThing\"\n]\n},\n{\n\"Effect\": \"Allow\",\n\"Action\": [\n\"iot:Publish\"\n],\n\"Resource\": [\n\"arn:aws:iot:us-west-2:57EXAMPLE833:topic/test/dc/pubtopic\"\n]\n},\n{\n\"Effect\": \"Allow\",\n\"Action\": [\n\"iot:Subscribe\"\n],\n\"Resource\": [\n\"arn:aws:iot:us-west-2:57EXAMPLE833:topicfilter/test/dc/subtopic\"\n]\n},\n{\n\"Effect\": \"Allow\",\n\"Action\": [\n\"iot:Receive\"\n],\n\"Resource\": [\n\"arn:aws:iot:us-west-2:57EXAMPLE833:topic/test/dc/*\"\n]\n}\n]\n}\n", "policyVersionId": "1" }
  5. Jalankan perintah ini untuk melampirkan kebijakan ke sertifikat perangkat. Ganti certificateArn dengan certificateArn nilai yang Anda simpan sebelumnya di bagian ini.

    aws iot attach-policy \ --policy-name "PubSubTestThingPolicy" \ --target "certificateArn"

    Jika berhasil, perintah ini tidak mengembalikan apa pun.

  6. Jalankan perintah ini untuk melampirkan sertifikat perangkat ke sumber daya AWS IoT benda. Ganti certificateArn dengan certificateArn nilai yang Anda simpan sebelumnya di bagian ini.

    aws iot attach-thing-principal \ --thing-name "PubSubTestThing" \ --principal "certificateArn"

    Jika berhasil, perintah ini tidak mengembalikan apa pun.

Setelah berhasil menyediakan perangkat AWS IoT, Anda siap untuk melanjutkanKonfigurasikan AWS IoT File konfigurasi Klien Perangkat dan klien uji MQTT untuk mendemonstrasikan komunikasi MQTT.

Konfigurasikan AWS IoT File konfigurasi Klien Perangkat dan klien uji MQTT untuk mendemonstrasikan komunikasi MQTT

Prosedur ini membuat file konfigurasi untuk menguji Klien AWS IoT Perangkat.

Untuk membuat file konfigurasi untuk menguji AWS IoT Klien Perangkat
  1. Di jendela terminal pada komputer host lokal Anda yang terhubung ke Raspberry Pi Anda:

    1. Buka editor teks, sepertinano.

    2. Salin dokumen JSON ini dan tempelkan ke editor teks terbuka Anda.

      { "endpoint": "a3qEXAMPLEaffp-ats.iot.us-west-2.amazonaws.com", "cert": "~/certs/pubsub/device.pem.crt", "key": "~/certs/pubsub/private.pem.key", "root-ca": "~/certs/AmazonRootCA1.pem", "thing-name": "PubSubTestThing", "logging": { "enable-sdk-logging": true, "level": "DEBUG", "type": "STDOUT", "file": "" }, "jobs": { "enabled": false, "handler-directory": "" }, "tunneling": { "enabled": false }, "device-defender": { "enabled": false, "interval": 300 }, "fleet-provisioning": { "enabled": false, "template-name": "", "template-parameters": "", "csr-file": "", "device-key": "" }, "samples": { "pub-sub": { "enabled": true, "publish-topic": "test/dc/pubtopic", "publish-file": "", "subscribe-topic": "test/dc/subtopic", "subscribe-file": "~/.aws-iot-device-client/log/pubsub_rx_msgs.log" } }, "config-shadow": { "enabled": false }, "sample-shadow": { "enabled": false, "shadow-name": "", "shadow-input-file": "", "shadow-output-file": "" } }
    3. Ganti endpoint nilai dengan titik akhir data perangkat untuk Akun AWS yang Anda temukanMenyediakan perangkat Anda di AWS IoT Core.

    4. Simpan file di editor teks Anda sebagai~/dc-configs/dc-pubsub-config.json.

    5. Jalankan perintah ini untuk mengatur izin pada file konfigurasi baru.

      chmod 644 ~/dc-configs/dc-pubsub-config.json
  2. Untuk mempersiapkan klien uji MQTT untuk berlangganan semua pesan MQTT:

    1. Di komputer host lokal Anda, di AWS IoT konsol, pilih klien uji MQTT.

    2. Di tab Berlangganan topik, di filter Top ik, masukkan # (tanda pound tunggal), dan pilih Ber langganan.

    3. Di bawah label Langganan, konfirmasikan bahwa Anda melihat # (tanda pound tunggal).

    Biarkan jendela dengan klien uji MQTT terbuka saat Anda melanjutkan tutorial ini.

Setelah Anda menyimpan file dan mengkonfigurasi klien uji MQTT, Anda siap untuk Menunjukkan penerbitan pesan dengan AWS IoT Klien Perangkat melanjutkan.