Hola buenas, necesito ayuda con SIM900 y url compuesta por las variables.
Mi problema es que necesito enviar dentro de la url el valor de las variables, las cuales no son fijas, el ejemplo seria : http..............?hef.Tem=1&luz=2$lon=3...... donde los numeros 1,2 o 3 cambiarian al valor que tenga esa variable en ese momento.
Esto para enviar por 3G.
Puedes usar
String.concat();
o puedes usar
sprintf(buffer,"%d%d",Tem,luz);
donde buffer es un array de caracters p. ej. char buffer[20];
Soy bastante novato en esto, nunca he tenido necesidad de usar string, char ni ninguna de este tipo de hay es que tengo el problema, no se como estructurarlo y escribirlo en el código.
Viendo por hay solo veo que el string se usa para cadenas de texto o caracteres, pero en mi caso entre medias de cada una tengo una variable la cual va cambiando a cada segundo por lo que me quedo bloqueado, sin contar que lo tengo que añadir en un GET para usarlo en el 3G.
la url seria tipo una cosa asi: apli.mibase.net/sensores/insrt.php?sensor=1&temperatura=2&humedad=3&luz=4&lluvia=5&calidadaire=6&pir=7&bar=8&bat=9
el GET : char direccion[] = "GET /sensores/insrt.php? HTTP/1.1\r\nHost: apli.mibase.net\r\nConnection: close\r\n\r\n";
es lo mas lejos que he llegado me falta todo lo importante que son lo datos para la base de datos
Mira este hilo y sobre el final verás que usan algo parecido a lo que necesitas.
http://forum.arduino.cc/index.php?topic=539300.50
Lo que no comprendo es porque no buscas en el foro, te aseguro que TODO o CASI TODO pero con un grado de confianza del 99% esta resuelto en el foro, sea en español o inglés.
Si he buscado en el foro y revisado muchos post pero lo que busco es convertir toda esa url en un string concatenado que ademas contenga string de variables intercaladas entre ellos.
El del post que me mandas no me es útil para lo que busco, aunque gracias por las molestias.
Lo que intento hacer es una cosa tal lo que se ve en la imagen(es solo una estructura no es código).
Seguramente me este explicando muy mal por apenas yo me entiendo haber si con la imagen alguien me entiende y me hecha una mano.
Si no es posible alguna otra solución sencilla, grax y disculpad molestias.
Sinceramente no creo que hayas buscado mucho o bien, no sabes buscar, luego te muestro búsquedas del mismo tema
sensor=1&temperatura=2&humedad=3&luz=4&lluvia=5&calidadaire=6&pir=7&bar=8&bat=9
esto es lo que quieres
Solucion con sprintf
defines un array de char del tamaño necesario, supongo 100 chars si queda corto corrígelo.
char buffer[100];
sprintf(buffer, "sensor=%d&temperatura=%d&humedad=%d&luz=%d&lluvia=%d&calidadaire=%d&pir=%d&bar=%d&bat=%d", temperatura, humedad, luz, lluvia, calidadaire, pir, bar, bat);
no se donde lo usas pero luego solo usa buffer como un vector de caracteres que contiene todo lo que necesitas.
Solucion con String.concat() o simplemente con String
String buffer = "sensor="+String(1) + "&temperatura="+String(2)+"&humedad="+String(3)+"& luz="+ String(4)+"&lluvia="+String(5)+"&calidadaire="+String(6)+"&pir="+String(7)+"&bar="+String(8)+"&bat="+String(9)
Enlaces similares
El que te puse antes 1ro.
Dime como no te sirve si el pone que necesita enviar esto
GET /update?key=3V7EQI53HOMDPYUC&field1=26.00&field2=50.00&field3=63.44
SImilar a tu caso
y lo resueve asi
String EnviaDatos = "GET /update?key=" + writeAPIKey + "&field1=" + temp + "&field2=" + hum + "&field3=" + lumi + "\r\n"; //Prepara cadena para enviar datos a web
Link 2 => send data from sensors to mysql db
Link 3 => http://forum.arduino.cc/index.php?topic=418725.0
y hay muchos mas