Shield GSM+Sensor PIR

Buenas, soy nuevo en el foro,si no posteo de forma correcta estaré encantado de recibir vuestros consejos, pero bueno, a lo que voy: Estoy realizando un proyecto el cual trata de un sistema que envía un mensaje de texto si algo es detectado por el sensor. Hasta el momento he logrado enviar mensajes y activar un led con el sensor, el problema se me presenta cuando intento unir estas 2 funciones en un sólo programa. Os muestro el código:

#include <GSM.h>
#define PIN "6759"
GSM gsmAccess;
GSM_SMS sms;
const int PIRPin= 21;                                                       
int estado=LOW;

void setup()

{
   

  pinMode(PIRPin, INPUT);
  Serial.begin(9600);
  
Serial.println("Conectando...");

  boolean noConectado = true;
  
  while(noConectado)
  {
    if(gsmAccess.begin(PIN)==GSM_READY)
      noConectado = false;
    else
    {
      Serial.println("No Conectado");
      delay(1000);
      
    }
    Serial.println("GSM inicializado");
 
    }
     attachInterrupt(2,enviarSMS,RISING);

}

void loop() {

  estado=digitalRead(PIRPin);

  Serial.println("Estado:");
  Serial.println(estado);
  
 
}



    
void enviarSMS() {
  noInterrupts();
  char mensaje[9]= "intruso";

  char numeroDest[11]= "658365982";
  if(estado=HIGH){
  Serial.print("Numero de destino: ");
  Serial.println(numeroDest);

  //texto del mensaje
Serial.println("Enviando");
  Serial.println();
  Serial.println("Mensaje:");
  Serial.println(mensaje);
  
  sms.beginSMS(numeroDest);
  sms.print(mensaje);
  sms.endSMS(); 
  Serial.println("\nEnviado!\n");
  }
  interrupts();
}

A alguien se le ocurre que puede pasar?

Perdonadme si no es la forma correcta de postear el código, pero como ya os digo soy nuevo.

No puedes usar una interrupción para enviar un mensaje SMS.
La interrupción debe ser un proceso rápido, se interrumpe el programa porque se activa una interrupción, se ejecuta una rapida rutina y se devuelve el control al programa.
Intenta todo el código sin usar interrupciones.
Al menos sin una rutina como la que presentas.
Mira en el loop el estado del pin2 y cuando pase de 0 a 1 (RISING) ejecutas la rutina enviarSMS()