Recuperar vários char e salvar em uma String

Desculpe-me se fui rude ou faltei com a educação na hora de pedir ajuda, não foi minha intenção!

Sei que nem todos aceitam dinheiro para ajudar com o código, mas eu ofereço mesmo assim pois preciso de uma resposta e ate o momento não a encontrei de forma clara.

bubulindo:
Ok... queres um GET ou telnet?

O que eu quero e comunicar com o Arduino de meu site http://site.com que roda PHP com o Arduino que esta e minha casa e esta respondendo pelo meu IP público, apesar de ser dinâmico, criei uma função para atualizar junto ao No-IP de forma automática.

Porém de inicio pensei em comunicar através do cURL do PHP, usando um HTTP GET, porém a falta de exemplos e informações livres nos fóruns tornou isso impossivel. Agora estou pensando em fazer essa comunicação com sockets no PHP, assim posso mandar uma mensagem ao Arduino em um formato predefinido Texto da mensagem|Texto 2

Usando uma função como a mostrada abaixo, posso dar um split no texto e separar o conteúdo em 2 variáveis de forma fácil.

//   strtok test                                                               */
 
#include <string.h>
 
#define MAX_STRING_LEN  20
 
char *record1 = "one two three";
char *record2 = "Hello there friend";
char *p, *i;
 
void setup() {
 
   Serial.begin(9600);
   
   Serial.println("Split record1: ");
   Serial.println(subStr(record1, " ", 1));
   Serial.println(subStr(record1, " ", 2));
   Serial.println(subStr(record1, " ", 3));
 
   Serial.println("Split record2: ");
   Serial.println(subStr(record2, " ", 1));
   Serial.println(subStr(record2, " ", 2));
   Serial.println(subStr(record2, " ", 3));
}
 
void loop () {
}
 
// Function to return a substring defined by a delimiter at an index
char* subStr (char* str, char *delim, int index) {
   char *act, *sub, *ptr;
   static char copy[MAX_STRING_LEN];
   int i;
 
   // Since strtok consumes the first arg, make a copy
   strcpy(copy, str);
 
   for (i = 1, act = copy; i <= index; i++, act = NULL) {
      //Serial.print(".");
      sub = strtok_r(act, delim, &ptr);
      if (sub == NULL) break;
   }
   return sub;
 
}

bubulindo:
Eu não quero dinheiro. Primeiro porque isto não é o meu emprego e segundo porque não quero responsabilidade sobre o que digo aqui. O facto de não aceitar dinheiro também me dá a possibilidade ed ajudar quando posso...
E não acho prudente que pagues a alguém que diz que resolve o teu problema e não o faz. Mas tu é que sabes da tua vida.

Desculpe-me outra vez se lhe ofendi com o dinheiro que ofereci, só achei justo oferecer alguma forma de pagamento já que disponibilizou tempo e conhecimento em ajudar uma pessoa que não conhece. Isso não vai se repetir outra vez, prezo pelo bom funcionamento da comunidade.

bubulindo:
Já pesquisaste por string parsing? Tens um exemplo do GET que recebes dum browser? Ou do comando que vais fazer com telnet?

Tenho um exemplo que recebe uma String pelo serial no formato /?teste=teste 1&teste2=teste dois e mostra o texto da variável separado exatamente como eu quero. Esse exemplo eu "paguei" para um amigo desenvolver porém não consigo adaptar para que ele responda ao usuários que realizem um GET.

void setup(){
  Serial.begin(9600);
}
void loop(){
 
  String lsData=readData();
 
  if( lsData.equals("") != true ){
    char lsTexto[255];
    lsData.toCharArray(lsTexto, 255);
    Serial.print("Texto recebido:");
    Serial.println(lsTexto);
 
    String lsValor=valorGet("teste",lsData);
    lsValor.toCharArray(lsTexto, 255);
    Serial.print("Valor do parametro teste:");
    Serial.println(lsTexto);
  }
 
}
 
String readData(){
  String lsConteudo="";
  int conta=0;
  while ((conta++)<5) {
    if(Serial.available()){
      char lc=Serial.read();
      lsConteudo=lsConteudo + lc;
      conta=0;
    };
    delay(5);
  }
  return lsConteudo;
}
String valorGet(String parametro, String conteudoHttp){
 
  String lsRetorno="";
  int pos=conteudoHttp.indexOf(parametro);
 
  if(pos > 0){
    char lcCharAnterior=conteudoHttp.charAt(pos-1);
    int tamanhoParametro=pos+parametro.length();
    if( ((lcCharAnterior == '&') || (lcCharAnterior == '?')) &&
      (conteudoHttp.charAt(tamanhoParametro)=='=' ) ){
      int tamanho=conteudoHttp.length();
      int poximoParametro=conteudoHttp.indexOf("&",pos+1);
      if(poximoParametro>0){
        lsRetorno=conteudoHttp.substring(tamanhoParametro+1,poximoParametro);
      }
      else{
        lsRetorno=conteudoHttp.substring(tamanhoParametro+1);
      }
    }
  }
 
  return lsRetorno;
 
}

O que falta nesse código e permitir que o usuário envie o GET pelo navegador e não pela serial. se ele acessar o 192.168.1.177/?teste=teste 1&teste2=teste dois a resposta deveria ser a mesma do terminal.

Toda ajuda que você puder disponibilizar é bem vinda, outra vez desculpe se lhe ofendi com o dinheiro. Sou bastante leigo em ANSI C e também em eletrônica por isso minha dificuldade.