Siapkan Raspberry Pi untuk mendemonstrasikan komunikasi MQTT pesan - 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 MQTT pesan

Prosedur ini menciptakan sumber daya di dalam AWS IoT dan di Raspberry Pi untuk mendemonstrasikan komunikasi MQTT pesan menggunakan AWS IoT Device Client.

Buat file sertifikat untuk menunjukkan MQTT komunikasi

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 respon 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 MQTT komunikasi

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 endpoint tidak berubah sejak saat Anda menjalankan perintah ini untuk tutorial sebelumnya. Menjalankan perintah lagi di sini dilakukan untuk memudahkan menemukan dan menempelkan nilai endpoint data ke dalam file konfigurasi yang digunakan dalam tutorial ini.

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

    { "endpointAddress": "a3qjEXAMPLEffp-ats.iot.us-west-2.amazonaws.com" }
  2. Masukkan perintah ini untuk membuat sumber daya AWS IoT hal 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 AWS IoT untuk digunakan untuk tujuan yang berbeda. Mereka semua dapat digunakan oleh perangkat IoT fisik yang sama untuk mewakili berbagai aspek perangkat.

    Tutorial ini hanya akan menggunakan sumber daya satu hal 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 AWS IoT sumber daya 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 JSON dokumen 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:57EXAMPLE833:client/PubSubTestThing" ] }, { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "arn:aws:iot:us-west-2:57EXAMPLE833:topic/test/dc/pubtopic" ] }, { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:us-west-2:57EXAMPLE833:topicfilter/test/dc/subtopic" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:us-west-2:57EXAMPLE833:topic/test/dc/subtopic" ] } ] }
    3. Di editor, di setiap Resource bagian dokumen kebijakan, ganti us-west-2:57EXAMPLE833 dengan karakter titik dua Anda Wilayah AWS(:), 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 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 akan menampilkan 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 file konfigurasi AWS IoT Device Client dan klien MQTT uji untuk mendemonstrasikan komunikasi MQTT.

Konfigurasikan file konfigurasi AWS IoT Device Client dan klien MQTT uji untuk mendemonstrasikan komunikasi MQTT

Prosedur ini membuat file konfigurasi untuk menguji AWS IoT Device Client.

Untuk membuat file konfigurasi untuk menguji AWS IoT Device Client
  1. Di jendela terminal di komputer host lokal Anda yang terhubung ke Raspberry Pi Anda:

    1. Buka editor teks, sepertinano.

    2. Salin JSON dokumen 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 temukan. Menyediakan 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 MQTT uji untuk berlangganan semua MQTT pesan:

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

    2. Di tab Berlangganan topik, di Filter topik, masukkan # (satu tanda pound), dan pilih Berlangganan.

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

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

Setelah Anda menyimpan file dan mengkonfigurasi klien MQTT pengujian, Anda siap untuk melanjutkanMenunjukkan pesan penerbitan dengan Klien AWS IoT Perangkat.