Un primo tentativo di installare un WebServer sull'Arduino Ethernet e' andato buca ma dopo le modifiche al file w5100.h effettuato in questo post tutto ha funzionato in modo corretto
Lo sketch impiegato e' quello presente negli esempi dell'Arduino (sotto File/Examples/Ethernet/Webserver) ed e' stato leggermente modificato per mostrare a video il tempo passato dall'accensione della scheda e con un tag html che permette il refresh automatico della pagina ogni secondo
-----------------------------
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,168,1, 2 };
Server server(80);
unsigned long tempo;
void setup()
{
Ethernet.begin(mac, ip);
server.begin();
}
void loop()
{
Client client = server.available();
if (client) {
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
if (c == '\n' && currentLineIsBlank) {
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
//gestisce il refresh automatico della pagina per aggiornare
//al valore dei sensori
client.println("<meta http-equiv=\"refresh\" content=\"1\">");
tempo = round(millis()/1000);
client.print("Tempo trascorso (sec): ");
client.print(tempo);
client.print("</br></br>");
// output the value of each analog input pin
for (int analogChannel = 0; analogChannel < 6; analogChannel++) {
client.print("analog input ");
client.print(analogChannel);
client.print(" is ");
client.print(analogRead(analogChannel));
client.println("<br />");
}
break;
}
if (c == '\n') {
// you're starting a new line
currentLineIsBlank = true;
}
else if (c != '\r') {
// you've gotten a character on the current line
currentLineIsBlank = false;
}
}
}
delay(1);
client.stop();
}
}
Nessun commento:
Posta un commento