Yeni: Yapay zekâ güvenlik duvarı tüm platformu izliyor ve her olayı sade bir dille açıklıyor. Nasıl çalıştığını görün

Yanıt: Yanındaki ESP32 MQTT konuşurken STM32 ana MCU için OTA

Yapay zekâ tarafından English dilinden çevrildi ·

Bina kontrolcülerinde tam olarak bunu yaptık (STM32 ve bir ESP32 modem). Hermetry, imajı hangi çipin çalıştırdığını umursamaz; yalnızca oturum açmış cihazla konuşur, bu yüzden indiren ve rapor eden ESP32’dir.Bir paket atadığınızda cihaz, v1/attributes/set üzerinden tek bir mesajla şu paylaşılan öznitelikleri alır: fw_title, fw_version, fw_size, fw_checksum, fw_checksum_algorithm (SHA256), fw_url ve paketin ayrık imzası varsa fw_sig. fw_url kısa ömürlü bir HTTPS adresidir, 15 dakika geçerlidir ve indirme bir HTTP Range isteğiyle kaldığı yerden devam edebilir.Cihaz ilerlemeyi istemci öznitelikleri olarak bildirir: fw_state DOWNLOADING, DOWNLOADED, VERIFIED, UPDATING, UPDATED (ya da fw_error ile FAILED) değerlerinden geçer, indirme sırasında fw_progress 0 ile 100 arasındadır ve yeniden başlatmadan sonra current_fw_title ile current_fw_version gönderilir. Yalnızca UPDATED kabul edilmez; yeni çalışan sürümü görmek ister.ESP32 üzerindeki akışımız:

1. fw_* gelir -> fw_title == "irr-stm32" kontrol et
2. fw_url adresinden (Range ile devam) ESP32 flash'ına GET, fw_progress raporla
3. fw_sig'e karşı SHA-256 + Ed25519 kontrolü -> fw_state VERIFIED
4. İmajı UART üzerinden STM32 bootloader'a, bank 2'ye akıt
5. STM32 tekrar doğrular, bankaları değiştirir, yeniden başlar -> fw_state UPDATING
6. STM32 sürümünü ESP32'ye bildirir -> current_fw_version

Elinizde tek bankalı bir 1 MB F407 var; 380 KB için üst 512 KB’ı indirme alanı olarak kullanmanızı ve kontrol sonrasında imajı kopyalayan küçük bir bootloader yazmanızı öneririm. Harici flash da işe yarar, ancak bu durumda bootloader’ın SPI sürücüsüne ihtiyacı olur.Profilin Firmware sekmesinde firmware güncellemelerini açın (varsayılan olarak kapalıdır) ve test tezgahı dışında İmzasız imajlara izin ver seçeneğini kapalı tutun. LTE üzerinden güncellemeler de varsayılan olarak kapalıdır. ESP32 imajının asla STM32 alanına yazılmaması için pakette Donanım modellerini ayarlayın.Firmware updates (OTA)

Kabul edilen çözüm♥ 5