Module 短信可以';不能使用GSM模块SIM900A发送

Module 短信可以';不能使用GSM模块SIM900A发送,module,arduino,gsm,Module,Arduino,Gsm,我正在尝试使用GSM SIM900A发送短信。但没有编译错误和其他干扰 代码执行正确,但SMS没有发送到代码中提到的号码 #include <TinyGPS.h> #include <SoftwareSerial.h> #include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 16, 2); SoftwareSerial SIM900A(7, 8);

我正在尝试使用GSM SIM900A发送短信。但没有编译错误和其他干扰

代码执行正确,但SMS没有发送到代码中提到的号码


#include <TinyGPS.h>
#include <SoftwareSerial.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);
SoftwareSerial SIM900A(7, 8);

void setup()
{

  Serial.begin(9600);
  SIM900A.begin(9600);
  pinMode(6, INPUT);
}

void loop()
{

  bool state = digitalRead(6);
  if (state == HIGH)    
  {





    SIM900A.println("AT+CMGF=1");
    delay(1000);
    SIM900A.println("AT+CMGS=\"+8801679388394\"\r");
    delay(1000);

    SIM900A.println("Alert I need help....Asheesh ,Battalion No. 1233456 ");
    SIM900A.println((char)26);

    delay(10000);

  }
  else {


    delay(2000);


  }


}



#包括
#包括
#包括
#包括
液晶I2C液晶显示器(0x27,16,2);
软件系列SIM900A(7,8);
无效设置()
{
Serial.begin(9600);
SIM900A.begin(9600);
pinMode(6,输入);
}
void循环()
{
布尔状态=数字读取(6);
如果(状态==高)
{
SIM900A.println(“AT+CMGF=1”);
延迟(1000);
SIM900A.println(“AT+CMGS=\”+880167938394\”\r);
延迟(1000);
SIM900A.println(“警报,我需要帮助……阿希什,第1233456营”);
SIM900A.println((char)26);
延迟(10 000);
}
否则{
延迟(2000年);
}
}

我不明白这里怎么了。有人能告诉我问题出在哪里吗?

首先检查SIM900A是否已正确初始化。您还需要检查GSM模块是否检测到SIM卡。通常这由车载LED指示,每3秒后闪烁一次。 以下代码用于向用户发送sms

void sendSMS()
{
   SIM900A.println("AT+CMGF=1");
   delay(1000);

   SIM900A.println("AT+CMGS=\"+8801679388394\"\r");
   delay(1000); 

   SIM900A.print("Hello");
   delay(1000);

   SIM900A.println((char)26);     // sends ctrl+z end of message 
   delay(5000);
}

在尝试此代码之前,请检查您是否已使用
AT+COPS?
连接到网络。打开串行监视器后,请确保选中了“NL和CR两个”选项

GSM SIM900A仅支持2G SIM卡。首先,请确保您使用的是2G SIM卡。

车载led每3秒闪烁一次。我认为GSM模块已成功检测到SIM卡。我试图替换你的代码。它仍然不起作用,请仔细阅读下面的文章并逐个测试AT命令。