Quiero enviar una variable generada en un arduino a una página web con un módulo 8266 pero la información llega truncada y mezclada. Hace mas de una semana que vengo leyendo distintas opiniones pero no encuentro la solución .
Si arduino envía 123456, a la página web le llega 263,
Si arduino envía 1234, a la página web le llega alternativamente 142, 342, y 142, nuevamente
El problema está entre arduino y el módulo. De eso estoy seguro porque si pongo el valor de la variable en el módulo, la página web lo reproduce perfectamente.
Código en arduino:
//Para probar defino el valor de "envio". Cuando funcione, la variable va a valer según lo que mida un sensor de peso.
String envio="123456,"; //después probé 1234,
W8266.println(envio);
Código en el módulo:
//Tomado del foro: "Obtener cadena de caracteres por puerto serial" por Kalbwoo
//Declaracion de variables
char inChar;
String string="";
//Configuracion de puerto serial y reservacion de variable string
void setup() {
Serial.begin(9600);
string.reserve(200);
}
void loop(){
if (Serial.available()){
//Lectura de caracteres
inChar = Serial.read();
//Suma de caracteres en variable string
string+=inChar;
//Imprime la variable con los caracteres acumulados hasta la ","
if (inChar==','){
envio=string; //"envio" es la variable que lleva el dato a la página web con el método get. Al finalizar también borro el contenido de esta variable.
string=""; //Borra la variable string para almacenar nuevos datos
}
}
}