Sensor movimiento Telegram error Exception 3: LoadStoreError: Processor internal

Amigos,

Estoy recien entrando en este fascinante mundo, intento hacer andar un programa que pille en la red de un sensor de movimiento con Telegram. El programa URL es el siguiente,

//Librerías
#include <ESP8266WiFi.h>
#include <SPI.h>
#include <TelegramBot.h>

//Definiciones
byte sensorPin = 4; // Pin para el sensor de movimiento
byte movimiento = 0; // Variable para activar alarma
byte sinmovimiento = 0; // Resetea el contador a 0 cuando no hay movimiento durante un tiempo
int repiteloop = false;
const char* BotToken = "111111111:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";// Código de Telegram se obtiene configurando el Bot
const char* ssid = "mired";
const char* password = "mipassword";
WiFiClientSecure client;
TelegramBot bot(BotToken, client);

void setup() {
  Serial.begin(9600);

  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);

  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
}

void loop()
{

  message m = bot.getUpdates(); // A la espera de nuevos mensajes de Telegram

  // Si el mensaje es Alarmaon se activa la alarma, es sensible a mayúsculas
  if (m.text.equals("Alarmaon"))
  {

    Serial.println("Mensaje recibido se activa la alarma");
    bot.sendMessage(m.chat_id, "La Alarma está preparada y lista.");
    movimiento = 0;
    repiteloop = false;

    while (!repiteloop)
    {
      byte state = digitalRead(sensorPin);

      if (state == 1) {
        Serial.println("Se ha detectado movimiento!");
        delay(3000);
        movimiento++;
        Serial.println(movimiento);
      }
      else if (state == 0) {
        delay(3000);
        sinmovimiento++;
        Serial.println("Sin movimiento!");
      }

      // Se resetea el contador de movimientos si no hay movimiento continuo
      if (sinmovimiento == 10) {
        sinmovimiento = 0;
        movimiento = 0;
      }

      // Se activa la alarma y se envía el mensaje a Telegram

      if (movimiento == 1)
      {
        bot.sendMessage(m.chat_id, "Alarma Duino activada por movimiento!!"); //Mensaje de alerta Telegram  
      }
      
      movimiento = 0; // Variable de movimientos vuelve a cero
      message m = bot.getUpdates(); // Leer nuevos mensajes de Telegram
      if (m.text.equals("Alarmaoff"))
      {
        repiteloop = true;
        Serial.println("Mensaje recibido, se apaga la alarma.");
        bot.sendMessage(m.chat_id, "La Alarma está desactivada.");
      }
    }
  }

  else if (m.text.equals("Alarmaoff"))
  {
    Serial.println("Mensaje recibido, se apaga la alarma.");
    bot.sendMessage(m.chat_id, "La Alarma está desactivada.");
    repiteloop = false;
  }

}

El problema, intento que funciona y no hay caso. Intente bajando subiendo versiones de librerias ESP y nada…

Se conecta al WIFI , toma ip, y todo bien hasta ahi. Pasa un rato y se cae con el stack error a continuación y vuelve en loop.

Este es el stack de error que me arroja,

Exception 3: LoadStoreError: Processor internal physical address or data error during load or store
PC: 0x4010065d: umm_free_core(void*) at /root/Arduino/hardware/esp8266com/esp8266/cores/esp8266/umm_malloc/umm_malloc.cpp line 308
EXCVADDR: 0x4006e8a0

Decoding stack results
0x40100950: malloc(size_t) at /root/Arduino/hardware/esp8266com/esp8266/cores/esp8266/umm_malloc/umm_malloc.cpp line 511
0x40207d69: uart_flush(uart_t*) at /root/Arduino/hardware/esp8266com/esp8266/cores/esp8266/uart.cpp line 544
0x4010091b: free(void*) at /root/Arduino/hardware/esp8266com/esp8266/cores/esp8266/umm_malloc/umm_malloc.cpp line 362
0x40205b00: fs::FS::open(char const*, char const*) at /root/Arduino/hardware/esp8266com/esp8266/cores/esp8266/FS.cpp line 350
0x40206416: String::invalidate() at /root/Arduino/hardware/esp8266com/esp8266/cores/esp8266/WString.cpp line 139
0x4020642c: String::~String() at /root/Arduino/hardware/esp8266com/esp8266/cores/esp8266/WString.cpp line 125
0x402010f1: message::~message() at /root/Arduino/libraries/TelegramBot/src/TelegramBot.h line 26
0x4020131d: loop() at /root/Arduino/sketch_mar02a/sketch_mar02a.ino line 98
0x40207c75: uart_write_char(uart_t*, char) at /root/Arduino/hardware/esp8266com/esp8266/cores/esp8266/uart.cpp line 492
0x40207cd1: uart_write(uart_t*, char const*, size_t) at /root/Arduino/hardware/esp8266com/esp8266/cores/esp8266/uart.cpp line 509
0x4020612e: Print::print(unsigned long, int) at /root/Arduino/hardware/esp8266com/esp8266/cores/esp8266/Print.cpp line 168
0x40205be8: HardwareSerial::write(unsigned char const*, unsigned int) at /root/Arduino/hardware/esp8266com/esp8266/cores/esp8266/HardwareSerial.h line 164
0x40205bf4: HardwareSerial::write(unsigned char const*, unsigned int) at /root/Arduino/hardware/esp8266com/esp8266/cores/esp8266/HardwareSerial.h line 165
0x40205be8: HardwareSerial::write(unsigned char const*, unsigned int) at /root/Arduino/hardware/esp8266com/esp8266/cores/esp8266/HardwareSerial.h line 164
0x40205ec5: Print::write(char const*) at /root/Arduino/hardware/esp8266com/esp8266/cores/esp8266/Print.h line 62
0x40205fbc: Print::println() at /root/Arduino/hardware/esp8266com/esp8266/cores/esp8266/Print.cpp line 186
0x40206030: Print::println(Printable const&) at /root/Arduino/hardware/esp8266com/esp8266/cores/esp8266/Print.cpp line 246
0x402010d0: setup() at /root/Arduino/sketch_mar02a/sketch_mar02a.ino line 35
0x40206d3c: loop_wrapper() at /root/Arduino/hardware/esp8266com/esp8266/cores/esp8266/core_esp8266_main.cpp line 185

Alguien podria darme una pista porfavor?

MUCHAS GRACIAS!!!

Por favor lee las Normas del foro y edita tu post usando etiquetas de código para los errores y de enlace para el link que has puesto.

surbyte:
Por favor lee las Normas del foro y edita tu post usando etiquetas de código para los errores y de enlace para el link que has puesto.

Estimado, disculpa pero ya lo mejore . Gracias,

El volcado del stack indica que la función en la que ha fallado es malloc. Eso quiere decir que se ha quedado sin memoria.

Donde pones:

message m = bot.getUpdates(); // Leer nuevos mensajes de Telegram

Creo que querias poner:

 m = bot.getUpdates(); // Leer nuevos mensajes de Telegram

Prueba a ver...

Saludos.

Amigo, gracias por responder...Hoy apenas llegue a casa lo pruebo!! y comento!

Estimado, intento compilar pero me arroja de que m no esta declarado,

/root/Arduino/prueba2/prueba2.ino: In function 'void loop()':
prueba2:43:3: error: 'm' was not declared in this scope
  m = bot.getUpdates(); // A la espera de nuevos mensajes de Telegram
  ^
prueba2:99:1:

Gracias,

Me temo que tu problema es por usar librerias internas del Arduino mas actuales que con las que se compiló el programa original. A mi pasó algo similar.
Actualmente uso la libreria CTBOT pero solo funciona con ArduinoJson 5.13.5 que tienes que elgir en el gestor de librerias del IDE.
Esta es mi Alarma Radar que funciona perfectamente.
A ver que tal te va.

Estimado, gracias por compartir información, el problema es que me gustaría que utilizara el mismo sensor que intento utilizar con el programa con problemas. No soy muy experto en programación , pero podría intentar adaptarlo. Te agradezco tu ayuda. Ahora el programa con problemas intente volviendo a librerías muy antiguas y todo pero se cae de todas formas.

@enito, lee los dos privados que te envié!

OK

Luego de ver el codigo de Jopapa , lo pude adaptar a mi necesidad. Utilize la entrada digital D del wemos , y lo conecte al pin de envio de información del SR y todo funciono. Definitivamente era la libreria, telegrambot.h que ya no funciona o algo. Ahora respecto a la moderación del foro esta bien, pero es un poco molesto tanta regla de que hasta una palabra o algo debe ir en X formato y etc. Es lo unico que personalmente me molesto, pero bueno detalles... saludos!