inviare comandi da un browser ad un Arduino Uno.3 in ascolto (server) ?

Ragazzi, quando compilavo , il modem andava a 14 Kb (si, bit) quindi erano altri tempi e non mi sono occupato di HTML.

Sono passati 30 anni senza più occuparmi di codice, ed ora potrei seguire un corso on-line, ma non mi serve più di tanto : un piccolo aiuto, oppure, se la cosa è talmente semplice da non meritare risposta, qualche link.
La domanda :
un’Arduino Uno.3 con WizNet presenta dei dati da RAM quando scriviamo il suo indirizzo su un browser.
Funziona, ho formattato in modo elementare la pagina, andandomi a cercare i comandi opportuni.
Vorrei andare avanti, raggruppando i dati in diverse pagine invece di una schermata unica.
Devo quindi scrivere l’indirizzo con un “/” ecc.
Ma poi l’Arduino deve leggere il carattere extra e da lì presentare altri dati. Come si fa ?
A parte la risposta standard del server “HTTP/1.1 200 OK” e le pochissime altre cose che vedete, per il resto dovrei fare ricerche e verifiche HTML, come fatto per l’inizio.

Qualcuno potrebbe cortesemente dirmi come si completa la riga di indirizzo < IP:porta > , e qual’è il codice aggiuntivo da inserire nello sketch per far sì che il comando venga letto dalla Uno dopo che l’Arduino ha risposto con :

client.println("HTTP/1.1 200 OK");
     client.println("Content-Type: text/html");
     client.println("Connection: close");
     client.println("Refresh: 5");
     client.println();
     client.println("<!DOCTYPE HTML>");
     client.print("<html>");
     client.print("<font size=* color=* face=*>");
     ||
     ||
     client.print("</html>");
     client.print("
");

Grazie,
Dritan

dritan:
Ragazzi, quando compilavo , il modem andava a 14 Kb (si, bit) quindi erano altri tempi e non mi sono occupato di HTML.

Tutti invecchiamo... :wink: :wink: :wink:

Usa la macro F() per risparmiare RAM:
client.println(F("Content-Type: text/html"));
ecc
Se non metti F() la stringa verrá prima copiato dalla flash in Ram e poi stamapta. con F() non pasa attraverso la RAM.

Ciao Uwe

Uwe, per darti un'idea :
il mio primo PC (Ericsson) aveva 256 Kb di RAM, un 8086 @10MHz ed un HD da 10Mb che avevo perfino partizionato!
Si ,altri tempi, ma mi ritengo fortunato ad aver studiato i tubi termoionici, poi i transistors, gli integrati, infine i controllori/processori.

Bene, a parte questo, ho usato la macro F(), ed ho trovato una pratica funzione freeRam() che, chiamata in punti opportuni, dice quanta Ram è disponibile.
In tutto ho risparmiato circa 400 byte di Ram.
Su 2K non male.
Cmq devo passare alla Mega per quello che mi serve.

Posso chiederti di darmi un cenno circa il problema postato, cioè impaginare la risposta di Arduino (server) ?

Ho un'altra domanda da rivolgere a te e a chi vorrà rispondere:
Quando spedisco la mail dalla stessa Uno, il "Soggetto" viene correttamente caricato e spedito, ma il corpo del messaggio no; è visibile solo se apro il messaggio con "visualizza sorgente".
Quindi i dati arrivano, ma sono formattati male : dov'è il problema ? mi trovate il busillis ?
Questa la mail :

 EthernetClient client;

 if (client.connect(serverName, 25)) Serial.println(F("MAIL in"));
 else return 0;

 while(!client.available()) delay(1);
 client.println(F("HELO"));

 while(!client.available()) delay(1);
 client.println(F("MAIL From: caio@tizio.it"));

 while(!client.available()) delay(1);
 client.println(F("RCPT To: sempronio@tizio.it"));

 while(!client.available()) delay(1);
 client.println(F("DATA"));

 while(!client.available()) delay(1);


 client.println(F("To: sempronio@tizio.it"));
//SOGGETTO
 client.print(F("Subject:"));
 client.println(Msg);
// BODY
 client.println(MsgMem);
// FINE
 client.println(".");

Msg va nel soggetto della mail, ma il corpo è vuoto e MsgMem è visibile solo nel sorgente.
Grazie,
Dritan

dritan:
Uwe, per darti un'idea :
il mio primo PC (Ericsson) aveva 256 Kb di RAM, un 8086 @10MHz ed un HD da 10Mb che avevo perfino partizionato!
Si ,altri tempi, ma mi ritengo fortunato ad aver studiato i tubi termoionici, poi i transistors, gli integrati, infine i controllori/processori.

Ho incominciato a toccare un computer che era un ZX81 di un amico poi un VIC20 e un C64. :wink: :wink: :wink:

Per il resto deve risponderti qualcun altro.

Ciao Uwe

Ok proverò ad estrarre da qualcosa che c'è in giro, ma me lo volevo risparmiare :

www.megalab.it/8473/creiamo-un-web-server-con-arduino-e-una-ethernet-shield

www.mauroalfieri.it/elettronica/tutorial-arduino-ethernet-e-pagine-multiple-su-sd-card.html

www.logicaprogrammabile.it/arduino-ethernet-shield-controllo-remoto-via-web-con-http

Grazie e saluti a tutti
Dritan