Prasyarat untuk pembaruan OTA menggunakan MQTT - FreeRTOS

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:

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:ConnectIzin memungkinkan perangkat Anda terhubung AWS IoT melalui MQTT.

  • iot:PublishIzin iot: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:PublishIzin iot: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:ReceiveIzin 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.