Ethernet shield client error.


hi, i've problem client connection.
i've arduino ethernet shiled read url , if there's determinate substring arduino turn on led.
this sketch read temperature , sensor pir segnal values , send them on database.
without sendind datas database client connect read url don't problem,but if send datas client problem.
client problem
code: [select]
   ethernetclient client = server.available();  
   if (client) //se esiste un cliente
 {
   while (client.connected()) // se il cliente e' connesso
   {
     if (client.available()) //se e' tutto ok per iniziare
     {
       char c = client.read(); //leggi singoli caratteri inviati
       if (readstring.length() < 100)
       {
         readstring += c; //concatena caratteri
       }  
      // serial.print(readstring);
       if (c == '\n') //vede se c'e' il carattere di fine stringa, per individuare che e' finita
       {
         if(readstring.indexof("l1=1") > 0) //imposta una variabile di tipo boleana (vero-falso) per gli stati del led
         {
           ledon1 = true;
         }
         else if (readstring.indexof("l2=1") > 0)
         {
           ledon2 = true;            
         }
         else if (readstring.indexof("l3=1") > 0)
         {
           ledon3 = true;            
         }
         else if (readstring.indexof("l4=1") > 0)
         {
           ledon4 = true;            
         }
         else if(readstring.indexof("l1=0") > 0)
         {
           ledon1 = false;
         }
         else if (readstring.indexof("l2=0") > 0)
         {
           ledon2 = false;            
         }
         else if (readstring.indexof("l3=0") > 0)
         {
           ledon3 = false;            
         }
         else if (readstring.indexof("l4=0") > 0)
         {
           ledon4 = false;            
         }
         else if (readstring.indexof("a=0") > 0)
         {
           acceso = false;            
         }
         else if (readstring.indexof("a=1") > 0)
         {
           acceso = true;            
         }

         //crea la pagina html (verra' aggiornata ad ogni istruzione nuova)
         client.println("http/1.1 200 ok");
         client.println("content-type: text/html");
         client.println();
         
         client.println("<html><head>");
         //refresh per le temperature
         client.print("<meta http-equiv='refresh' content='2'>");
         client.println("<title>arduino home</title></head><body>");
         client.println("<table border=""2"" width=""100%"" height=""100%""><tr><td align=""center"">");
         //titolo led 1
         client.println("<h1>luce cucina</h1>");

         //operazioni da fare quando si clicca per attivare ledon1:  
         if (ledon1) {
           digitalwrite(ledpin6, high);  
           client.println("stato: on <br>");
           //crea pulsanti relativi led1    
           client.println("<a href='l1=0'>spegni</a>");
           client.println("<a href='l1=1'>accendi</a>");
         }
         else {

           //operazioni da fare quando si clicca per spegnere ledon1:  
           digitalwrite(ledpin6, low );
           client.println("stato: off <br>");
           //crea pulsanti relativi led1    
           client.println("<a href='l1=0'>spegni</a>");
           client.println("<a href='l1=1'>accendi</a>");
         }

         //ttolo led2
         client.println("<h1>luce salotto</h1>");

         //operazioni da fare quando si clicca per attivare ledon2:  
         if (ledon2) {
           digitalwrite(ledpin7, high);  
           client.println("stato: on<br>");
           //crea pulsanti relativi led1    
           client.println("<a href='l2=0'>spegni</a>");
           client.println("<a href='l2=1'>accendi</a>");
         }
         else {

           //operazioni da fare quando si clicca per spegnere ledon2:    
           digitalwrite(ledpin7, low);
           client.println("stato: off<br>");
           //crea pulsanti relativi led1    
           client.println("<a href='l2=0'>spegni</a>");
           client.println("<a href='l2=1'>accendi</a>");
         }
         
         //ttolo led3
         client.println("<h1>luce bagno</h1>");

         //operazioni da fare quando si clicca per attivare ledon2:  
         if (ledon3) {
           digitalwrite(ledpin8, high);
           client.println("stato: on<br>");
           //crea pulsanti relativi led1    
           client.println("<a href='l3=0'>spegni</a>");
           client.println("<a href='l3=1'>accendi</a>");
         }
         else {

           //operazioni da fare quando si clicca per spegnere ledon2:    
           digitalwrite(ledpin8, low);
           client.println("stato: off<br>");
           //crea pulsanti relativi led1    
           client.println("<a href='l3=0'>spegni</a>");
           client.println("<a href='l3=1'>accendi</a>");
         }
         
         //ttolo led4
         client.println("<h1>luce camera da letto</h1>");

         //operazioni da fare quando si clicca per attivare ledon2:  
         if (ledon4) {
           digitalwrite(ledpin9, high);
           client.println("stato: on<br>");
           //crea pulsanti relativi led1    
           client.println("<a href='l4=0'>spegni</a>");
           client.println("<a href='l4=1'>accendi</a>");
         }
         else {

           //operazioni da fare quando si clicca per spegnere ledon2:    
           digitalwrite(ledpin9, low);
           client.println("stato: off<br>");
           //crea pulsanti relativi led1    
           client.println("<a href='l4=0'>spegni</a>");
           client.println("<a href='l4=1'>accendi</a>");
         }
         client.print("</td>");
         client.print("<td align=""center"">");
         client.print("<table border='0' width=""100%"" height=""100%""><tr><td align=""center"">");  
         
           
         //output
         client.print("<h1>temperatura</h1>");
         client.print("<br>temperatura in gradi celsius: ");
         client.print(tempc);
         client.print(" <br><br>");
         client.print("<br>temperatura in gradi fahrenheit: ");
         client.print(tempf);
         client.print(" <br><br>");
         client.print("<br>temperatura in gradi kelvin: ");
         client.print(tempk);
         client.print(" <br>");
         client.print("</td>");
         client.print("</tr><tr>");
         client.print("<td align=""center"">");
         client.print("<hr align=""left"" size=""2"" width=""100%"" noshade>");
         client.print("<h1>allarme</h1>");
         if (acceso){
           client.println("stato: on<br>");  
           client.println("<a href='a=0'>spegni</a>");
           client.println("<a href='a=1'>accendi</a>");
         }
         else{
           client.println("stato: off<br>");  
           client.println("<a href='a=0'>spegni</a>");
           client.println("<a href='a=1'>accendi</a>");
         }
         client.print("</td></tr></table>");
       
         //chiude tag html per la pagina
         client.println("</body></html>");

         //si prepara per una nuova istruzione
         readstring="";
         

         //termina le operazioni cliente
         client.stop();
       }
     }
   }
 }else serial.print(" errore connessione luci ");

this connection db
code: [select]
bottone.read();
 
  if (bottone.wasreleased()){      
    acceso = !acceso;
    if (client2.connect(sql_server, 8080)){
      if(acceso==true){
        // valore = 1 per segnalare che l'allarme è settato ad on
         serial.print("\n");
        //invio la richiesta al server
        client2.print("get /s_allarme.php?valore=1&id=1");
        client2.println();
        serial.print("acceso");
        serial.print("\n");
      }
      else{
        // valore = 0 per segnalare che l'allarme è settato ad off
        //invio la richiesta al server
        client2.print("get /s_allarme.php?valore=0&id=1");
        client2.println();
        serial.print("spento");
        serial.print("\n");
      }
     
      //chiudo la connessione
      client2.stop();
      client2.flush();
    }
  }
 
  if (acceso){
    digitalwrite(ledallarme,high);
    statosensore = analogread(pinpir);
    serial.print(statosensore);
    // stato allarme suonato
    if (statosensore != 0){
      tone(pinpiezo,1250);
      suonato = suonato + 1;
      if(suonato == 1){
        if (client2.connect(sql_server, 80)){
          //valore = 2 per segnalare che l'allarme è scattato
          //invio la richiesta al server
          client2.print("get /s_allarme.php?valore=2&id=1");
          client2.println();
          //chiudo la connessione
          client2.stop();
          client2.flush();
          serial.print("suonato");
          serial.print("\n");
        }
      }
    }
  }
  // stato allarme off
  else{
    notone(pinpiezo);
    digitalwrite(ledallarme,low);
    suonato = 0;
  }


Arduino Forum > Using Arduino > Networking, Protocols, and Devices (Moderator: fabioc84) > Ethernet shield client error.


arduino

Comments

Popular posts from this blog

opencv3, tbb and rasp pi 2 - Raspberry Pi Forums

small ethernet problem - Raspberry Pi Forums

Multithumb configuration params not working? - Joomla! Forum - community, help and support