Kann ich mein Arduino über einen WLAN-Schild neu programmieren?

9

Mein Arduino ist an einige Lichter über meinem Aquarium angeschlossen und ich kann sie über einen Webbrowser in meinem LAN steuern. Ich frage mich, ob ich das Programm auf dem Arduino ändern kann, ohne es über USB an eine Maschine anschließen zu müssen, was etwas unpraktisch wäre. Es muss eine Möglichkeit geben, die WLAN-Verbindung zu nutzen.

Ich habe Pololus Pixel Shield verwendet, um Programme drahtlos zu senden (es fungiert nur als serielles Port-Radio), aber das ist eine andere Technologie als mein WiFi-Shield.

Kennt jemand eine Möglichkeit, wie ich dies über WLAN tun kann? Wenn ich neuen Code in den Flash-Speicher des WiFi-Schutzschilds hochlade, kann dieser möglicherweise vom Flash-Speicher hochgeladen werden? Ich bin mir nicht sicher, wie ich das machen soll oder ob es überhaupt möglich ist.

Vielleicht wäre ein ganz anderer Ansatz einfacher?

Tintenfisch
quelle

Antworten:

8

Theoretisch ist dies möglich, in der Praxis jedoch nicht trivial. Der Code, der für das Laden Ihrer neuen Skizze in das Arduino verantwortlich ist, wird als Bootloader bezeichnet . Alle mir bekannten gängigen Versionen von Bootloadern basieren auf Seriell / USB. Um eine Skizze über das WiFi-Schild zu laden, müsste der Bootloader neu geschrieben werden, um mit dem WiFi-Schild anstatt seriell zu kommunizieren. Dies würde einige Arbeit erfordern, ist aber in der Praxis nicht unmöglich.

Beachten Sie, dass Sie dies unabhängig davon tun müssen, ob Sie die Skizze auf dem WiFi-Schild speichern (was meiner Meinung nach schwierig wäre: Ich bin mir nicht sicher, ob dies überhaupt möglich ist) oder die Skizze direkt auf Ihr Arduino hochladen: the Der Bootloader muss mit dem Schild kommunizieren, um die Skizzendaten lesen zu können.


Es gibt eine Möglichkeit, Ihr Arduino drahtlos einfach neu zu programmieren, und das ist Bluetooth. Sie müssen ein Bluetooth-Modul erwerben (ich weiß nicht, ob ein Bluetooth-Schutzschild funktioniert) und es an serielle Hardware- Ports anschließen. Der Bootloader auf Ihrem Arduino kann bereits seriell sprechen, sodass das Problem behoben ist. Sie müssen jedoch (möglicherweise) zwei andere Probleme lösen:

  • Die kostengünstigsten Bluetooth-Module, die Sie bei Ebay finden, sind 3,3 V. Dies bedeutet, dass Sie sie mit 3,3 V versorgen müssen und die Sendeleitung von Ihrem Arduino von 5 V auf 3,3 V spannungsverschoben werden muss. Sie können das erste (Strom-) Unterproblem lösen, indem Sie ein Bluetooth-Modul kaufen, das für die 5-V-Kommunikation ausgelegt ist, oder wenn Ihr Arduino über 3V3-Strom verfügt, um das Bluetooth-Modul mit Strom zu versorgen. Ein 5V-fähiges Modul löst auch das zweite Problem. Alternativ können Sie den 5-V-Ausgang Ihres Arduino mit einer der in dieser Frage beschriebenen Techniken spannungsverschieben .
  • Um Ihr Arduino automatisch zu programmieren, muss das Arduino unmittelbar vor dem Hochladen der Skizze zurückgesetzt werden: Wenn Arduino normal ausgeführt wird, ist der Bootloader nicht aktiv. Durch das Zurücksetzen des Arduino wird der Bootloader aktiviert und das Hochladen neuer Skizzen ermöglicht. auf dem Arduino verwendet USB geschickt die DTR-Leitung, um das Gerät zurückzusetzen. Die meisten seriellen Bluetooth-Module bieten jedoch nur TS / RX-Ausgang, sodass Sie den Arduino wahrscheinlich manuell zurücksetzen müssen, um eine Skizze hochzuladen, es sei denn, Sie finden auf dem Bluetooth-Modul einen Signalausgang, den Sie zur Verbindung mit einer Rücksetzschaltung verwenden können .
Angelatlarge
quelle
2

Heute wurde ich auf ein Produkt aufmerksam, das dies erreichen kann: den ESP8266. Damit können Sie Ihr Arduino über eine WLAN-Verbindung programmieren / neu programmieren. Verschiedene Unternehmen stellen Versionen des Chips auf verschiedenen Breakout-Board-Anordnungen her. Insbesondere kann es ein WiFi AVRISP für ein Arduino werden.

Sie können den ESP8266 auch selbst mit dem Arduino SDK programmieren und er verfügt über ausreichend eigene Leistung.

Sehen Sie hier auf whatimadetoday (nicht mein post) für eine gute Einführung , wie man mit dem Esp8266 und dem Arduino SDK gehend zu erhalten. Sobald das SDK für die Programmierung des ESP8266 eingerichtet ist, können Sie in die IDEs navigieren Beispielen "Arduino_Wifi_AVRISP" suchen.

Sie können das Board für Preise finden, die zwischen 5 und 15 US-Dollar liegen.

Tintenfisch
quelle