Salve a tutti, vi scrivo per chiedervi una mano, da poco mi sto dilettando sulla configurazione di un Arduino Uno per la domotica.
Ho iniziato con il WebServer seguente …
#include <Ethernet.h>
byte mac[] = { 0x54, 0x55, 0x58, 0x10, 0x05, 0x24 };
byte ip[] = { 192, 168, ***, *** }; // IP-Adresse
byte gateway[] = { 192, 168, ***, *** }; // Gateway
byte subnet[] = { 255, 255, ***, *** };
Server server(80);
int Pin2 = 2;
int Pin3 = 3;
int Pin4 = 4;
int Pin5 = 5;
String readString = String(100);
void setup(){
Ethernet.begin(mac, ip, gateway, subnet);
server.begin();
pinMode(Pin2, OUTPUT);
pinMode(Pin3, OUTPUT);
pinMode(Pin4, OUTPUT);
pinMode(Pin5, OUTPUT);
Serial.begin(9600); }
void loop(){
Client client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();
if (readString.length() < 100) {
readString = readString + c;
}
Serial.print(c);
if (c == '\n') {
if(readString.indexOf("2=On+%2F+Off") > -1) {
digitalWrite(Pin2, HIGH);
delay(100);
digitalWrite(Pin2, LOW);
Pin2ON = true;
}
if(readString.indexOf("3=On+%2F+Off") > -1) {
digitalWrite(Pin3, HIGH);
delay(100);
digitalWrite(Pin3, LOW);
Pin3ON = true;
}
if(readString.indexOf("4=On+%2F+Off") > -1) {
digitalWrite(Pin4, HIGH);
delay(100);
digitalWrite(Pin4, LOW);
Pin4ON = true;
}
if(readString.indexOf("5=On+%2F+Off") > -1) {
digitalWrite(Pin5, HIGH);
delay(100);
digitalWrite(Pin5, LOW);
Pin5ON = true;
}
if(readString.indexOf("all=Spegni") > -1){
digitalWrite(Pin2, HIGH);
digitalWrite(Pin3, HIGH);
digitalWrite(Pin4, HIGH);
digitalWrite(Pin5, HIGH);
delay(100);
digitalWrite(Pin2, LOW);
digitalWrite(Pin3, LOW);
digitalWrite(Pin4, LOW);
digitalWrite(Pin5, LOW);
}
//--------------------------HTML------------------------
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
client.print("<html><head>");
client.print("<title>Arduino Webserver</title>");
client.println("</head>");
client.print("<body>");
client.println("<div style='width:240px; height:320px;'>"); //risoluzione per nokia e66 240x320
client.println("<center><font color='#2076CD'>ARDUINO</font color></center>");
client.println("
");
client.println("<table><tr>");
client.println("<td><font face='Verdana' size='2'>Controllo n1</font></td>");
client.println("<td><form method=get><input type=submit name=4 value='On / Off'></form></td>");
client.println("</tr><tr><td><font face='Verdana' size='2'>Controllo n2</font></td>");
client.println("<td><form method=get><input type=submit name=2 value='On / Off'></form></td>");
client.println("</tr><tr><td><font face='Verdana' size='2'>Controllo n3</font></td>");
client.println("<td><form method=get><input type=submit name=3 value='On / Off'></form></td>");
client.println("</tr><tr><td><font face='Verdana' size='2'>Controllo n4
</font></td>");
client.println("<td><form method=get><input type=submit name=5 value='On / Off'></form></td>");
client.println("</tr><tr><td><font face='Verdana' size='2'>Spegni tutto</font></td><td><form method=get><input type=submit name=all value='Spegni'></form></td>");
client.println("</tr><table></div></body></html>");
readString="";
client.stop();
}}}}}
Ora avendo una conoscenza medio-alta di html e css ho pensato di migliorarne l’aspetto grafico.
Quindi ho realizzato un sito più complesso composto da un index dal quale raggiungere altre pagine con i pulsanti per controllare i relè ,con immagini il tutto gestito dai css … non ho ancora realizzato il client … però ora sorge il “problema” del caricare i vari file .html il .css e le 5 immagini sull’SD.
Ho trovato TinyWebServer che non ho compreso, potete spiegarmi come funziona la mia conoscenza del C è basilare!