Gestione stringhe dettaglio indexOf

Innanzitutto grazie a tutti delle risposte siete stati gentilissimi e utilissimi.

lesto:
la soluzione più facile è

pc_client.print("<p>PIN ");

pc_client.print(i);
pc_client.print(" ATTIVO

");



poi se vuoi possiamo complicarci la vita, eh :grin:

Questa non è una soluzione che fa al caso mio perchè gli stati dei led li gestisco attraverso una query al database. Voglio limitare arduino a spegnere e accendere.
Vi posto il codice di arduino che utilizzo tuttora, che funziona per tutti i led, ma è troppo lungo come codice a mio avviso.

//Librerie impiegate per il progetto
#include <SPI.h>
#include <Ethernet.h>

//Creao un array di byte per specificare il mac address
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
//creo un array di byte per specificare l'indirizzo ip
byte ip[] = {192, 168, 1, 110}; //modificate questo valore in base alla vostra rete

char Data_RX;

String msg = "";
String app = "";
int cmd1 = 0;
int cmd2 = 0;
int cmd3 = 0;
int cmd4 = 0;
int cmd5 = 0;
int cmd6 = 0;
int cmd7 = 0;
int cmd8 = 0;
int cmd9 = 0;

boolean LEDON[10] = { false };
//creao un oggetto server che rimane in ascolto sulla porta
//specificata
EthernetServer ArduinoServer(80);

void setup()
{
  //inizializza lo shield con il mac e l'ip  
  Ethernet.begin(mac, ip);
  //inizializza l'oggetto server
  ArduinoServer.begin();
  
  //definisco i pin2 e pin3 come uscite
  pinMode(1, OUTPUT);
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
}

void loop()
{
    //IMPORTANTE pulisco la variabile msg  
    msg = "";
    
    EthernetClient pc_client = ArduinoServer.available();

    //controllo se pc_client è true
    if (pc_client != false)
    {
        //controllo continuamente che il client sia connesso
        while (pc_client.connected())
        {
            //Controllo se ci sono byte disponibili per la lettura
            if (pc_client.available())
            {
                //leggo i byte disponibili
                //provenienti dal client
                Data_RX = pc_client.read();
                
                //ricostruisco la stringa ricevuta concatenando i singoli byte
                msg += Data_RX;
                
                //Attendo che tutti i byte siano letti
                //quando Data_RX contiene il carattere
                //di nuova line capisco tutti i byte sono
                //stati letti
                if (Data_RX == '\n')
                {
                    //cerco all'interno della stringa il parametro che mi interessa
                    cmd1 = msg.indexOf("1=ON");                                       
                    cmd2 = msg.indexOf("2=ON");
                    cmd3 = msg.indexOf("3=ON");
                    cmd4 = msg.indexOf("4=ON");
                    cmd5 = msg.indexOf("5=ON");
                    cmd6 = msg.indexOf("6=ON");
                    cmd7 = msg.indexOf("7=ON");
                    cmd8 = msg.indexOf("8=ON");
                    cmd9 = msg.indexOf("9=ON");
                    
                    //Invio la risposta al client
                    //invio lo status code
                    pc_client.println("HTTP/1.1 200 OK");
                    //imposto il data type
                    pc_client.println("Content-Type: text/html");
                    pc_client.println();
                    
                    //Piloto l'uscita e invio lo stato al browser 2
                    if (cmd1 > 0){                      
                      digitalWrite(1, HIGH);
                      LEDON[1] = true;
                      app = "1=ON";
                      
                    }else{                     
                      digitalWrite(1, LOW);
                      LEDON[1] = false;
                      app = "1=OFF";
                    }

                    //Pilota l'uscita e invio lo stato al browser del led 4
                    if (cmd2 > 0)                    {                      
                      digitalWrite(2, HIGH);
                      LEDON[2] = true;
                      app = app + "&2=ON";
                    }else{                      
                      digitalWrite(2, LOW);
                      LEDON[2] = false;
                      app = app + "&2=OFF";
                    }

                    //Piloto l'uscita e invio lo stato al browser 5
                    if (cmd3 > 0){                      
                      digitalWrite(3, HIGH);
                      LEDON[3] = true;
                      app = app + "&3=ON";
                    }else{                      
                      digitalWrite(3, LOW);
                      LEDON[3] = false;
                      app = app + "&3=OFF";
                    }                        

                    //Piloto l'uscita e invio lo stato al browser 5
                    if (cmd4 > 0){                      
                      digitalWrite(4, HIGH);
                      LEDON[4] = true;
                      app = app + "&4=ON";
                    }else{                      
                      digitalWrite(4, LOW);
                      LEDON[4] = false;
                      app = app + "&4=OFF";
                    }  
                    
                    //Piloto l'uscita e invio lo stato al browser 5
                    if (cmd5 > 0){                      
                      digitalWrite(5, HIGH);
                      LEDON[5] = true;
                      app = app + "&5=ON";
                    }else{                      
                      digitalWrite(5, LOW);
                      LEDON[5] = false;
                      app = app + "&5=OFF";
                    }   
 
                     
                    //Piloto l'uscita e invio lo stato al browser 2
                    if (cmd6 > 0){                      
                      digitalWrite(6, HIGH);
                      LEDON[6] = true;
                      app = app + "&6=ON";
                    }else{                      
                      digitalWrite(6, LOW);
                      LEDON[6] = false;
                      app = app + "&6=OFF";
                    }

                    //Pilota l'uscita e invio lo stato al browser del led 4
                    if (cmd7 > 0){                      
                      digitalWrite(7, HIGH);
                      LEDON[7] = true;
                      app = app + "&7=ON";
                    }else{                      
                      digitalWrite(7, LOW);
                      LEDON[7] = false;
                      app = app + "&7=OFF";
                    }

                    //Piloto l'uscita e invio lo stato al browser 5
                    if (cmd8 > 0){                      
                      digitalWrite(8, HIGH);
                      LEDON[8] = true;
                      app = app + "&8=ON";
                    }else{                      
                      digitalWrite(8, LOW);
                      LEDON[8] = false;
                      app = app + "&8=OFF";
                    }                             

                    //Piloto l'uscita e invio lo stato al browser 5
                    if (cmd9 > 0){                      
                      digitalWrite(9, HIGH);
                      LEDON[9] = true;
                      app = app + "&9=ON";
                    }else{                      
                      digitalWrite(9, LOW);
                      LEDON[9] = false;
                      app = app + "&9=OFF";
                    }                             
                    pc_client.print("<html><head>");    
                    pc_client.print("<meta http-equiv=\"refresh\" content=\"0; url=http://localhost/domotic/riservata/update.php?"); 
                    pc_client.print(app);
                    pc_client.print("\"> ");
                    pc_client.print("</head></html>");                      
                    //aspetto 1 ms affinche la risposta giunga al browser del client
                    delay(1);
                    //esco dal ciclo while una volta completato l'invio della risposta
                    break;
                }
            }
        }
        //chiudo la connessione
        pc_client.stop();
    }
}