Hola amigos este es mi primer post soy nuevo por aquí y también con Arduino. Bueno el tema es que viendo un tutorial aquí y otro ali, pude desarrollar un código( medio desordenado pero funcional), la idea de el es que coja la información del sensor la envíe al servidor donde se registra en una base de datos y luego se envía un mensaje de texto con el alerta.
todo funciona bien: el sensor recibe y envía los datos para ser procesados, se almacena en un String con los textos respectivo y después lo indico por el indice, y, como les dije funciona excepto con la muestra del resultado del sensor en la pantalla LCD.
Cuando llamo a la función para enviar los datos y la función para enviar el mensaje dentro de void loop, entoces ya no me muestra correctamente los cambios de la lectura de los ARRAYS y del sensor en la pantalla del LCD pero el sigue procesando y enviando informacion. Si quito a las funciones de dentro del void loop la informacion en pantalla se muestra bien.
Alguna manito por ai?
dejo aqui el loop
void loop() {
envioDatos();
envioMensaje();
String textos[ARRAYTXT] = {"Componente nuevo ", "Desgaste inicial ", "Desgaste Normal ", "Desgaste Avanzado ", "Desgaste Critico "};
SENSOR = analogRead(pinHALL);
SENSOR = (5.0 * SENSOR /1024.0) * 1000 - n / m ;
lcd.clear();
lcd.print("Her: " +String(SENSOR)+"(G)");
//Indicamos la instrucciones para determinar el rango de intensidad
if (SENSOR > 4200.00 ){
indice = 0;
}else{
if (SENSOR > 4000.00){
indice = 1;
if (SENSOR > 3500.00){
indice = 2;
} else{
if (SENSOR > 100.00){
indice = 3;
} else{
indice = 4;
}
}
}
}
// Escribiremos el mensaje en el LCD
lcd.setCursor(0,1);
lcd.print(textos[indice]);
delay(43200);
}
aqui todo el codigo
void envioMensaje() {
SIM900.print("AT+CMGF=1\r");
delay(200);
SIM900.println("AT + CMGS = \"+569xxxxxx\"");
delay(200);
SIM900.println("REPORTER SMS:");
SIM900.println("Desgaste = " +String(SENSOR)+" G");
SIM900.println("Mas informacion;");
SIM900.println("http://high-res.cl/manager/sensores/dashboard/");
SIM900.println("todos los derechos reservados ");
delay(200);
SIM900.println((char)26);
delay(200);
SIM900.println();
};
void envioDatos()
{
// inicializamos el servicio http
gprsSerial.println("AT+HTTPINIT");
delay(2000);
toSerial();
// formateamos los valores del parametro http
gprsSerial.println("AT+HTTPPARA=\"URL\",\"http://high-res.cl/manager/sensores/connect.php?xxx=" +String (indice)+ "&xxx="+String(SENSOR)+"\"");
delay(2000);
toSerial();
// formateamos la accion http type 0 = GET, 1 = POST, 2 = HEAD
gprsSerial.println("AT+HTTPACTION=0");
delay(6000);
toSerial();
// leer la respuesta del servidor
gprsSerial.println("AT+HTTPREAD");
delay(1000);
toSerial();
gprsSerial.println("");
gprsSerial.println("AT+HTTPTERM");
toSerial();
delay(300);
gprsSerial.println("");
delay(10000);
}
;