Codice PHP:
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xBE };
byte ip[] = { 192 ,168 ,1 ,10 };
byte gateway[] = { 192 ,168 ,1 ,1 };
byte subnet[] = { 255 ,255 ,255 ,0 };
EthernetServer server(80);
String readString = String(30);
void setup(){
Ethernet.begin(mac, ip, gateway, subnet);
delay(1000);
pinMode(9, OUTPUT);
digitalWrite(9, LOW);
pinMode(8, OUTPUT);
digitalWrite(8, LOW);
pinMode(7, OUTPUT);
digitalWrite(7, LOW);
Serial.begin(9600);
}
void loop(){
EthernetClient client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();
if (readString.length() < 30)
{
readString = readString + c;
}
if (c == '\n') {
Serial.print(readString);
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
if(readString.startsWith("GET /?out=9&status=1"))
{Serial.print("\n 9 HIGH \n");
digitalWrite(9, HIGH);
client.print("{\"status\" : \"1\" , \"out\" : \"");
client.print(9);
client.print("\"}");
}
if(readString.startsWith("GET /?out=9&status=0"))
{Serial.print("\n 9 LOW \n");
digitalWrite(9, LOW);
client.print("{\"status\" : \"0\" , \"out\" : \"");
client.print(9);
client.print("\"}");
}
if(readString.startsWith("GET /?out=8&status=1"))
{Serial.print("\n 8 HIGH \n");
digitalWrite(8, HIGH);
client.print("{\"status\" : \"1\" , \"out\" : \"");
client.print(8);
client.print("\"}");
}
if(readString.startsWith("GET /?out=8&status=0"))
{Serial.print("\n 8 LOW \n");
digitalWrite(8, LOW);
client.print("{\"status\" : \"0\" , \"out\" : \"");
client.print(8);
client.print("\"}");
}
if(readString.startsWith("GET /?out=7&status=1"))
{Serial.print("\n 7 HIGH \n");
digitalWrite(7, HIGH);
client.print("{\"status\" : \"1\" , \"out\" : \"");
client.print(7);
client.print("\"}");
}
if(readString.startsWith("GET /?out=7&status=0"))
{Serial.print("\n 7 LOW \n");
digitalWrite(7, LOW);
client.print("{\"status\" : \"0\" , \"out\" : \"");
client.print(7);
client.print("\"}");
}
if(readString.startsWith("GET /?out=50&status=1"))
{Serial.print("\n 50 HIGH \n");
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
client.print("{\"status\" : \"1\" , \"out\" : \"");
client.print(50);
client.print("\"}");
}
if(readString.startsWith("GET /?out=50&status=0"))
{Serial.print("\n 50 LOW \n");
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
client.print("{\"status\" : \"0\" , \"out\" : \"");
client.print(50);
client.print("\"}");
}
if(readString.startsWith("GET /?out=all"))
{
Serial.print("\n OUT ALL\n");
client.print("{\"ip\" : \"192.168.1.10\", ");
client.print("\"devices\" : ");
client.print("[{ \"type\" : \"light\", \"name\" : \"luce bagno\", \"out\" : \"");
client.print("9");
client.print("\"}");
client.print(",{ \"type\" : \"light\", \"name\" : \"luce camera\", \"out\" : \"");
client.print("8");
client.print("\"}");
client.print(",{ \"type\" : \"light\", \"name\" : \"luce sala\", \"out\" : \"");
client.print("7");
client.print("\"}");
client.print(",{ \"type\" : \"light\", \"name\" : \"generale\", \"out\" : \"");
client.print("50");
client.print("\"}");
client.print("]}");
}
readString="";
client.stop();
}
}
}
}
}