Tengo un inconveniente con mi codigo… Necesito imprimir la variable new_str en client.print. pero no lo hace, solo me sirve si introdusco yo mismo los datos en el campo de client.print… Ayudaaaaaaaaaa
// if you get a connection, report back via serial:
if (client.connect(server, 80)) {
Serial.print("connected to ");
Serial.println(client.remoteIP());
// Make a HTTP request:
client.print("GET /arduino/control/conexion_arduino.php?pre_php="); // Enviamos los datos por GET
client.print(new_str);
client.print("&hum_php=");
client.print("0.4");
client.print("&temp_php=");
client.print("0.3");
client.print("&dist_php=");
client.print("0.4");
client.println(" HTTP/1.0");
client.println("User-Agent: Arduino 1.0");
client.println();
Serial.println("Envio con exito (al archivo controller/index y models/herramienta)");
Serial.print("Envio con exito");
delay(1000);;
} else {
// if you didn't get a connection to the server:
Serial.println("connection failed");
}
beginMicros = micros();
}
void loop() {
// Escuchar por nuevos datos
myXBee->listen();
// Enviar un mensaje cada segundo aproximadamente
if(checkTimeout(lastMessage,1000)) {
lastMessage = millis();
}
}
// Procesa los datos recibidos
void dataReceived(uint16_t addr, uint8_t *data, uint16_t dataSize) {
Serial.print('\n');
for(int i=0;i<dataSize;i++) {
Serial.write(data[i]);
int d = (data);
String str = (char*)data;
new_str = str.substring(8, 15);
Serial.print(new_str);
}
}
Que tal amigo....? Gracias por ayudarme con mi problema. La variable la estoy imprimiendo al final en la función void dataReceived(uint16_t addr, uint8_t *data, uint16_t dataSize).
El valor lo obtengo en "bytes", lo convierto a "String" luego lo divido con un "Substring" hasta ahí todo perfecto. El inconveniente esta al momento de enviar la variable mediante Get a un php... El php recibe lo ue coloco manualmente entre comillas "20" lo recibe. el lio es que no me recibe variables (new_str). No recibe nada :/..... Quedo muy atento a tus comentarios....!!!
Mira amigo. Después de verificar la conexión le realiza el get. Los números que iserto los recibe el php perfecto. por lo que ya descarte que sea el php. El problema esta al intentar la variable new_str que es donde tengo los datos que quiero subir.
// if you get a connection, report back via serial:
if (client.connect(server, 80)) {
Serial.print("connected to ");
Serial.println(client.remoteIP());
// Make a HTTP request:
client.print("GET /arduino/control/conexion_arduino.php?pre_php="); // Enviamos los datos por GET
client.print("5");
client.print("&hum_php=");
client.print("10");
client.print("&temp_php=");
client.print("15");
client.print("&dist_php=");
client.print("12");
client.println(" HTTP/1.0");
client.println("User-Agent: Arduino 1.0");
client.println();
Serial.println("Envio con exito (al archivo controller/index y models/herramienta)");
Serial.print("Envio con exito");
delay(1000);;
} else {
// if you didn't get a connection to the server:
Serial.println("connection failed");
}
}
void loop() {
// Escuchar por nuevos datos
myXBee->listen();
// Enviar un mensaje cada segundo aproximadamente
if(checkTimeout(lastMessage,1000)) {
lastMessage = millis();
}
}
// Procesa los datos recibidos
void dataReceived(uint16_t addr, uint8_t *data, uint16_t dataSize) {
Serial.print('\n');
for(int i=0;i<dataSize;i++) {
Serial.write(data[i]);
int d = (data);
String str = (char*)data;
new_str = str.substring(8, 15);
Serial.print(new_str);
}
}
.
El valor lo obtengo en “bytes”, lo convierto a “String” luego lo divido con un “Substring” hasta ahí todo perfecto. El inconveniente esta al momento de enviar la variable mediante Get a un php… El php recibe lo ue coloco manualmente entre comillas “20” lo recibe. el lio es que no me recibe variables (new_str). No recibe nada :/… Quedo muy atento a tus comentarios…!!!
Amigo la petición la hago en este if
if (client.connect(server, 80)) {
Serial.print("connected to ");
Serial.println(client.remoteIP());
// Make a HTTP request:
client.print("GET /arduino/control/conexion_arduino.php?pre_php="); // Enviamos los datos por GET
client.print(prueba);
client.print("&hum_php=");
client.print("10");
client.print("&temp_php=");
client.print("15");
client.print("&dist_php=");
client.print("12");
client.println(" HTTP/1.0");
client.println("User-Agent: Arduino 1.0");
client.println();
Serial.println("Envio con exito (al archivo controller/index y models/herramienta)");
Serial.print("Envio con exito");
delay(1000);;
} else {
// if you didn't get a connection to the server:
Serial.println("connection failed");
}
Esa variable prueba es un string con un 0.07. la envía normal sin inconveniente " client.print(prueba); ". Pero cuando envió la variable str_newstring.
without see the complete code, i'm confused, not sure how this code works and what the variable types are: is new_str a String or char?
... ???
// if you get a connection, report back via serial:
if (client.connect(server, 80)) {
Serial.print("connected to ");
Serial.println(client.remoteIP());
// Make a HTTP request:
client.print("GET /arduino/control/conexion_arduino.php?pre_php="); // Enviamos los datos por GET
client.print(new_str);
it looks like the following code is receiving something from the xBee, setting "new_str" which is sent by the above code. Does client.print() handle "Strings"? why not strcpy (new_str, data)?