Pages: [1]   Go Down
Author Topic: Formattazione pagina web con webduino  (Read 1419 times)
0 Members and 1 Guest are viewing this topic.
Firenze
Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Code:
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
Logged

Fidenza (PR)
Offline Offline
Full Member
***
Karma: 3
Posts: 143
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Non so se funziona anche per i div ma quando vai ad impostare la larghezza prova a mettere al posto di 400px la percentuale.. Nel tuo caso 100% se vuoi a tutta pagina.. Con le tabelle funziona
Logged

Parma - Italy
Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao,

  refresh a cambio valori: Che io sappia non puoi forzare il refresh della pagina web da lato server dal momento che la connessione si chiude, potresti eventualmente inserire nella pagina un refresh ogni tot, da una veloce ricerca su google ho trovato questo:

http://www.createwebsite.it/auto-refresh-della-pagina-con-timer

Come spiegato, oltre che includerlo nella pagina html che crei, potresti salvarlo sulla SD dell'ethernet shield e farlo caricare dalla tua pagina.

Sperando di non aver detto delle castronerie... :-)

Carlo.
Logged

ITA - PV - Canneto Pavese
Offline Offline
Newbie
*
Karma: 0
Posts: 36
oggi sono stanco; non parlatemi di lavoro!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Se vuoi fare un refresh della pagina ad ogni tot secondi , senza usare script o altre diavolerie, puoi semplicemente usare il tag meta

<meta http-equiv="refresh" content="'60'" />   <-- esempio per 60 secondi


Ciao
Logged

Leo55

Firenze
Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

io vorrei che arduino aggiornasse la pagina web al variare dei dati da visualizzare, è possibile o è "vietato dalle regole html"?
per quanto riguarda il refresh ciclico funziona ma usando il passaggio dei parametri verso arduino con href mi ripassa continuamente lo stesso comando.
come si fa a cancellare la stringa nella barra degli indirizzi una volta letto il comando?
Logged

Pages: [1]   Go Up
Jump to: