Tutorial: Führen Sie OTA-Updates auf Espressif ESP32 mit FreeRTOS Bluetooth Low Energy durch - Kostenlos RTOS

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Tutorial: Führen Sie OTA-Updates auf Espressif ESP32 mit FreeRTOS Bluetooth Low Energy durch

Wichtig

Diese Referenzintegration wird im Amazon-FreeRTOS-Repository gehostet, das veraltet ist. Wir empfehlen, dass Sie hier beginnen, wenn Sie ein neues Projekt erstellen. Wenn Sie bereits über ein bestehendes FreeRTOS-Projekt verfügen, das auf dem inzwischen veralteten Amazon-FreeRTOS-Repository basiert, lesen Sie dieLeitfaden zur Migration des kostenlosen RTOS Github-Repositorys von Amazon.

Dieses Tutorial zeigt Ihnen, wie Sie einen Espressif ESP32-Mikrocontroller aktualisieren, der mit einem MQTT Bluetooth Low Energy-Proxy auf einem Android-Gerät verbunden ist. Es aktualisiert das Gerät mithilfe vonAWS IoT Over-the-air (OTA) -Aktualisierungsaufträgen. Das Gerät stelltAWS IoT mithilfe der in der Android-Demo-App eingegebenen Amazon Cognito Cognito-Anmeldeinformationen eine Verbindung her. Ein autorisierter Betreiber initiiert das OTA-Update von der Cloud aus. Wenn das Gerät über die Android-Demo-App eine Verbindung herstellt, wird das OTA-Update initiiert und die Firmware auf dem Gerät aktualisiert.

Die FreeRTOS-Versionen 2019.06.00 Major und höher bieten Bluetooth Low Energy MQTT-Proxy-Unterstützung, die für die Wi-Fi-Bereitstellung und sichere Verbindungen zuAWS IoT Diensten verwendet werden kann. Mithilfe der Bluetooth Low Energy-Funktion können Sie Geräte mit geringem Stromverbrauch bauen, die zur Konnektivität mit einem Mobilgerät gekoppelt werden können, ohne dass WLAN erforderlich ist. Geräte können mithilfe von MQTT kommunizieren, indem sie sich über Android- oder iOS-Bluetooth-Low-Energy-SDKs verbinden, die Profile für generische Zugriffsprofile (GAP) und generische Attribute (GATT) verwenden.

Hier sind die Schritte, die wir befolgen werden, um OTA-Updates über Bluetooth Low Energy zuzulassen:

  1. Speicher konfigurieren: Erstellen Sie einen Amazon S3 S3-Bucket und Richtlinien und konfigurieren Sie einen Benutzer, der Updates durchführen kann.

  2. Erstellen Sie ein Codesignaturzertifikat: Erstellen Sie ein Signaturzertifikat und ermöglichen Sie dem Benutzer, Firmware-Updates zu signieren.

  3. Konfigurieren Sie die Amazon Cognito Cognito-Authentifizierung: Erstellen Sie einen Anmeldeinformationsanbieter, einen Benutzerpool und einen Anwendungszugriff auf den Benutzerpool.

  4. FreeRTOS konfigurieren: Richten Sie Bluetooth Low Energy, Client-Anmeldeinformationen und das öffentliche Codesignaturzertifikat ein.

  5. Eine Android-App konfigurieren: Richten Sie den Anmeldeinformationsanbieter und den Benutzerpool ein und stellen Sie die Anwendung auf einem Android-Gerät bereit.

  6. Führen Sie das OTA-Aktualisierungsskript aus: Verwenden Sie das OTA-Aktualisierungsskript, um ein OTA-Update zu initiieren.

Weitere Informationen zur Funktionsweise der Updates finden Sie unterKostenlose RTOS Over-the-Air Updates. Weitere Informationen zum Einrichten der Bluetooth Low Energy MQTT-Proxy-Funktionalität finden Sie im Beitrag Using Bluetooth Low Energy with FreeRTOS on Espressif ESP32 von Richard Kang.

Voraussetzungen

Um die Schritte in dieser praktischen Anleitung auszuführen, benötigen Sie die folgenden Ressourcen:

  • Ein ESP32-Entwicklungsboard.

  • Ein MicroUSB-zu-USB-A-Kabel.

  • EinAWS Konto (das kostenlose Kontingent ist ausreichend).

  • Ein Android-Telefon mit Android v 6.0 oder höher und Bluetooth Version 4.2 oder höher.

Auf Ihrem Entwicklungscomputer benötigen Sie:

Die Schritte in diesem Tutorial gehen davon aus, dass der Xtensa-Toolchain-, ESP-IDF- und FreeRTOS-Code im/esp Verzeichnis Ihres Home-Verzeichnisses installiert ist. Sie~/esp/xtensa-esp32-elf/bin müssen Ihrer$PATH Variablen etwas hinzufügen.

Schritt 1: Konfigurieren des Speichers

  1. Erstellen Sie einen Amazon S3 S3-Bucket zum Speichern Ihres Updatesmit aktivierter Versionierung, um die Firmware-Images zu speichern.

  2. Erstellen Sie eine Service-Rolle OTA „Update“und fügen Sie der Rolle die folgenden verwalteten Richtlinien hinzu:

    • AWSIotLogging

    • AWSIotRuleActions

    • AWSIotThingsRegistration

    • AWSFreeRTOSOTAUpdate

  3. Erstellen Sie einen Benutzer, der OTA-Updates durchführen kann. Dieser Benutzer kann Firmware-Updates für IoT-Geräte im Konto signieren und bereitstellen und hat Zugriff auf OTA-Updates auf allen Geräten. Der Zugriff sollte auf vertrauenswürdige Entitäten beschränkt sein.

  4. Folgen Sie den Schritten bisErstellen Sie eine OTA Benutzerrichtlinie und hängen Sie es an Ihren Benutzer an.

Schritt 2: Erstellen des Codesigniturzertifikats

  1. Erstellen eines Amazon-S3-Buckets mit aktivierter Versionsverwaltung, die zum Speichern der Firmware-Images verwendet wurde.

  2. Erstellen Sie ein Codesignaturzertifikat, das zum Signieren der Firmware verwendet werden kann. Notieren Sie das Zertifikat Amazon Resource Name (ARN), wenn das Zertifikat importiert wurde.

    aws acm import-certificate --profile=ota-update-user --certificate file://ecdsasigner.crt --private-key file://ecdsasigner.key

    Beispielausgabe:

    { "CertificateArn": "arn:aws:acm:us-east-1:<account>:certificate/<certid>" }

    Sie werden den ARN später verwenden, um ein Signaturprofil zu erstellen. Wenn Sie möchten, können Sie das Profil jetzt mit dem folgenden Befehl erstellen:

    aws signer put-signing-profile --profile=ota-update-user --profile-name esp32Profile --signing-material certificateArn=arn:aws:acm:us-east-1:account:certificate/certid --platform AmazonFreeRTOS-Default --signing-parameters certname=/cert.pem

    Beispielausgabe:

    { "arn": "arn:aws:signer::<account>:/signing-profiles/esp32Profile" }

Schritt 3: Konfiguration der Amazon Cognito Cognito-Authentifizierung

Erstellen einer AWS IoT-Richtlinie
  1. Melden Sie sich an der AWS IoT-Konsole an.

  2. Wählen Sie oben rechts in der Konsole Mein Konto. Notieren Sie unter Kontoeinstellungen Ihre 12-stellige Konto-ID.

  3. Wählen Sie im linken Navigationsbereich die Option Settings (Einstellungen) aus. Notieren Sie sich unter Endpunkt Gerätedaten den Endpunktwert. Der Endpunkt sollte in etwa wie folgt aussehenxxxxxxxxxxxxxx.iot.us-west-2.amazonaws.com. In diesem Beispiel ist dieAWS Region „us-west-2".

  4. Wählen Sie im linken Navigationsbereich Secure aus, wählen Sie Policies und dann Create aus. Wenn Sie in Ihrem Konto keine Richtlinien haben, wird die Meldung „Sie haben noch keine Richtlinien“ angezeigt und Sie können „Richtlinie erstellen“ auswählen.

  5. Geben Sie einen Namen für Ihre Richtlinie ein, z. B. „esp32_mqtt_proxy_iot_policy“.

  6. Wählen Sie im Abschnitt Anweisungen hinzufügen die Option Erweiterter Modus aus. Kopieren Sie die folgende JSON und fügen Sie sie in das Fenster des Richtlinien-Editors ein. Ersetzen Sie esaws-account-id durch Ihre Konto-ID undaws-region durch Ihre Region (z. B. „us-west-2“).

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:Connect", "Resource": "arn:aws:iot:aws-region:aws-account-id:*" }, { "Effect": "Allow", "Action": "iot:Publish", "Resource": "arn:aws:iot:aws-region:aws-account-id:*" }, { "Effect": "Allow", "Action": "iot:Subscribe", "Resource": "arn:aws:iot:aws-region:aws-account-id:*" }, { "Effect": "Allow", "Action": "iot:Receive", "Resource": "arn:aws:iot:aws-region:aws-account-id:*" } ] }
  7. Wählen Sie Create (Erstellen) aus.

Erschaffe einAWS IoT Ding
  1. Melden Sie sich an der AWS IoT-Konsole an.

  2. Wählen Sie im linken Navigationsbereich Manage (Verwalten) und dann Things (Objekte).

  3. Wählen Sie oben rechts Erstellen. Wenn Sie in Ihrem Konto nichts registriert haben, wird die Meldung „Sie haben noch keine Dinge“ angezeigt und Sie können „Etwas registrieren“ wählen.

  4. Wählen Sie auf der Seite AWS IoT-Objekte erstellen den Eintrag Einzelnes Objekt erstellen aus.

  5. Geben Sie auf der Seite Gerät zur Ding-Registrierung hinzufügen einen Namen für Ihr Ding ein (z. B. „esp32-ble“). Nur alphanumerische Zeichen, Bindestrich (-) und Unterstrich (_) sind zulässig. Wählen Sie Next (Weiter).

  6. Wählen Sie auf der Seite Zertifikat für Ihr Ding hinzufügen unter Zertifikat überspringen und Ding erstellen die Option Ding ohne Zertifikat erstellen aus. Da wir die mobile BLE-Proxy-App verwenden, die Amazon Cognito Cognito-Anmeldeinformationen für die Authentifizierung und Autorisierung verwendet, ist kein Gerätezertifikat erforderlich.

Erstellen Sie einen Amazon Cognito App Client
  1. Melden Sie sich bei der Amazon Cognito-Konsole an.

  2. Wählen Sie im Navigationsbanner oben rechts die Option Benutzerpool erstellen aus.

  3. Geben Sie den Poolnamen ein (z. B. „esp32_mqtt_proxy_user_pool“).

  4. Wählen Sie Review defaults.

  5. Wählen Sie unter App-Clients die Option App-Client hinzufügen und dann App-Client hinzufügen aus.

  6. Geben Sie einen App-Client-Namen ein (zum Beispiel „mqtt_app_client“).

  7. Vergewissern Sie sich, dass die Option Clientgeheimnis generieren ausgewählt ist.

  8. Wählen Sie Create app client.

  9. Wählen Sie Return to pool details (Zurück zu den Pool-Details).

  10. Wählen Sie auf der Überprüfungsseite des Benutzerpools die Option Pool erstellen aus. Sie sollten die Meldung „Ihr Benutzerpool wurde erfolgreich erstellt“ sehen. Notieren Sie sich die Pool-ID.

  11. Wählen Sie im Navigationsbereich App-Clients aus.

  12. Wählen Sie „Details anzeigen“. Notieren Sie sich die App-Client-ID und das App-Client-Geheimnis.

Amazon-Cognito-Identitätspool erstellen
  1. Melden Sie sich bei der Amazon Cognito-Konsole an.

  2. Wählen Sie Create new identity pool.

  3. Geben Sie einen Namen für den Identitätspool ein (z. B. „mqtt_proxy_identity_pool“).

  4. Erweitern Sie Authentifizierungsanbieter.

  5. Wählen Sie den Tab Cognito.

  6. Geben Sie die Benutzerpool-ID und die App-Client-ID ein, die Sie in den vorherigen Schritten notiert haben.

  7. Wählen Sie Create Pool.

  8. Wählen Sie auf der nächsten Seite Zulassen aus, um neue Rollen für authentifizierte und nicht authentifizierte Identitäten zu erstellen.

  9. Notieren Sie sich die Identitätspool-ID im Formatus-east-1:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.

Fügen Sie der authentifizierten Identität eine IAM-Richtlinie an
  1. Öffnen Sie die Amazon-Cognito-Konsole.

  2. Wählen Sie den Identitätspool aus, den Sie gerade erstellt haben (z. B. „mqtt_proxy_identity_pool“).

  3. Wählen Sie Edit identity pool (Identitäten-Pool bearbeiten).

  4. Notieren Sie sich die IAM-Rolle, die der authentifizierten Rolle zugewiesen ist (z. B. „Cognito_MQTT_Proxy_Identity_PoolAuth_Role“).

  5. Öffnen Sie die IAM-Konsole.

  6. Wählen Sie im Navigationsbereich Roles aus.

  7. Suchen Sie nach der zugewiesenen Rolle (z. B. „Cognito_MQTT_Proxy_Identity_PoolAuth_Role“) und wählen Sie sie dann aus.

  8. Wählen Sie Inline-Richtlinie hinzufügen und dann JSON aus.

  9. Geben Sie die folgende Richtlinie ein:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:AttachPolicy", "iot:AttachPrincipalPolicy", "iot:Connect", "iot:Publish", "iot:Subscribe" ], "Resource": "*" }] }
  10. Wählen Sie Review policy (Richtlinie überprüfen) aus.

  11. Geben Sie einen Richtliniennamen ein (z. B. "mqttProxyCognitoRichtlinie“).

  12. Wählen Sie Create Policy (Richtlinie erstellen) aus.

Schritt 4: Konfigurieren von Amazon FreeRTOS

  1. Laden Sie die neueste Version des Amazon FreeRTOS FreeRTOS-Codes aus dem GitHub FreeRTOS-Repo herunter.

  2. Um die OTA-Update-Demo zu aktivieren, folgen Sie den Schritten unterErste Schritte mit dem Espressif ESP32 - DevKit C und dem ESP-WROVER-KIT.

  3. Nehmen Sie diese zusätzlichen Änderungen in den folgenden Dateien vor:

    1. Öffnenvendors/espressif/boards/esp32/aws_demos/config_files/aws_demo_config.h und definierenCONFIG_OTA_UPDATE_DEMO_ENABLED.

    2. Öffnevendors/espressif/boards/esp32/aws_demos/common/config_files/aws_demo_config.h unddemoconfigNETWORK_TYPES wechsle zuAWSIOT_NETWORK_TYPE_BLE.

    3. Öffnen Sie Ihre Endpunkt-URL fürdemos/include/aws_clientcredential.h und geben Sie sie einclientcredentialMQTT_BROKER_ENDPOINT.

      Geben Sie Ihren Dingnamen für einclientcredentialIOT_THING_NAME (z. B. „esp32-ble“). Zertifikate müssen nicht hinzugefügt werden, wenn Sie Amazon Cognito Cognito-Anmeldeinformationen verwenden.

    4. Öffnenvendors/espressif/boards/esp32/aws_demos/config_files/aws_iot_network_config.h und ändernconfigSUPPORTED_NETWORKS und nurconfigENABLED_NETWORKS einbeziehenAWSIOT_NETWORK_TYPE_BLE.

    5. Öffnen Sie dievendors/vendor/boards/board/aws_demos/config_files/ota_demo_config.h Datei und geben Sie Ihr Zertifikat ein.

      #define otapalconfigCODE_SIGNING_CERTIFICATE [] = "your-certificate-key";

    Die Anwendung sollte starten und die Demoversion drucken:

    11 13498 [iot_thread] [INFO ][DEMO][134980] Successfully initialized the demo. Network type for the demo: 2 12 13498 [iot_thread] [INFO ][MQTT][134980] MQTT library successfully initialized. 13 13498 [iot_thread] OTA demo version 0.9.20 14 13498 [iot_thread] Creating MQTT Client...

Schritt 5: Konfigurieren einer Android-App

  1. Laden Sie das Android Bluetooth Low Energy SDK und eine Beispiel-App aus dem amazon-freertos-ble-android GitHub -sdk-Repo herunter.

  2. Öffnen Sie die Dateiapp/src/main/res/raw/awsconfiguration.json und geben Sie die Pool-ID AppClientId, Region und AppClientSecret die Anweisungen im folgenden JSON-Beispiel ein.

    { "UserAgent": "MobileHub/1.0", "Version": "1.0", "CredentialsProvider": { "CognitoIdentity": { "Default": { "PoolId": "Cognito->Manage Identity Pools->Federated Identities->mqtt_proxy_identity_pool->Edit Identity Pool->Identity Pool ID", "Region": "Your region (for example us-east-1)" } } }, "IdentityManager": { "Default": {} }, "CognitoUserPool": { "Default": { "PoolId": "Cognito-> Manage User Pools -> esp32_mqtt_proxy_user_pool -> General Settings -> PoolId", "AppClientId": "Cognito-> Manage User Pools -> esp32_mqtt_proxy_user_pool -> General Settings -> App clients ->Show Details", "AppClientSecret": "Cognito-> Manage User Pools -> esp32_mqtt_proxy_user_pool -> General Settings -> App clients ->Show Details", "Region": "Your region (for example us-east-1)" } } }
  3. Öffnenapp/src/main/java/software/amazon/freertos/DemoConstants.java Sie den Richtliniennamen, den Sie zuvor erstellt haben (z. B. esp32_mqtt_proxy_iot_policy), und geben Sie auch die Region (z. B. us-east-1) ein.

  4. Erstellen und installieren Sie die Demo-App.

    1. Wählen Sie in Android Studio „Erstellen“ und dann „Modul-App erstellen“.

    2. Wähle „Ausführen“ und dann „App ausführen“. Sie können in Android Studio zum Logcat-Fensterbereich wechseln, um Protokollnachrichten zu überwachen.

    3. Erstellen Sie auf dem Android-Gerät auf dem Anmeldebildschirm ein Konto.

    4. Erstellen eines Benutzers. Wenn bereits ein Benutzer existiert, geben Sie die Anmeldeinformationen ein.

    5. Erlauben Sie der Amazon FreeRTOS-Demo, auf den Standort des Geräts zuzugreifen.

    6. Suchen Sie nach Bluetooth Low Energy-Geräten.

    7. Stellen Sie den Schieberegler für das gefundene Gerät auf On.

    8. Drücken Sie y auf der Debug-Konsole für die serielle Schnittstelle für den ESP32.

    9. Wählen Sie Pair & Connect.

  5. Je mehr... Der Link wird aktiv, nachdem die Verbindung hergestellt wurde. Der Verbindungsstatus sollte sich im Logcat des Android-Geräts auf „BLE_CONNECTED“ ändern, wenn die Verbindung abgeschlossen ist:

    2019-06-06 20:11:32.160 23484-23497/software.amazon.freertos.demo I/FRD: BLE connection state changed: 0; new state: BLE_CONNECTED
  6. Bevor die Nachrichten übertragen werden können, verhandeln das Amazon FreeRTOS FreeRTOS-Gerät und das Android-Gerät die MTU aus. Sie sollten die Ausgabe in Logcat sehen:

    2019-06-06 20:11:46.720 23484-23497/software.amazon.freertos.demo I/FRD: onMTUChanged : 512 status: Success
  7. Das Gerät stellt eine Verbindung zur App her und beginnt, MQTT-Nachrichten über den MQTT-Proxy zu senden. Um zu bestätigen, dass das Gerät kommunizieren kann, stellen Sie sicher, dass sich der Wert der Kenndaten MQTT_CONTROL auf 01 ändert:

    2019-06-06 20:12:28.752 23484-23496/software.amazon.freertos.demo D/FRD: <-<-<- Writing to characteristic: MQTT_CONTROL with data: 01 2019-06-06 20:12:28.839 23484-23496/software.amazon.freertos.demo D/FRD: onCharacteristicWrite for: MQTT_CONTROL; status: Success; value: 01
  8. Wenn die Geräte gekoppelt sind, wird auf der ESP32-Konsole eine Eingabeaufforderung angezeigt. Um BLE zu aktivieren, drücken Sie Y. Die Demo funktioniert erst, wenn Sie diesen Schritt ausführen.

    E (135538) BT_GATT: GATT_INSUF_AUTHENTICATION: MITM Required W (135638) BT_L2CAP: l2cble_start_conn_update, the last connection update command still pending. E (135908) BT_SMP: Value for numeric comparison = 391840 15 13588 [InputTask] Numeric comparison:391840 16 13589 [InputTask] Press 'y' to confirm 17 14078 [InputTask] Key accepted W (146348) BT_SMP: FOR LE SC LTK IS USED INSTEAD OF STK 18 16298 [iot_thread] Connecting to broker... 19 16298 [iot_thread] [INFO ][MQTT][162980] Establishing new MQTT connection. 20 16298 [iot_thread] [INFO ][MQTT][162980] (MQTT connection 0x3ffd5754, CONNECT operation 0x3ffd586c) Waiting for operation completion. 21 16446 [iot_thread] [INFO ][MQTT][164450] (MQTT connection 0x3ffd5754, CONNECT operation 0x3ffd586c) Wait complete with result SUCCESS. 22 16446 [iot_thread] [INFO ][MQTT][164460] New MQTT connection 0x3ffc0ccc established. 23 16446 [iot_thread] Connected to broker.

Schritt 6: Ausführen des OTA-Aktualisierungsskripts

  1. Führen Sie die folgenden Befehle aus, um die erforderlichen Komponenten zu installieren:

    pip3 install boto3
    pip3 install pathlib
  2. Erhöhen Sie die Version der FreeRTOS-Anwendungdemos/include/aws_application_version.h.

  3. Erstellen Sie eine neue .bin-Datei.

  4. Laden Sie das Python-Skript start_ota.py herunter. Führen Sie zum Anzeigen des Skripts den folgenden Befehl in einem Terminalfenster aus:

    python3 start_ota.py -h

    Dies sollte etwa wie folgt aussehen:

    usage: start_ota.py [-h] --profile PROFILE [--region REGION] [--account ACCOUNT] [--devicetype DEVICETYPE] --name NAME --role ROLE --s3bucket S3BUCKET --otasigningprofile OTASIGNINGPROFILE --signingcertificateid SIGNINGCERTIFICATEID [--codelocation CODELOCATION] Script to start OTA update optional arguments: -h, --help show this help message and exit --profile PROFILE Profile name created using aws configure --region REGION Region --account ACCOUNT Account ID --devicetype DEVICETYPE thing|group --name NAME Name of thing/group --role ROLE Role for OTA updates --s3bucket S3BUCKET S3 bucket to store firmware updates --otasigningprofile OTASIGNINGPROFILE Signing profile to be created or used --signingcertificateid SIGNINGCERTIFICATEID certificate id (not arn) to be used --codelocation CODELOCATION base folder location (can be relative)
  5. Wenn Sie die bereitgestellteAWS CloudFormation Vorlage zum Erstellen von Ressourcen verwendet haben, führen Sie den folgenden Befehl aus:

    python3 start_ota_stream.py --profile otausercf --name esp32-ble --role ota_ble_iot_role-sample --s3bucket afr-ble-ota-update-bucket-sample --otasigningprofile abcd --signingcertificateid certificateid

    Sie sollten den Update-Start in der ESP32-Debug-Konsole sehen:

    38 2462 [OTA Task] [prvParseJobDoc] Job was accepted. Attempting to start transfer. --- 49 2867 [OTA Task] [prvIngestDataBlock] Received file block 1, size 1024 50 2867 [OTA Task] [prvIngestDataBlock] Remaining: 1290 51 2894 [OTA Task] [prvIngestDataBlock] Received file block 2, size 1024 52 2894 [OTA Task] [prvIngestDataBlock] Remaining: 1289 53 2921 [OTA Task] [prvIngestDataBlock] Received file block 3, size 1024 54 2921 [OTA Task] [prvIngestDataBlock] Remaining: 1288 55 2952 [OTA Task] [prvIngestDataBlock] Received file block 4, size 1024 56 2953 [OTA Task] [prvIngestDataBlock] Remaining: 1287 57 2959 [iot_thread] State: Active Received: 5 Queued: 5 Processed: 5 Dropped: 0
  6. Wenn das OTA-Update abgeschlossen ist, wird das Gerät neu gestartet, wie es der OTA-Aktualisierungsprozess erfordert. Es versucht dann, mit der aktualisierten Firmware eine Verbindung herzustellen. Wenn das Upgrade erfolgreich war, wird die aktualisierte Firmware als aktiv markiert und Sie sollten die aktualisierte Version in der Konsole sehen:

    13 13498 [iot_thread] OTA demo version 0.9.21