Ciao a tutti dopo svariate prove sono riuscito ad avere cio che volevo:Arduino che legge temperatura da 1 o piu sensori ds18b20 e ethernet shield 5100 con server web per gestione remota, pero mancano ancora alcune cose:
è possibile formattare la pagina in modo che riempia la pagina del browser in versione mobile? va bene anche se lo fa nel pc
è corretto generare la pagina con la funzione server.print o è meglio client.print? con la seconda non sono riuscito a intercettare i comandi POST o GET
void Start(WebServer &server, WebServer::ConnectionType type,char *url_param, bool param_complete)//funzione pagina Start
{
server.httpSuccess();//restituisce al browser l'intestazione http 200 OK
if (type != WebServer::HEAD)//gestisco il tipo di richiesta HEAD
{
String s = "";
if (param_complete == true)
{
s = url_param;
if ( s == "T1=+") TObbiettivo1 += .1;
if ( s == "T1=-") TObbiettivo1 -= .1;
}
sensors.requestTemperatures(); // Send the command to get temperatures
temperatura1 = sensors.getTempCByIndex(0);//read 18b20
if (temperatura1 >= TObbiettivo1+.1 ) rele1=0, Serial.print(rele1);// se aumenta Tamb spengi 0.1 isteresi
if (temperatura1 <= TObbiettivo1-.1 ) rele1=1, Serial.print(rele1);// se diminuisce Tamb accendi 0.1 isteresi
P(htmlHead) =//gestisco la pagina html in base allo stato delle uscite di Arduino
"<html>"
"<head>"
"<font color=white>"
"<div style=\"width:400px;\">" //risoluzione pagina web
"<title>Cronotermostatino</title>"
"</head>"
"<font color=white><align=\"center\">Cronotermostatino</font>"
"<body bgcolor='#444444'>";
server.printP(htmlHead);
server.print("<table border=\"5\">");
server.print("<tr><td><font color=white>Temperatura</td><td><font color=white>T Set</td><td><font color=white>Comandi</td></tr>");// crea tabella
// prima cella
server.print("<tr><td style=\"color: white;\">");
server.print(temperatura1);
//temperaturavecchia = temperatura1;
server.print(" C° </td>");
//seconda cella
if (rele1 == 0 )// Scrive bianco (off)
{
server.print("<td style=\"color: white;\">");
server.print(TObbiettivo1);
server.print(" C° </td>");
digitalWrite(2, LOW);
}
else// Scrive rosso (on)
{
server.print("<td style=\"color: red;\">");
server.print(TObbiettivo1);
server.print(" C° </td>");
digitalWrite(2, HIGH);
}
}
//terza cella
server.print("<td><input type=\"button\" value=\"T-\"onclick=\"location.href='?T1=-'\">");
server.print("<input type=\"button\" value=\"T+\"onclick=\"location.href='?T1=+'\">");
server.print("<input type=\"button\" value=\"ON\"onclick=\"location.href='?U1=ON'\">");
server.print("</td></tr>");
server.print("</table></body></html>");//fine tabella
Questa è la parte webserver e mi mancherebbe come ho gia detto di "fittare" la pagina nello chermo del telefono e se possibile di inviare un refresh pagina alla variazione dei dati visualizzati senza intervenire sul browser che vede la pagina.
se qualcuno ha eventualmente anche qualche guida dove viene spiegato come costruire la pagina con webduino perche non sono riuscito a trovarla