Ver nivel de cobertura GSM

hola a todos.
me gustaria tener el dato de cobertura en thinger.
estoy usando una TTGO-TCALL (esp32 y sim800l en la misma placa)
ya tengo todos los sensores que necesito enviados a thinger por GSM y va perfecto, pero me faltan detalles para tener el producto terminado

alguien me puede dar algun consejo con el envio de comandos AT y la subida a el servidor de la respuesta?
con AT+CSQ se supone que obtengo el dato de cobertura (en dbm)

De antemano muchas Gracias

Hola,
Como los comandos AT se envían al modem y éste envía la respuesta, lo que debes hacer es identificar específicamente como es esa respuesta para poder extraer la variable que necesitas, yo primero que todo guardaría la respuesta en un string y de allí identificaría sus características para extraer exclusivamente el número que necesitas, o no sé si te sirve el string completo.

La función payload.indexOf(","), puede ser de mucha utilidad en este caso, devuelve la posición del caracter en el argumento en el string, en ese caso va a devolver la posición de la primera “,” que consiga en el string “payload”.

La función payload.substring(Start, End);va a devolver el la cadena de caracteres comprendida entre las posiciones “Start” y “End” del string “payload”.

La función payload.toFloat(); va a convertir el contenido del string “payload” en una variable tipo float, que es necesario si requieres hacer algún cálculo con ese valor.

Por último te sugiero que titules mejor tus publicaciones, la función principal del foro por naturaleza es prestar ayuda y es importante tener presente que este es un foro gratuito, si necesitas la prioridad de ayuda especializada bajo demanda cuando se te presente una emergencia, no es el sitio para buscarla, por ello el hecho que estés “desesperado” particularmente a mí no me dice absolutamente nada, yo le consigo mucho más provecho a que el post este muy bien documentado en la situación actual y pruebas que has hecho.

Éxito en tu proyecto :call_me_hand:

Muchisimas gracias por tu respuesta voy a estudiar lo que me comentas

Vale, cualquier duda por minúscula que sea, plantéala aquí y la respondo en la medida de lo posible.

Seguro que estoy muy perdido pero suponia que con algo asi:

thing[“Señal”] >> outputValue (Serial1.println(“AT+CSQ”));

deberia darme el valor,

siempre me da el mismo numero “8,00”

¿opiniones?

Muchas gracias, espero que pronto pueda ayudar yo

Pues tienes toda la razón en que andas muy perdido jeje, pero no te preocupes, ya te explico donde estas.

Basicamente estas reportando a thinger lo siguiente

a = Serial1.println(“AT+CSQ”)

thing[“Señal”] >> outputValue (a);

Estas reportando el resultado de dar una instrucción a un puerto serial, es decir, no tengo idea que respuesta es esa, es el resultado de que el micro ejecute la instrucción de hablarle al modem, no es la respuesta del modem en sí, me explico?.

Entonces hay que captar es el String que responde el modem, extraer el dato que quieres y eso es lo que debes reportar, yo asumo que es un int o un float, y bueno no sé si quieras hacer alguna operación matemática con ese dato.

Hay ejemplos de comunicación serial bidireccional entre el puerto serie como el siguiente

#include
SoftwareSerial mySerial(2,3);

void setup()
{
Serial.begin(19200);
//Serial.println(“Begin”);
mySerial.begin(19200);
}

void loop()
{
if (mySerial.available())
Serial.write(mySerial.read());
if (Serial.available())
mySerial.write(Serial.read());
}

Que básicamente te dan la opción de mandarle comandos AT al modem desde la consola serial, y te permiten visualizar en consola lo que el modem responde, esto último es lo que debe captar en una variable y reportar a la nube.

Ese ejemplo es bastante básico, creo hay comandos que te indican incluso la cantidad de caracteres que fueron recibidos en el buffer, esto puede ser útil al momento de almacenarlo en una variable.

Duro ahí, cualquier cosa pregunta de nuevo.

Tio muchas Gracias ,me estas salvando.
yo siempre he hecho hardware y pequeñas programaciones , nunca me habia metido en este tipo de cosas y voy aprendiendo sobre la marcha.
si no es por gente como tu…

voy a estudiarme esto que me comentas

Muchas gracias ire contando