Ciao ragazzi.
Sto continuando i miei esperimenti con arduino e ethernet. Allora, ora sono ad un punto fermo: arduino va a formare un webserver e tramite una connessione ddns cerco di comandarlo da remoto (ancora non mi è possibile dato che avevo una linea VoIP Telec** e con il modem/router che danno loro in comodato d'uso aprendo le porte riesco ad entrare dall'esterno, ma la IP camera collegata al mio impianto non riesco a farla funzionare, dopo svariate prove sono giunto alla conclusione che è il router..quindi stò tornando al RTG tradizionale e cambiare router[mio]).
In sostanza, da remoto tramite browser ci si collega all' IP dell' arduino e si va ad aprire e chiudere un relè collegato al pin, nella pagina web sono presenti 2 buttons uno per l'accensione e l'altro per lo spegnimento del relè
client.println("<th>Comandi</th></tr>");
client.print("<tr><td>RELE1</td>""<td><button type=button><a href=\"/ACCENDI\" target=\"inlineframe\">ACCENDI</a></button></td><td><button type=button><a href=\"/SPEGNI\" target=\"inlineframe\">SPEGNI</a></button></td></tr>");
e dopo l'uscita va a leggere le stringhe
if(readString.indexOf("ACCENDI") >0)//controlla se stato premuto Accendi
{
digitalWrite(4, HIGH); // mette ad HIGH il pin 4
Serial.println("Led On");
if(readString.indexOf("SPEGNI") >0)//controlla se stato premuto Spegni
{
digitalWrite(4, LOW); // mette a LOW il pin4
Serial.println("Led Off");
Ora stavo cercando il modo per scrivere una funzione dove, inserito l'orario tramite questo codice:
<form action="demo_form.asp">
Select a time: <input type="time" name="usr_time">
<input type="submit">
</form>
mi gestisse il controllo del relè. Ho ordinato un rtc ds1307 e vorrei che tramite l'input form di cui sopra venga comandato il relè. A parte che stò ancora pensando a come rispondere all'ASP con arduino, è fattibile secondo voi mettere il risultato dell'input form in una variabile e fare un controllo ogni tot millis() per confrontare l'ora voluta di accensione con quella attuale dell'RTC? Nel senso imposto nel submit form 22.30, inserisco i valori 22 e 30 come variabili e per esempio ogni 60 secondi controllo se corrisponde tramite byte ora = Wire.read(); e byte minuti = Wire.read(); all' RTC; se le due si eguagliano allora faccio partire l' ON. Può essere una cosa fattibile o c'è una funzione più logica e semplice da realizzare secondo voi?
Grazie,
Marco