#include <SPI.h>
#include <Ethernet.h>
#include <WString.h>
byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
};
String stato = "on";
IPAddress ip(192, 168, 1, 177);
EthernetServer server(90);
void setup()
{
Serial.begin(9600);
Ethernet.begin(mac, ip);
server.begin();
Serial.println("server is at ");
Serial.println(Ethernet.localIP());
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(9, OUTPUT);
pinMode(8, OUTPUT);
pinMode(11, OUTPUT);
SD.begin(4);
String stato = "on";
}
void rispondiClient(String risposta, EthernetClient ethclient)
{
ethclient.println("HTTP/1.1 200 OK");
ethclient.println("Content-Type: text/html");
ethclient.println("Connection: close");// the connection will be closed after completion of the response
ethclient.println("Refresh: 5");// refresh the page automatically every 5 sec
ethclient.println();
ethclient.println("<!DOCTYPE HTML>");
ethclient.println("<html><body>");
ethclient.println(risposta);
ethclient.println("</body></html>");
}
void loop()
{
Serial.println(stato);
String getRequest = String();
char requestChar;
EthernetClient HTTPClient = server.available();
if (HTTPClient)
{
Serial.println("new client");
boolean currentLineIsBlank = true;
boolean sentHeader = false;
while (HTTPClient.connected())
{
if (HTTPClient.available())
{
while (HTTPClient.available())
{
char requestChar = HTTPClient.read();
getRequest += requestChar;
if (requestChar == '\n')
{
while (HTTPClient.available())
{
char requestChar = HTTPClient.read();
getRequest += requestChar;
if (requestChar == '\n')
{
break;
}
}
break;
}
}
if (getRequest.indexOf("on") != -1)
{
String stato = "on";
digitalWrite(8, HIGH);
rispondiClient(stato, HTTPClient);
}
if (getRequest.indexOf("off") != -1)
{
String stato = "off";
digitalWrite(8, LOW);
rispondiClient(stato, HTTPClient);
}
}
break;
}
}
if(stato = "on")
{
digitalWrite(8, HIGH);
}
if(stato = "off")
{
digitalWrite(8, LOW);
}
}
HTTPClient.stop();
delay(100);
Serial.println("client disconnected");
}