Arduino Ethernet e valori falsificati

Vedi così

#include <SPI.h>
#include <Ethernet.h>

byte mac[] = { 
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //physical mac address
byte ip[] = { 
  192, 168, 1, 5 }; // ip in lan
byte gateway[] = { 
  192, 168, 1, 1 }; // internet access via router
byte subnet[] = { 
  255, 255, 255, 0 }; //subnet mask
EthernetServer server(80); //server port

String readString;
const byte ButtonPinuno = 3;        //pin pulsante incremento 
const byte ButtonPindue = 5;    //pin pulsante decremento 
byte CurrentStateuno;                  //variabile per lo stato uno corrente 
byte LastStateuno = 0;                //variabile per l'ultimo stato uno 
byte CurrentStatedue;                  //variabile per lo stato due corrente 
byte LastStatedue = 0;            //variabile per l'ultimo stato due  
const byte ButtonPintre = 6;        //pin pulsante incremento 
const byte ButtonPinquattro = 7; //pin pulsante decremento 
byte CurrentStatetre;                  //variabile per lo stato uno corrente 
byte LastStatetre = 0;                //variabile per l'ultimo stato uno 
byte CurrentStatequattro;              //variabile per lo stato due corrente 
byte LastStatequattro = 0;            //variabile per l'ultimo stato due        //Holds number of button presses 
const byte ButtonPincinque =8 ;        //pin pulsante incremento 
const byte ButtonPinsei  = 9; //pin pulsante decremento 
byte CurrentStatecinque;              //variabile per lo stato uno corrente 
byte LastStatecinque = 0;              //variabile per l'ultimo stato uno 
byte CurrentStatesei;                  //variabile per lo stato due corrente 
byte LastStatesei = 0;                //variabile per l'ultimo stato due 
int contprima = 0;          //Holds number of button presses.
int contseconda = 0;   //Holds number of button presses
int short contterza = 0;            //Holds number of button presses 
//////////////////////

void setup(){

  pinMode(ButtonPinuno,INPUT);    
  pinMode(ButtonPindue,INPUT);    
  pinMode(ButtonPintre,INPUT);     
  pinMode(ButtonPinquattro,INPUT);     
  pinMode(ButtonPincinque,INPUT);     
  pinMode(ButtonPinsei,INPUT);     

  //start Ethernet
  Ethernet.begin(mac, ip, gateway, gateway, subnet);
  server.begin();

  //enable serial data print
  Serial.begin(9600);
  Serial.println(F("server LED test 1.0")); // so I can keep track of what is loaded
}

void loop(){
  CheckButton();

  // Create a client connection
  EthernetClient client = server.available();
  if (client) {
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();

        //read char by char HTTP request
        if (readString.length() < 100) {

          //store characters to string
          readString += c;
          //Serial.print(c);
        }

        //if HTTP request has ended
        if (c == '\n') {

          ///////////////
          Serial.println(readString); //print to serial monitor for debuging

            client.println(F("HTTP/1.1 200 OK")); //send new page
          client.println(F("Content-Type: text/html"));
          client.println();
          client.println(F("<HTML>"));
          client.println(F("<HEAD>"));
          client.println(F("<meta name='apple-mobile-web-app-capable' content='yes' />"));
          client.println(F("<meta name='apple-mobile-web-app-status-bar-style' content='black-translucent' />"));
          client.print(F("<meta http-equiv=\"refresh\" content=\"2\">"));
          client.println(F("<link rel='stylesheet' type='text/css' href='http://homeautocss.net84.net/a.css' />"));
          client.println(F("<TITLE>Home Automation</TITLE>"));
          client.println(F("</HEAD>"));
          client.println(F("<BODY>"));
          client.println(F("<H1>Home Automation</H1>"));
          client.println(F("<hr />"));
          client.println(F("
"));
          client.println(F("<a href=\"/?lighton\"\">Turn On Light</a>"));
          client.println(F("<a href=\"/?lightoff\"\">Turn Off Light</a>
"));  
          client.println(F("<hr />"));      
          client.println(F("<H1>Dati Micro</H1>"));
          client.println(contprima);
          client.println(contseconda);
          client.println(contterza);
          client.println(F("
"));
          client.println(F("<hr />"));
          client.println(F("<H1>Questa pagina si aggiorna ogni 2 secondi</H1>"));
          client.println(F("</BODY>"));
          client.println(F("</HTML>"));

          delay(1);
          //stopping client
          client.stop();

          ///////////////////// control arduino pin
          if(readString.indexOf("?lighton") >0)//checks for on
          {
            digitalWrite(6, HIGH);    // set pin 4 high
            Serial.println(F("Led On"));
          }
          else{
            if(readString.indexOf("?lightoff") >0)//checks for off
            {
              digitalWrite(6, LOW);    // set pin 4 low
              Serial.println(F("Led Off"));
            }
          }
          //clearing string for next read
          readString="";

        }
      }
    }
  }
}

void CheckButton(void){ 
  CurrentStateuno = digitalRead(ButtonPinuno);           
  CurrentStatedue = digitalRead(ButtonPindue);         
  CurrentStatetre = digitalRead(ButtonPintre);           
  CurrentStatequattro = digitalRead(ButtonPinquattro);     
  CurrentStatecinque = digitalRead(ButtonPincinque);   
  CurrentStatesei = digitalRead(ButtonPinsei); 
  delay(10);  // debounce                                                 

  if(CurrentStateuno != LastStateuno) 
  { 
    if(CurrentStateuno == LOW) 
    { 
      contprima++; 
    } 
  } 
  LastStateuno = CurrentStateuno; 

  if(CurrentStatedue != LastStatedue) 
  { 
    if(CurrentStatedue == LOW) 
    { 
      contprima--; 
    } 
  } 
  LastStatedue = CurrentStatedue; 

  if(CurrentStatetre != LastStatetre) 
  { 
    if(CurrentStatetre == LOW) 
    { 
      contseconda++; 
    } 
  } 
  LastStatetre = CurrentStatetre; 

  if(CurrentStatequattro != LastStatequattro) 
  { 
    if(CurrentStatequattro == LOW) 
    { 
      contseconda--; 
    } 
  } 
  LastStatequattro = CurrentStatequattro; 

  if(CurrentStatecinque != LastStatecinque) 
  { 
    if(CurrentStatecinque == LOW) 
    { 
      contterza++; 
    } 
  } 
  LastStatecinque = CurrentStatecinque; 

  if(CurrentStatesei != LastStatesei) 
  { 
    if(CurrentStatesei == LOW) 
    { 
      contterza--; 
    } 
  } 
  LastStatesei = CurrentStatesei; 
}