Arduino – Steuern per Internet

Fernsteuerung von RC-Dosen per Browser[/caption]

Fernsteuerung von RC-Dosen per Browser
Fernsteuerung von RC-Dosen per Browser

Nachdem ich gestern von den Funksteckdosen gesprochen habe, wollte ich etwas nachforschen, wie ich den Arduino Ethernet über das Internet fernsteuern kann.

Erstes Augenmerk lag auf dem WebServer-Script (in der Arduino IDE unter „Netzwerk“ bei den Beispielen zu finden), über das ich zumindest den Arduino in einen sehr einfachen WebServer verwandeln kann.

Aber wie kann ich z.B. über einen Form-Button in der HTML-Seite eine bestimmte Funktion im Arduino-Code ausführen? Die Lösung…

…ist relativ simpel 🙂 Ich habe mich eines Scripts von Poldi bedient, dass eigentlich genau das umsetzt, was ich im Sinn hatte: Eine einfache Oberfläche zum Schalten von X.

Mir gefiel jedoch die Optik und der Aufbau nicht, sodass ich das Script etwas angepasst und erweitert habe.

Passend zu meinem vorherigen Artikel (Mit Arduino Funksteckdosen ansteuern) und das Funksteckdosen-Set von Elro können damit 4 RC-Steckdosen gesteuert werden.

Als Gimmick, von Poldi übernommen, wird auch der Status der Steckdosen (An oder Aus) angezeigt. Ich habe mit dem Script bisher etwas versucht und getestet – es ist also keineswegs als „Fertig“ anzusehen und mit Sicherheit nicht „optimiert“ – aber vielleicht hilft es dem ein oder anderen beim basteln.

Als Besonderheit schreibt das Script allen HTML-Output in den Flash statt in den RAM, da die 2kb des Arduino Uno einfach zu gering sind. Spätestens beim Anklicken der zweiten Steckdose (An/Aus) hängt sich der Ardu komplett auf. Ihr benötigt zusätzlich die Bibliothek Flash (für das Speichern im Flash statt SRAM) und FreeMemory (für die Anzeige des freien Arbeitsspeichers).

Bastian
Bastian

Seit 2006 bin ich täglich im IT-Umfeld unterwegs und interessiere mich für technische Lösungen im Hard- und Softwarebereich, die einem den Alltag erleichtern. Zu meinen Hobbies zählt der 3D-Druck, das Tüfteln, Scripten, eine eigene Holzwerkstatt, sowie der unqualifizierte Umgang mit dem Lötkolben.

Artikel: 126

6 Kommentare

  1. Hallo Bastian,
    bin Neuling in der Arduino-Welt und möchte per Internet un Lan mit einem Uno + Ethernet Shield vier Ausgänge des Uno schalten. Deine Weboberfläche mit Rückmeldung ist genau das was ich gesucht habe. Ich habe aber kaum Ahnung (weil ja Anfänger) von der Programmierung. Könntest Du mir dazu bitte den kompletten Code schicken? Ich kann dann besser selbst probieren wenn ich erst mal ein funktionierendes Beispiel habe. Welche Arduino IDE nutzt man dazu am besten? Einige Codes aus dem Netz scheinen m.E. nach nur mit bestimmten IDE‘ s zu gehen.

    Vorab ein großes Danke

    Peter

    • Hallo,
      was genau fehlt dir den „für den kompletten Code“? Obiges ist halt nur ein Beispiel… ich muss dir auch gestehen, dass ich schon längere Zeit nichts mehr mit Arduino’s & Co. gemacht habe…
      Als IDE bietet sich natürlich immer die offizielle Arduino-IDE in der aktuellen Version an 🙂 Ggf. gibt es bei manchen Libraries Kompatibilitätsprobleme, soviel ich weiß ist die aktuelle Arduino IDE noch nicht sooo lange veröffentlicht – dann bietet sich an, einfach eine Version älter zu nehmen 🙂

      • Hallo Bastian,
        ist vielleicht etwas blöd beschrieben: Ich möchte gern die Weboberfläche haben wie in deinem Beispiel, also mit AN, AUS, STATUS. Da du rcswitch nutzt bräuchte ich ein Beispiel zum Setzen eines Ausgangs ohne rcswitch. Ich habe viele Varianten gefunden, die mich eigentlich nur verwirrt haben. Dann glaube ich gelesen zu haben, das man den Flash „nur“ x-mal beschreiben kann. Dann wäre die Sache ja vorbei …. Auf die Ausgaben „Steckdose ist ausgeschaltet könnte ich auch verzichten. Ich weiß halt nicht was ich wie ersetzen bzw. weglassen muss um ans Ziel zu kommen.

        Grüße

        Peter

  2. hi i have a problem .. i copy your code and when i start to upload in arduino its a error „FILENAME“ or can you help me how to fix this please ?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert