Comunicacion con LoRa esp32

Buenos dias, Gracias por aceptarme en el foro y disculpen si cuestiono el tema en el lugar que no es, realmente no encontre algo similar.
Mi problema es que compre unos modulos Heltec Lora y en sus librerias no encuentro como, desde el receptor, convertir los datos que recibo de una variable String para hacerlo util como para poder usar un Switch case.
En sintesis, si envio como muestra el numero "5" desde el emisor, lo recibo en el receptor, pero sus datos que se alojan en una memoria String, no los puedo decodificar para usar en un if o switch. A continuacion les envio parte del sketch.


void cbk(int packetSize) {
  packet ="";
  packSize = String(packetSize,DEC);
  for (int i = 0; i < packetSize; i++) { packet += (char) LoRa.read(); }
  rssi = "db " + String(LoRa.packetRssi(), DEC) ;
  LoRaData();
}

void loop() {
  Heltec.display->setTextAlignment(TEXT_ALIGN_RIGHT);
  Heltec.display->drawString(10, 128, String(millis()));
  // write the buffer to the display
  Heltec.display->display();
 int packetSize = LoRa.parsePacket();
  if (packetSize) { cbk(packetSize);  }

Los datos que necesito, en este caso de 2 bit, estan en "packet" , alojada en una String, y no los puedo utilizar para un Switch Case.

Fíjate si te sirve

Saludos

si, me sirvio y fue de gran ayuda. Muchas Gracias!!!!

Muchas Gracias, lo pude solucionar con este ejemplo y me funciono.

void cbk(int packetSize) {
packet ="";
packSize = String(packetSize,DEC);
for (int i = 0; i < packetSize; i++) { packet += (char) LoRa.read(); }
rssi = "dba " + String(LoRa.packetRssi(), DEC) ;
LoRaData();
}

void loop() {
int packetSize = LoRa.parsePacket();
if (packetSize) {
while (LoRa.available())
{
int inChar = LoRa.read();
inString += (char)inChar;
val = inString.toInt();
delay(10);
}
inString = "";
LoRa.packetRssi();
cbk(packetSize);
}

liveValue = val;
delay (10);

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.