E' da qualche tempo che guardo sulla mia ethernet shield per giocarci un po'.
Ho cercato su internet ma non ho trovato niente.
Ho creato un server html con arduino, quando vado sull' indirizzio IP, arduino mi rimanda subito alla pagina home.htm, contenente nella root dell' SD e da quella pagina poi vado, con collegamenti ipertestuali o immagini(tradotte in Base64 e inserite nelle pagine htm), in altre pagine del mio piccolo web server.
Vorrei trovare il modo (grazie per esempio a dei pulsanti) di riportare un valore sullo sketch di arduino in modo da poter controllare per esempio un' uscita, o mandare via seriale un messaggio.
lo sketch che uso in questo momento è questo:
#include <SPI.h>
#include <Ethernet.h>
#include <SD.h>#define maxLength 25
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192, 168, 1, 177 };
byte gateway[] = { 192, 168, 1, 1 };
byte subnet[] = { 255, 255, 255, 0 };
File htmlFile;
EthernetServer server(80);void setup()
{
Ethernet.begin(mac, ip, gateway, subnet);
server.begin();
if (!SD.begin(4)) { return; }
}void loop()
{
char* file_to_load = "home.htm";
String inString = String(maxLength);EthernetClient client = server.available();
if (client) {
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
if (inString.length() < maxLength) {
inString += c;
}
if (c == '\n' && currentLineIsBlank) {
if (inString.indexOf(".htm") > -1) {
String new_file_load;
int rootIndex = inString.indexOf("/");
new_file_load = inString.substring((rootIndex+1), (rootIndex+13));int endIndex = new_file_load.indexOf(" ");
if (endIndex > -1) {
new_file_load = new_file_load.substring(0, endIndex);
}
if (new_file_load != "") {
new_file_load.toCharArray(file_to_load,12);
}
}client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();break;
}
if (c == '\n') {
currentLineIsBlank = true;
}
else if (c != '\r') {
currentLineIsBlank = false;
}
}
}
delay(1);
client.stop();
}
}void read_file( char* page_html, EthernetClient client )
{
htmlFile = SD.open( page_html );
if (htmlFile) {
while (htmlFile.available()) {
client.write(htmlFile.read());
}htmlFile.close();
}
}
Grazie 1000 e scusatemi per la mia ignoranza
Gamer3500