Go Down

Topic: Problema interfaccia web server (Read 414 times) previous topic - next topic

davides98

May 22, 2017, 11:42 pm Last Edit: May 23, 2017, 08:18 pm by gpb01
Ciao a tutti vorrei inserire un interfaccia grafica semplice con la scritta in h1 Finito

Il codice è questo
Code: [Select]

//*Controllare motore passo passo più pompe da url di internet*//
//*Aggiungi buzzer*//

//**url**//
//http://192.168.1.177/?led=10&led_2=10&led_3=10&led_4=10&led_5=10

//* Cambia nome alle variabili, regola il tempo per ogni pompa, crezione sito web.


#include <SPI.h>
#include <Ethernet.h>
boolean reading = false;
int dirPin = 2;
int stepperPin = 3;
int pompa_1 = 5;
int pompa_2 = 6;
int pompa_3 = 7;
int pompa_4 = 8;
int pompa_5 = 9;

//int buzzer=12;

int tastiera = 0;
int tastiera_2 = 0;
int tastiera_3 = 0;
//
int tastiera_4 = 0;
int tastiera_5 = 0;

int i=0;

String HTTPget = "";

//configurazione in internet
byte ip[] = { 192, 168, 1, 177 };   // IP Address
byte subnet[] = { 255, 255, 255, 0 }; // Subnet Mask
byte gateway[] = { 192, 168, 1, 1 }; // Gateway
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // MAC Address
EthernetServer server = EthernetServer(80); // Port 80

void setup()
{
  Serial.begin(9600);
  // pin 10, 11, 12 and 13 are used by the ethernet shield
  Ethernet.begin(mac, ip, gateway, subnet); // setup ethernet with params from above
  server.begin();
  pinMode(dirPin, OUTPUT);
  pinMode(stepperPin, OUTPUT);
  pinMode(pompa_1, OUTPUT);
  pinMode(pompa_2, OUTPUT);
  pinMode(pompa_3, OUTPUT);
  pinMode(pompa_4, OUTPUT);
  pinMode(pompa_5, OUTPUT);
  //pinMode(buzzer, OUTPUT);
}

void step(boolean dir,int steps){
    digitalWrite(dirPin,dir);
    delay(50);
   for(int i=0;i<steps;i++){
    digitalWrite(stepperPin, HIGH);
    delayMicroseconds(800);
    digitalWrite(stepperPin, LOW);
    delayMicroseconds(800);
 }
}
void loop()
{
  // listen for incoming clients
  EthernetClient client = server.available();
  Serial.println("Connesso");
  
  if (client)
  {
    boolean lineIsBlank = true;
    while (client.connected())
  {
    if (client.available())
    {
      char c = client.read();
      
      if(reading && c == ' ') reading = false;
      if(c == '?') reading = true; // ? in GET request was found, start reading the info
 
      //check that we are reading, and ignore the '?' in the URL, then append the get parameter into a single string
      if(reading && c != '?') HTTPget += c;
 
      if (c == '\n' && lineIsBlank) {
      client.println("HTTP/1.1 200 OK");
      client.println("Content-Type: text/html");
      client.println("Connection: close");
      client.println();

      client.println("<!DOCTYPE HTML>");
      client.println("<html>");
      client.println("<center><h1>Fine</h1></center>");
      client.println("</html>");
      
      break;
      }
      if (c == '\n')
      {
        lineIsBlank = true;
        
      }
      else if (c != '\r')
      {
        lineIsBlank = false;
      }
    }
  }
  if(i==0){
    //creo la variabile tempo dalla stringa url
    String var_1 = HTTPget.substring(4,6);
    int tastiera = var_1.toInt();
    //creo la variabile tempo_2 dalla stringa url
    String var_2 = HTTPget.substring(13,15);
    int tastiera_2 = var_2.toInt();
    //creo varialbile tempo_3 dalla stringa url
    String var_3 = HTTPget.substring(22,24);
    int tastiera_3 = var_3.toInt();
    //
    String var_4 = HTTPget.substring(31,33);
    int tastiera_4 = var_4.toInt();
    String var_5 = HTTPget.substring(40,42);
    int tastiera_5 = var_5.toInt();
    //blocco1
    if(tastiera != 0){
    Serial.println("Acceso");
    step(HIGH,200);
    Serial.println("Blocco_1");
    delay(500);
    //andrà messo il relè 1 con la pompa 1
    digitalWrite(pompa_1, HIGH);
     //resta acceso fino a quando non raggiunge la capacità definita
    delay(tastiera*100);
    //spegne il relè
    digitalWrite(pompa_1, LOW);
    delay(100);
    }else{
      Serial.println("Spento");
      step(HIGH,200);
      Serial.println("Blocco_1");
      digitalWrite(pompa_1, LOW);
      Serial.println("Tempo=0");
    }
    //blocco2
    if(tastiera_2 != 0){
    Serial.println("Acceso");
    step(HIGH,200);
    Serial.println("Blocco_2");
    delay(500);
    //andrà messo il relè 1 con la pompa 1
    digitalWrite(pompa_2, HIGH);
     //resta acceso fino a quando non raggiunge la capacità definita
    delay(tastiera_2*100);
    //spegne il relè
    digitalWrite(pompa_2, LOW);
    delay(100);
    }else{
      Serial.println("Spento");
      step(HIGH,200);
      Serial.println("Blocco_2");
      digitalWrite(pompa_2, LOW);
      Serial.println("Tempo=0");
    }
    //blocco3
    if(tastiera_3 != 0){
    Serial.println("Acceso");
    step(HIGH,200);
    Serial.println("Blocco_3");
    delay(500);
    //andrà messo il relè 1 con la pompa 1
    digitalWrite(pompa_3, HIGH);
     //resta acceso fino a quando non raggiunge la capacità definita
    delay(tastiera_3*100);
    //spegne il relè
    digitalWrite(pompa_3, LOW);
    delay(100);
    }else{
      Serial.println("Spento");
      step(HIGH,200);
      Serial.println("Blocco_3");
      digitalWrite(pompa_3, LOW);
      Serial.println("Tempo=0");
    }
    //blocco4
     if(tastiera_4 != 0){
    Serial.println("Acceso");
    step(HIGH,200);
    Serial.println("Blocco_4");
    delay(500);
    //andrà messo il relè 1 con la pompa 1
    digitalWrite(pompa_4, HIGH);
     //resta acceso fino a quando non raggiunge la capacità definita
    delay(tastiera_4*100);
    //spegne il relè
    digitalWrite(pompa_4, LOW);
    delay(100);
    }else{
      Serial.println("Spento");
      step(HIGH,200);
      Serial.println("Blocco_4");
      digitalWrite(pompa_4, LOW);
      Serial.println("Tempo=0");
    }
    //blocco5
     if(tastiera_5 != 0){
    Serial.println("Acceso");
    step(HIGH,200);
    Serial.println("Blocco_5");
    delay(500);
    //andrà messo il relè 1 con la pompa 1
    digitalWrite(pompa_5, HIGH);
     //resta acceso fino a quando non raggiunge la capacità definita
    delay(tastiera_5*100);
    //spegne il relè
    digitalWrite(pompa_5, LOW);
    delay(100);
    }else{
      Serial.println("Spento");
      step(HIGH,200);
      Serial.println("Blocco_5");
      digitalWrite(pompa_5, LOW);
      Serial.println("Tempo=0");
    }
    //ritorno
    step(LOW, 200*5);
    Serial.println("Ritorno");
    delay(500);

   // tone(buzzer, 660 ,100);
   // delay ( 300);
   // noTone(buzzer);
    /**/
    Serial.println("Disconnesso");
    i++;
    
    }else{
      HTTPget = "";
      i=0;
      tastiera = 0;
      tastiera_2 =0;
      tastiera_3 = 0;
      tastiera_4 =0;
      tastiera_5 = 0;
    }
  }
    delay(1); // give the web browser a moment to recieve
    client.stop(); // close connection
  }

 


In teoria il problema che ho posto sembra molto semplice, ho applicato l'esempio del web server delle librerie arduino ma non accade nulla.
Dove sbaglio?

--- ti rammento che, da regolamento, è permesso fare "up" solo dopo almeno 48 ore dall'ultimo post. - gpb01

Go Up