Forma de poner la siguiente expresión

Buenas, Estoy intentado poner en una sola línea una expresión que contiene variables para formar una URL que mi arduino visitará en un momento determinado. Existe la posibilidad de poner lo siguiente en una sola línea: ... client.print("GET /ardu/insertar.php?temperatura="); client.print(t); client.print("&humedad=");

client.print(h);

Con esa expresión consigo lo siguiente: /ardu/insertar.php?temperatura=12&humedad=12 .... hay alguna forma de poder ponerlo asi: cliente.println("GET /ardu/insertar.php?temperatura="t"&humedad="h);

¿No sé si me habéis entendido?

Hola Cromo24.

dale vuelta a este código que seguro te saca del aprieto, y no consumirás tanta memoria

// Creamos lineas PROGMEM char lineadatos0[]="GET /ardu/insertar.php?temperatura=%d&humedad=%d"; PROGMEM char lineadatos1[]="Antonio tenia %d perros y %d gallinas"; PROGMEM char lineadatos2[]="";

PROGMEM char *_gdatos[] = { lineadatos0,lineadatos1,lineadatos2};

char gdatos(byte linea){// retorna la linea que se le pide de _gdatos char evento[200];char *_evento=evento;char c; char *even=(char)pgm_read_word(&(_gdatos[linea])) ; while (c = pgm_read_byte(even++)){ *_evento++=c;} *_evento = '\0'; return evento; }

char *crea_linea_t_h(unsigned int t,unsigned int h){ char datos[300]="";char *_datos=datos; sprintf(_datos,gdatos(0),t,h);// cambia en esta linea gdatos(1) strcat(_datos,"\0");// eliminar si interesa

// Serial.println(datos);

return datos; } //////////////////////////////////////////////////////// unsigned int t=24; unsigned int h=65;

void setup(){

Serial.begin(9600); Serial.println( crea_linea_t_h(t,h));

//return;

}

void loop(){

}

Gracias por responder. Algo complejo. No hay ninguna forma más simple?

Hola cromo24 Si se es algo lioso el código, prueba a utilizar String:

cliente.println("GET /ardu/insertar.php?temperatura="+String(t)+"&humedad="+String(h));

Saludos

La solución la tienes escondida en la primera respuesta. Echa un vistazo a la función sprint de C.

char buffer[100]; sprintf(buffer, " /ardu/insertar.php?temperatura=%d&humedad=%d", temperatura, humedad); serial.print(buffer);

Edito: perdón por el error, que había puesto char *buffer[100]. Me sobraba el asterisco.