salve ragazzi.da 3 giorni mi è arrivato l'arduino e mi sono messo subito a lavoro. in pratica sfruttando il soft di blade accendo le luci di casa. in piu ho aggiunto anche lo spengimento e l'accensione contemporanea delle luci cosa che non èra possibile con il programma base.ora però non riesco ad integrare il tutto con i pulsanti della luce di casa.nel senso uso il pin 9 per comandare una lampadina tramite cel. ora usando il pin 6 come input e collegandoci un pulsante vorrei che a ogni cambiamento di stato del pulsante corrispondesse un cambiamento di stato del pin 9 mantenendolo fino al prossimo cambiamento di stato che potrebbe arrivare sia dal cel che dal pulsante.allego le stringhe di quello che ho gia caricato sull'arduino. spero che qualcuno mi possa dare una dritta
#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();
}
}
}
}
}