Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Prasyarat untuk pembaruan OTA menggunakan MQTT
penting
Ini adalah versi arsip dari Panduan Pengguna FreeRTOS untuk digunakan dengan rilis FreerTOS 202012.00. Untuk versi terbaru dari dokumen ini, lihat Panduan Pengguna FreeRTOS.
Bagian ini menjelaskan persyaratan umum untuk menggunakan MQTT untuk melakukan over-the-air (pembaruan OTA).
Untuk memberikan akses dan menambahkan izin bagi pengguna, grup, atau peran Anda:
-
Pengguna dan grup di AWS IAM Identity Center:
Buat rangkaian izin. Ikuti instruksi di Buat rangkaian izin di Panduan Pengguna AWS IAM Identity Center .
-
Pengguna yang dikelola di IAM melalui penyedia identitas:
Buat peran untuk federasi identitas. Ikuti instruksi dalam Buat peran untuk penyedia identitas pihak ketiga (federasi) dalam Panduan Pengguna IAM.
-
Pengguna IAM:
-
Buat peran yang dapat diambil pengguna Anda. Ikuti instruksi dalam Buat peran untuk pengguna IAM dalam Panduan Pengguna IAM.
-
(Tidak disarankan) Lampirkan kebijakan langsung ke pengguna atau tambahkan pengguna ke grup pengguna. Ikuti petunjuk dalam Menambahkan izin ke pengguna (konsol) dalam Panduan Pengguna IAM.
-
Persyaratan minimum
-
Firmware perangkat harus menyertakan pustaka FreerTOS yang diperlukan (CoreMQTT, Agen OTA, dan dependensinya).
-
FreeRTOS versi 1.4.0 atau yang lebih baru diperlukan. Namun, kami menyarankan Anda menggunakan versi terbaru jika memungkinkan.
Konfigurasi
Dimulai dengan versi 201912.00, FreerTOS OTA dapat menggunakan protokol HTTP atau MQTT untuk mentransfer gambar pembaruan firmware dari ke perangkat. AWS IoT Jika Anda menentukan kedua protokol saat membuat pembaruan OTA di FreeRTOS, setiap perangkat akan menentukan protokol yang digunakan untuk mentransfer gambar. Untuk informasi selengkapnya, lihat Prasyarat untuk pembaruan OTA menggunakan HTTP.
Secara default, konfigurasi protokol OTA aws_ota_agent_config.h
adalah dengan menggunakan protokol MQTT:
/** * @brief The protocol selected for OTA control operations. * This configuration parameter sets the default protocol for all the OTA control * operations like requesting OTA job, updating the job status etc. * * Note - Only MQTT is supported at this time for control operations. */ #define configENABLED_CONTROL_PROTOCOL ( OTA_CONTROL_OVER_MQTT ) /** * @brief The protocol selected for OTA data operations. * This configuration parameter sets the protocols selected for the data operations * like requesting file blocks from the service. * * Note - Both MQTT and HTTP are supported for data transfer. This configuration parameter * can be set to the following - * Enable data over MQTT - ( OTA_DATA_OVER_MQTT ) * Enable data over HTTP - ( OTA_DATA_OVER_HTTP) * Enable data over both MQTT & HTTP ( OTA_DATA_OVER_MQTT | OTA_DATA_OVER_HTTP ) */ #define configENABLED_DATA_PROTOCOLS ( OTA_DATA_OVER_MQTT ) /** * @brief The preferred protocol selected for OTA data operations. * * Primary data protocol will be the protocol used for downloading files if more than * one protocol is selected while creating OTA job. Default primary data protocol is MQTT * and the following update here switches to HTTP as primary. * * Note - use OTA_DATA_OVER_HTTP for HTTP as primary data protocol. */ #define configOTA_PRIMARY_DATA_PROTOCOL ( OTA_DATA_OVER_MQTT )
Konfigurasi khusus perangkat
Tidak ada.
Penggunaan memori
Ketika MQTT digunakan untuk transfer data, tidak ada memori tambahan yang diperlukan untuk koneksi MQTT karena itu dibagi antara kontrol dan operasi data.
Kebijakan perangkat
Setiap perangkat yang menerima pembaruan OTA menggunakan MQTT harus terdaftar sebagai sesuatu AWS IoT dan benda tersebut harus memiliki kebijakan terlampir seperti yang tercantum di sini. Anda dapat menemukan informasi selengkapnya tentang item dalam "Action"
dan "Resource"
objek di AWS IoT
Core Policy Actions dan AWS IoT Core Action Resources.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:Connect", "Resource": "arn:
partition
:iot:region
:account
:client/${iot:Connection.Thing.ThingName}" }, { "Effect": "Allow", "Action": "iot:Subscribe", "Resource": [ "arn:partition
:iot:region
:account
:topicfilter/$aws/things/${iot:Connection.Thing.ThingName}/streams/*", "arn:partition
:iot:region
:account
:topicfilter/$aws/things/${iot:Connection.Thing.ThingName}/jobs/*" ] }, { "Effect": "Allow", "Action": [ "iot:Publish", "iot:Receive" ], "Resource": [ "arn:partition
:iot:region
:account
:topic/$aws/things/${iot:Connection.Thing.ThingName}/streams/*", "arn:partition
:iot:region
:account
:topic/$aws/things/${iot:Connection.Thing.ThingName}/jobs/*" ] } ] }
Catatan
-
iot:Connect
Izin memungkinkan perangkat Anda terhubung AWS IoT melalui MQTT. -
iot:Publish
Iziniot:Subscribe
dan pada topik AWS IoT pekerjaan (.../jobs/*
) memungkinkan perangkat yang terhubung untuk menerima pemberitahuan pekerjaan dan dokumen pekerjaan, dan untuk mempublikasikan status penyelesaian pelaksanaan pekerjaan. -
iot:Publish
Iziniot:Subscribe
dan tentang topik aliran AWS IoT OTA (.../streams/*
) memungkinkan perangkat yang terhubung untuk mengambil data pembaruan OTA dari. AWS IoT Izin ini diperlukan untuk melakukan pembaruan firmware melalui MQTT. -
iot:Receive
Izin memungkinkan AWS IoT Core untuk mempublikasikan pesan tentang topik tersebut ke perangkat yang terhubung. Izin ini diperiksa pada setiap pengiriman pesan MQTT. Anda dapat menggunakan izin ini untuk mencabut akses ke klien yang saat ini berlangganan topik.