Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Prasyarat untuk pembaruan menggunakan OTA HTTP
Bagian ini menjelaskan persyaratan umum untuk menggunakan HTTP untuk melakukan over-the-air (OTA) pembaruan. Dimulai dengan versi 201912.00, Free RTOS OTA dapat menggunakan MQTT protokol HTTP atau untuk mentransfer gambar pembaruan firmware dari AWS IoT perangkat ke perangkat.
catatan
-
Meskipun HTTP protokol dapat digunakan untuk mentransfer gambar firmware, pustaka MQTT Agen inti masih diperlukan karena interaksi lain dengan AWS IoT Core menggunakan pustaka MQTT Agen inti, termasuk mengirim atau menerima pemberitahuan eksekusi pekerjaan, dokumen pekerjaan, dan pembaruan status eksekusi.
-
Saat Anda menentukan keduanya MQTT dan HTTP protokol untuk pekerjaan OTA pembaruan, penyiapan perangkat lunak OTA Agen pada setiap perangkat menentukan protokol yang digunakan untuk mentransfer gambar firmware. Untuk mengubah OTA Agen dari metode MQTT protokol default ke HTTP protokol, Anda dapat memodifikasi file header yang digunakan untuk mengkompilasi kode RTOS sumber Gratis untuk perangkat.
Persyaratan minimum
-
Firmware perangkat harus menyertakan RTOS pustaka Gratis yang diperlukan (MQTTAgen inti,HTTP, OTA Agen, dan dependensinya).
-
RTOSVersi gratis 201912.00 atau yang lebih baru diperlukan untuk mengubah konfigurasi OTA protokol untuk mengaktifkan transfer data. OTA HTTP
Konfigurasi
Lihat konfigurasi OTA protokol berikut dalam file. \vendors\boards\
board
\aws_demos\config_files\ota_config.h
Untuk mengaktifkan transfer OTA data HTTP
-
Ubah
configENABLED_DATA_PROTOCOLS
keOTA_DATA_OVER_HTTP
. -
Saat OTA pembaruan, Anda dapat menentukan kedua protokol sehingga salah satu MQTT atau HTTP protokol dapat digunakan., Anda dapat mengatur protokol utama yang digunakan oleh perangkat dengan mengubah
configOTA_PRIMARY_DATA_PROTOCOL
keHTTP.OTA_DATA_OVER_HTTP
catatan
HTTPhanya didukung untuk operasi OTA data. Untuk operasi kontrol, Anda harus menggunakanMQTT.
Konfigurasi khusus perangkat
- ESP32
-
Karena jumlah terbatasRAM, Anda harus mematikan BLE ketika Anda mengaktifkan HTTP sebagai protokol OTA data. Dalam
vendors/espressif/boards/esp32/aws_demos/config_files/aws_iot_network_config.h
file, ubah configENABLED_NETWORKS
menjadiAWSIOT_NETWORK_TYPE_WIFI
saja./** * @brief Configuration flag which is used to enable one or more network interfaces for a board. * * The configuration can be changed any time to keep one or more network enabled or disabled. * More than one network interfaces can be enabled by using 'OR' operation with flags for * each network types supported. Flags for all supported network types can be found * in "aws_iot_network.h" * */ #define configENABLED_NETWORKS ( AWSIOT_NETWORK_TYPE_WIFI )
Penggunaan memori
Ketika MQTT digunakan untuk transfer data, tidak ada memori heap tambahan yang diperlukan untuk MQTT koneksi karena dibagi antara kontrol dan operasi data. Namun, mengaktifkan data HTTP membutuhkan memori heap tambahan. Berikut ini adalah data penggunaan memori heap untuk semua platform yang didukung, dihitung menggunakan Gratis RTOS xPortGetFreeHeapSize
API. Anda harus memastikan ada cukup RAM untuk menggunakan OTA perpustakaan.
- Instrumen Texas CC322 0SF- LAUNCHXL
-
Operasi kontrol (MQTT): 12 KB
Operasi data (HTTP): 10 KB
catatan
TI menggunakan jauh lebih sedikit RAM karena digunakan SSL pada perangkat keras, jadi tidak menggunakan perpustakaan mbedtls.
- Keingintahuan Microchip PIC32MZEF
-
Operasi kontrol (MQTT): 65 KB
Operasi data (HTTP): 43 KB
- Espressif ESP32
-
Operasi kontrol (MQTT): 65 KB
Operasi data (HTTP): 45 KB
catatan
BLEESP32membutuhkan waktu sekitar 87 KBRAM. Tidak cukup RAM untuk mengaktifkan semuanya, yang disebutkan dalam konfigurasi khusus perangkat di atas.
- Simulator Windows
-
Operasi kontrol (MQTT): 82 KB
Operasi data (HTTP): 63 KB
- Nordik nrf52840-dk
-
HTTP tidak didukung.
Kebijakan perangkat
Kebijakan ini memungkinkan Anda untuk menggunakan salah satu MQTT atau HTTP untuk OTA pembaruan.
Setiap perangkat yang menerima OTA pembaruan menggunakan HTTP 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 Tindakan Kebijakan AWS IoT Inti dan Sumber Daya Tindakan AWS IoT Inti.
{ "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}/jobs/*" ] }, { "Effect": "Allow", "Action": [ "iot:Publish", "iot:Receive" ], "Resource": [ "arn:partition
:iot:region
:account
:topic/$aws/things/${iot:Connection.Thing.ThingName}/jobs/*" ] } ] }
Catatan
-
iot:Connect
Izin memungkinkan perangkat Anda terhubung ke AWS IoT overMQTT. -
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:Receive
Izin memungkinkan AWS IoT Core untuk mempublikasikan pesan tentang topik tersebut ke perangkat yang terhubung saat ini. Izin ini diperiksa pada setiap pengiriman MQTT pesan. Anda dapat menggunakan izin ini untuk mencabut akses ke klien yang saat ini berlangganan topik.