Go Down

Topic: Apri Porta da Remoto (Read 1 time) previous topic - next topic

semmyroby

Salve a tutti

Ho modificato un codice trovato in rete, lasciando solo l'apri porta.
Il problema è che  ogni volta che carico la pagina web, parte l'impulso per il relè facendolo azionare, senza che azioni l'apposito tasto "APRI".
Come si può ovviare a questo ..........

Grazie e buon 1° Maggio a Tutti Voi     :) :) :) :) :)



/*
Semmyroby
Mag 2014
*/
#include <String.h>
#include <SPI.h>
#include <Ethernet.h>

byte mac[] = { 0x90, 0xA2, 0xDA, 0x0D, 0x3F, 0x3F }; //physical mac address
byte ip[] = { 192, 168, 1, 36 }; // ip in lan
byte gateway[] = { 192, 168, 1, 1 }; // ip in lan
byte subnet[] = { 255, 255, 255, 0 }; //subnet mask
EthernetServer server(80); //server port

String readString; //string
boolean LED1ON = false; //LED1 status flag
boolean LED2ON = false; //LED2 status flag
boolean LED3ON = false; //LED3 status flag
boolean login=false;

/*pir*/
int segnal   = 2;
int ledGreen = 4;
int ledRed   = 7;


void setup(){
Ethernet.begin(mac, ip, gateway, subnet);
pinMode(3, OUTPUT); // Apri Porta
Serial.begin(9600);
}

void loop(){

/*inizio client*/
EthernetClient client = server.available();
if (client) {
  boolean currentLineIsBlank = true;
  while (client.connected()) {
    if (client.available()) {
      char c = client.read();
        readString.concat(c);
      if (c == '\n' && currentLineIsBlank) {
         Serial.print(readString);{
        if(readString.indexOf("L=1") > 0) {
          digitalWrite(3, HIGH); // set the LED on
          LED1ON = true;
          delay(500);
          digitalWrite(3, LOW); // set the LED OFF
          LED1ON = false;
        }

        }
        // INIZIO DICHIARAZIONE PAGINA HTML
        client.println("HTTP/1.1 200 OK");
        client.println("Content-Type: text/html");
        client.println();
        client.print("<html><head><title>DOMOTICSEMMY</title><meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1' ></head><body>");
        client.println("<hr /><h1>SEMMY ROBY</h1>"); {
        client.println("<hr />");
        client.print("<span>SAN LORENZO NUOVO</span>");
        client.println("<hr />");
        client.print("<span>Questa pagina permette di aprire la tua porta di casa</span>");
        client.println("<hr />");
        client.println("<h1>APRI PORTA -  </h1>");
        client.println("<br />");
        client.print("<h2><a href='/?L=1'>APRI</a></h2>");
        client.println("<hr />"); }
        client.println("<hr />");
        client.print("<span>Programmazione effettuata da SemmyRoby@0114 su Board Arduino UNO con ethernet shield</span>");
        client.println("</body></html>");

        //clearing string for next read
        readString="";
        //stopping client
        client.stop();

        }
    }
  }
}
}

pablos71

E' normale che ciò accada quando carichi la pagina la prima volta senza ?L=1 non parte l'impulso poi ti ritrovi 92.168.1.36/?L=1 e fai il refresh sempre di questo link.

Sarebbe meglio usare un POST e non una GET per per inviare il messaggio
L'esperienza è il tipo di insegnante più difficile ....
Prima ti fa l'esame e poi ti spiega la lezione.

nid69ita

Il codice devi postarlo negli appositi tag. Altrimenti alcune parti del codice possono essere visualizzate male (vengono interpretati come attributi della pagina).
Vedi sezione 7 del regolamento, spiega come fare.
my name is IGOR, not AIGOR

semmyroby


E' normale che ciò accada quando carichi la pagina la prima volta senza ?L=1 non parte l'impulso poi ti ritrovi 92.168.1.36/?L=1 e fai il refresh sempre di questo link.

Sarebbe meglio usare un POST e non una GET per per inviare il messaggio


Ti ringrazio per il consiglio, ma sono ancora lle prime armi e quindi mi è difficile editare il codice......

semmyroby


Il codice devi postarlo negli appositi tag. Altrimenti alcune parti del codice possono essere visualizzate male (vengono interpretati come attributi della pagina).
Vedi sezione 7 del regolamento, spiega come fare.



Code: [Select]
/*
Semmyroby
Mag 2014
*/
#include <String.h>
#include <SPI.h>
#include <Ethernet.h>

byte mac[] = { 0x90, 0xA2, 0xDA, 0x0D, 0x3F, 0x3F }; //physical mac address
byte ip[] = { 192, 168, 1, 36 }; // ip in lan
byte gateway[] = { 192, 168, 1, 1 }; // ip in lan
byte subnet[] = { 255, 255, 255, 0 }; //subnet mask
EthernetServer server(80); //server port

String readString; //string
boolean LED1ON = false; //LED1 status flag
boolean LED2ON = false; //LED2 status flag
boolean LED3ON = false; //LED3 status flag
boolean login=false;

/*pir*/
int segnal   = 2;
int ledGreen = 4;
int ledRed   = 7;


void setup(){
Ethernet.begin(mac, ip, gateway, subnet);
pinMode(3, OUTPUT); // Apri Porta
Serial.begin(9600);
}

void loop(){

/*inizio client*/
EthernetClient client = server.available();
if (client) {
  boolean currentLineIsBlank = true;
  while (client.connected()) {
    if (client.available()) {
      char c = client.read();
        readString.concat(c);
      if (c == '\n' && currentLineIsBlank) {
         Serial.print(readString);{
        if(readString.indexOf("L=1") > 0) {
          digitalWrite(3, HIGH); // set the LED on
          LED1ON = true;
          delay(500);
          digitalWrite(3, LOW); // set the LED OFF
          LED1ON = false;
        }

        }
        // INIZIO DICHIARAZIONE PAGINA HTML
        client.println("HTTP/1.1 200 OK");
        client.println("Content-Type: text/html");
        client.println();
        client.print("<html><head><title>DOMOTICSEMMY</title><meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1' ></head><body>");
        client.println("<hr /><h1>SEMMY ROBY</h1>"); {
        client.println("<hr />");
        client.print("<span>SAN LORENZO NUOVO</span>");
        client.println("<hr />");
        client.print("<span>Questa pagina permette di aprire la tua porta di casa</span>");
        client.println("<hr />");
        client.println("<h1>APRI PORTA -  </h1>");
        client.println("<br />");
        client.print("<h2><a href='/?L=1'>APRI</a></h2>");
        client.println("<hr />"); }
        client.println("<hr />");
        client.print("<span>Programmazione effettuata da SemmyRoby@0114 su Board Arduino UNO con ethernet shield</span>");
        client.println("</body></html>");

        //clearing string for next read
        readString="";
        //stopping client
        client.stop();

        }
    }
  }
}
}


Grazie  :D :D :D :D :D :D

Go Up