Please help me about GSM SIM900A

Hello everyone! I need help about my project:
I use NRF24L01 to send/receive value of DHT11
On Receiver Board i use module GSM sim900A to send a messenger report Value of DHT11 . But i get a problem… SIM900A only send 1 messenger (report value of DHT11) to mobile, then it’s not work.
Please help me fix this problem!
I’m sory about my English!
This is My Code:

NRF Send:

#include <SPI.h>  
#include "RF24.h"
#include "DHT.h"
const int DHTPIN = 4;       
const int DHTTYPE = DHT11;

DHT dht(DHTPIN, DHTTYPE);
RF24 myRadio (7, 8);
byte addresses[][6] = {"0"};

void setup()
{
  Serial.begin(9600); 
  dht.begin();         
  delay(1000);
  myRadio.begin();  
  myRadio.setChannel(115); 
  myRadio.setPALevel(RF24_PA_MAX);
  myRadio.setDataRate( RF24_250KBPS ) ; 
  myRadio.openWritingPipe( addresses[0]);
  delay(1000);
}

void loop()
{
  float h = dht.readHumidity();   
  float t = dht.readTemperature();
  float data[2]={h,t};
  myRadio.write(&data, sizeof(data)); 

}

NRF24 Receive and SIm900 send messenger:

#include <SPI.h>  
#include "RF24.h"
#include "SIM900.h" 
#include "sms.h" 
#include <SoftwareSerial.h> 

SMSGSM sms;
String smsText ="";
int numdata; 
boolean started=false; //trạng thái module sim 
char smstext[160];// nội dung tin nhắn 
char number[20]; // số điện thoại format theo định dạng quốc tế
char sms_text[160];
int pos; //địa chỉ bộ nhớ sim (sim luu tối đa 40 sms nên max pos = 40) 
RF24 myRadio (7, 8); 
byte addresses[][6] = {"0"}; 
float data[2];

void setup() 
{
  Serial.begin(115200);
  delay(1000);

  myRadio.begin(); 
  myRadio.setChannel(115); 
  myRadio.setPALevel(RF24_PA_MAX);
  myRadio.setDataRate( RF24_250KBPS ) ; 
  myRadio.openReadingPipe(1, addresses[0]);
  myRadio.startListening();
   Serial.println("Gui va nhan tin nhan");  
    if (gsm.begin(2400)){     
        Serial.println("\nstatus=READY");     
        started=true;     
    }   else {
}
}


void loop()  
{

  if ( myRadio.available()) 
  {
    while (myRadio.available())
    {
      myRadio.read( &data, sizeof(data) );
    }
    Serial.print("\nNhiet do la:");
    Serial.print(data[1]);
    Serial.print("\nDo am la:");
    Serial.println(data[0]);
    //delay(1000);
    Serial.print("\n________________");
    delay(1000);
    smsText = "Temperature: "+String(data[1],1)+"C Humidity: "+String(data[0],1)+"%";
    smsText.toCharArray(sms_text,160);
    if(started){
   pos = sms.IsSMSPresent(SMS_UNREAD);   // kiểm tra tin nhắn chưa đọc trong bộ nhớ     
        if(pos){//nêu có tin nhắn chưa đọc       
            if(sms.GetSMS(pos, number, smstext, 160)){         
                Serial.print("phone number: ");         
                Serial.println(number);         
                Serial.print("NoiDungTinNhan: ");         
                Serial.println(smstext);                 
                sms.SendSMS(number,sms_text);
            }}}
  }
             
else
{  Serial.println("khong co tin hieu");
   sms.SendSMS("your moblibe phone","offline");

}
delay(1000); 
  
  }
    while (myRadio.available())
    {
      myRadio.read( &data, sizeof(data) );
    }

Why is this done in a while loop? That will throw away all but the last transmitted data.

   pos = sms.IsSMSPresent(SMS_UNREAD);   // kiểm tra tin nhắn chưa đọc trong bộ nhớ     
        if(pos){//nêu có tin nhắn chưa đọc       
            if(sms.GetSMS(pos, number, smstext, 160)){         
                Serial.print("phone number: ");         
                Serial.println(number);         
                Serial.print("NoiDungTinNhan: ");         
                Serial.println(smstext);                 
                sms.SendSMS(number,sms_text);
            }}}

It makes no sense to me to send a text message only if there are text messages waiting to be read. Why are you doing that?

What should i do to fix it? Can you help me? please!!!

What should i do to fix it?

First, you should put EVERY { on a line by itself.
Second, you should out EVERY } on a line by itself.

If you did that, you would see that you have code that looks like:

        pos = sms.IsSMSPresent(SMS_UNREAD);   // kiểm tra tin nhắn chưa đọc trong bộ nhớ     
        if(pos)
        {//nêu có tin nhắn chưa đọc       
            if(sms.GetSMS(pos, number, smstext, 160))
            {         
                Serial.print("phone number: ");         
                Serial.println(number);         
                Serial.print("NoiDungTinNhan: ");         
                Serial.println(smstext);                 
                sms.SendSMS(number,sms_text);
            }
        }

Now, it should be pretty obvious that the call to sms.SendSMS() does NOT belong inside the if(sms.GetSMS()) block.

It should also be obvious that that the call to sms.SendSMS() does NOT belong inside the if(sms.IsSMSPresent()) block.

When you make the call to sms.SendSMS() in the proper place, your problem will be resolved.