Ich arbeite an Arduino Nano (32 KB Flash-Speicher, davon 2 KB vom Bootloader, 2 KB SRAM, 1 KB EEPROM) .
Der Mikrocontroller nimmt über ein RS485- Modul Eingaben von einem elektrischen Gerät entgegen und sendet die gelesenen Daten mithilfe des GPRS A6- Moduls an einen Remote-Server . Das Produkt soll mit dem Remote-Server interagieren und in regelmäßigen Abständen Daten veröffentlichen.
Ich habe den Integrationsteil abgeschlossen und das Gerät funktioniert einwandfrei, sammelt Daten und veröffentlicht auf dem Server (ca. 10-15 km entfernt). Die einzige Herausforderung, der ich gegenüberstehe, ist , wie ich vorgehen soll , wenn es 100 solcher Geräte gibt und ich die Firmware mithilfe des Remote-Servers (oder eines anderen geeigneten Mechanismus) aktualisieren muss.
Ich habe viele Posts durchlaufen, in denen vorgeschlagen wurde, ein anderes Arduino als ISP zu verwenden. Dies könnte mein letzter Ansatz sein (da dies die endgültigen Produktkosten erhöhen würde).
Das drahtlose Firmware-Update ist wie in der Stack Exchange-Community für Low-End-Mikrocontroller noch unklar. Jede Diskussion kann für viele eine große Hilfe sein.
quelle
Antworten:
Kurze Antwort: Es ist möglich.
Lange Antwort: Es ist kompliziert. Deshalb gibt es so viele, sehr schlechte Implementierungen.
Zumindest haben Sie zwei Schritte in einem Remote- / Over-the-Air-Update-Prozess.
Dies ist natürlich das absolute Minimum. Wenn Sie in Iterationen arbeiten, ist dies auch ein sehr gültiger erster Schritt. Wenn Sie mehr als ein Gerät haben, müssen Sie in der Lage sein, die richtige Firmware dem richtigen Gerät zuzuordnen . Wenn Sie die Wahrscheinlichkeit verringern möchten, dass Ihr Gerät blockiert wird, möchten Sie den Status Ihres Geräts vor und nach dem Update überprüfen. Außerdem möchten Sie den Transport sichern und den Transport so zuverlässig wie möglich und - natürlich - gestalten. haben eine Fallback-Strategie im Falle eines Update-Fehlers .
Das sind fünf weitere Schritte, die Sie zu einem zuverlässigen Produkt führen. Es gibt Best Practices für diese Dinge, die jedoch von Ihrer Projektumgebung abhängen. Vielleicht ist es etwas billiges und eine Ausfallrate von 5% bei Updates ist in Ordnung, vielleicht ist es ein Schrittmacher und sogar ein Fehler insgesamt ist inakzeptabel, weil er zu einem fatalen Szenario führt. Sie müssen Lösungen für die Grundlagen finden, die zu Ihrem Produkt passen.
Darüber hinaus gibt es Dutzende verschiedener Dinge zu beachten. Wirst du Kunden haben? Müssen Sie sie informieren? Haben sie ein Mitspracherecht bei der Aktualisierung / Installation des Updates? Befinden sich Ihre Geräte in verschiedenen Ländern? Gelten gesetzliche Beschränkungen? Treffen normative Standards zu? Wie viele Geräte aktualisieren Sie? 1? Ein Dutzend? Hunderte? Millionen?
Wenn Sie fünf Geräte aktualisieren, kann der Prozess sehr gesprächig sein. Wenn Sie Millionen aktualisieren, kann dies sehr teuer werden. Und ja, das wirkt sich auf das aus, was ich oben als ersten Schritt aufgeführt habe, nämlich das Übertragen der Firmware. Vielleicht erstellen Sie einen Schrittmacher, und die Prozesskosten von Hunderten von Nachrichten pro Update sind in Anbetracht der Alternative in Ordnung.
Dies sind nur die Fragen, die ich in zwei Minuten aufgeschrieben habe, daher ist diese Liste sicherlich nicht vollständig. Mein Punkt ist, ohne Informationen über das Szenario können wir Ihnen nicht wirklich richtig helfen.
quelle