Zeitschaltuhr per WebIF - vergleichbares Projekt gesucht

Hallo,

ich habe folgendes vor: Ein Ausgang soll zu einer frei programmierbaren Zeit ein- bzw. ausgeschaltet werden. Hierzu sollen die Zeiten auf der Webseite editierbar sein, so dass man den Sketch ansich nicht mehr ändern muss. Ethernet-Shield und RTC sind selbstverständlich vorhanden und werden entsprechend verbaut.

Gefunden habe ich eine Menge Projekte, bei denen ein Ausgang per Button geschaltet wird. Aber ein Projekt, bei dem die Schaltzeiten per Webseite zu ändern sind habe ich für den Arduino noch nicht gefunden.

Kennt jemand von euch solch ein Projekt und könnte mir den Link nennen?

Wenn man eh schon einen Server am laufen hat, dann kann man die Uhr doch gleich im Server realisieren und den Arduino nur noch als "Pin Treiber" verwenden. Oder den Arduino gleich ganz aus der Konstruktion entfernen. Deshalb gibt es so wenige Beispiele dafür.

Der Webserver soll ja auf dem Arduino laufen. Sollte eigentlich nicht schwer sein, das zu realisieren. Die Daten dann im EEprom ablegen, das es nach einem Stromausfall korrekt weitergeht.
Einzig der Speicher könnte bei einem Uno knapp werden.

Gelegenheitsbastler:
Gefunden habe ich eine Menge Projekte, bei denen ein Ausgang per Button geschaltet wird. Aber ein Projekt, bei dem die Schaltzeiten per Webseite zu ändern sind habe ich für den Arduino noch nicht gefunden.

Kennt jemand von euch solch ein Projekt und könnte mir den Link nennen?

Wenn Du nichts fertig findest, müßtest Du es selbermachen.

Im Endeffekt würdest Du einen Zeitschaltuhren-Sketch mit einem Webserver verbinden, der Dir eine Seite zum Ändern der Zeiten anbietet und gesendete Daten verarbeiten kann.

Ich habe mal ein HTML-Muster für die notwendigen Eingabeformulare erstellt und hänge die Datei mal dran, vorbereitet für vier Schaltkanäle und 6 Schaltzeiten, um sich mal ansehen zu können, wie es vom HTML her aussehen könnte.

Man müßte sich eben nur darauf festlegen, was an Browsern unterstützt sein soll, im Muster habe ich mal vorbereitet:

  • erste zwei Zeilen "Texteingabe" ==> Eingabefelder werden von jedem Browser unterstützt
  • folgende zwei Zeilen "Zahleneingabe" ==> Browser muß HTML5-kompatibel sein
  • letzte zwei Zeilen "Zeiteingabe" ==> Browser muß HTML5-kompatibel sein und "time" Input unterstützten

Wenn man sich festgelegt hat, was HTML-mäßig unterstützt werden soll, kann man dann einen Webserver-Sketch aufsetzen, der entsprechendes HTML ausgibt und gesendete Werte verarbeitet. Und nebenbei die Schaltausgänge entsprechend der gesendeten Werte und der aktuellen Zeit ein/aus schaltet.

Gelegenheitsbastler:
Gefunden habe ich eine Menge Projekte, bei denen ein Ausgang per Button geschaltet wird. Aber ein Projekt, bei dem die Schaltzeiten per Webseite zu ändern sind habe ich für den Arduino noch nicht gefunden.

Kennt jemand von euch solch ein Projekt und könnte mir den Link nennen?

Wenn Du nichts fertig findest, müßtest Du es selbermachen.

Im Endeffekt würdest Du einen Zeitschaltuhren-Sketch mit einem Webserver verbinden, der Dir eine Seite zum Ändern der Zeiten anbietet und gesendete Daten verarbeiten kann.

Ich habe mal ein HTML-Muster für die notwendigen Eingabeformulare erstellt und hänge die Datei mal dran, vorbereitet für vier Schaltkanäle und 6 Schaltzeiten.

Man müßte sich eben nur darauf festlegen, was an Browsern unterstützt sein soll, im Muster habe ich mal vorbereitet:

  • erste zwei Zeilen “Texteingabe” ==> Eingabefelder werden von jedem Browser unterstützt
  • folgende zwei Zeilen “Zahleneingabe” ==> Browser muß HTML5-kompatibel sein
  • letzte zwei Zeilen “Zeiteingabe” ==> Browser muß HTML5-kompatibel sein und “time” Input unterstützten

HTML-Code:

<!DOCTYPE HTML>
<html>
<head>
  <title>Timer Switch Settings</title>
  <meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body>


<form>
<table>
<tr><th>Out</th><th>ON</th><th>OFF</th><th>&nbsp;</th></tr>
<tr>
<td>
  <select name="timer1">
  <option value="CH1">CH1</option>
  <option value="CH2">CH2</option>
  <option value="CH3">CH3</option>
  <option selected value="CH4">CH4</option>
  </select>
</td>
<td>
  <input type="text" name="on1" maxlength="4" size="6" value="200" />
</td>
<td>
  <input type="text" name="off1" maxlength="4" size="6" value="230" />
</td>
<td>
  <input type="submit" value="Set" />
</td>
</tr>
</table>
</form>

<form>
<table>
<tr>
<td>
  <select name="timer2">
  <option value="CH1">CH1</option>
  <option value="CH2">CH2</option>
  <option selected value="CH3">CH3</option>
  <option value="CH4">CH4</option>
  </select>
</td>
<td>
  <input type="text" name="on2" maxlength="4" size="6" value="600" />
</td>
<td>
  <input type="text" name="off2" maxlength="4" size="6" value="745" />
</td>
<td>
  <input type="submit" value="Set" />
</td>
</tr>
</table>
</form>


<form>
<table>
<tr>
<td>
  <select name="timer3">
  <option value="CH1">CH1</option>
  <option value="CH2">CH2</option>
  <option value="CH3">CH3</option>
  <option value="CH4">CH4</option>
  </select>
</td>
<td>
  <input type="number" name="on3" min="0" max="2359" value="700">
</td>
<td>
  <input type="number" name="off3" min="0" max="2359" value="845">
</td>
<td>
  <input type="submit" value="Set" />
</td>
</tr>
</table>
</form>


<form>
<table>
<tr>
<td>
  <select name="timer4">
  <option value="CH1">CH1</option>
  <option value="CH2">CH2</option>
  <option value="CH3">CH3</option>
  <option value="CH4">CH4</option>
  </select>
</td>
<td>
  <input type="number" name="on4" min="0" max="2359" value="1200">
</td>
<td>
  <input type="number" name="off4" min="0" max="2359" value="1530">
</td>
<td>
  <input type="submit" value="Set" />
</td>
</tr>
</table>
</form>


<form>
<table>
<tr>
<td>
  <select name="timer5">
  <option value="CH1">CH1</option>
  <option value="CH2">CH2</option>
  <option value="CH3">CH3</option>
  <option value="CH4">CH4</option>
  </select>
</td>
<td>
  <input type="time" name="on5" value="17:00">
</td>
<td>
  <input type="time" name="off5" value="18:45">
</td>
<td>
  <input type="submit" value="Set" />
</td>
</tr>
</table>
</form>


<form>
<table>
<tr>
<td>
  <select name="timer6">
  <option value="CH1">CH1</option>
  <option selected value="CH2">CH2</option>
  <option value="CH3">CH3</option>
  <option value="CH4">CH4</option>
  </select>
</td>
<td>
  <input type="time" name="on6" value="13:33">
</td>
<td>
  <input type="time" name="off6" value="15:55">
</td>
<td>
  <input type="submit" value="Set" />
</td>
</tr>
</table>
</form>


</body>
</html>

Wenn man sich festgelegt hat, was HTML-mäßig unterstützt werden soll, kann man dann einen Webserver-Sketch aufsetzen, der entsprechendes HTML ausgibt und gesendete Werte verarbeitet. Und nebenbei die Schaltausgänge entsprechend der gesendeten Werte und der aktuellen Zeit ein/aus schaltet.

Für einen halbwegs erfahrenen Arduino/C++/HTML-Programmierer scheint mir das eine reine Fleißaufgabe zu sein, gravierende Probleme sehe ich dabei keine.