【问题标题】:unable to send call from Arduino to a specific number无法从 Arduino 向特定号码发送呼叫
【发布时间】:2016-08-22 12:51:22
【问题描述】:

我正在使用 Arduino UNO 和 SIM900A 模块进行基于 GSM + ARDUINO 的通信。我使用以下代码拨打特定号码但没有任何反应,

void setup()
{ 
 Serial.begin(9600);
 delay(10000); 
}
void loop()
{
 Serial.println("ATDTxxxxxxxxxx;"); //where xxxxxxxxxx is  a 10 digit mobile number
 delay(30000); // wait 20 seconds.
 Serial.println("ATH"); // end call
 do // remove this loop at your peril
 { 
 delay(1); 
 }
 while (1>0);
}

而当我使用 ATDTxxxxxxxxxx 时;在 minicom 中与 SIM900A 模块通信时,我能够打电话(因为 ATDxxxxxxxxxx 给出了无运营商错误,所以我使用了“;”)。发送消息的情况类似。我在使用时收到 "+CMS ERROR: 302"

AT+ CMGF=1 
AT+CMGS="Mobno." //after this i get the error.

我无法通过 minicom + SIM900A GSM 模块发送消息,我想用 Arduino 对其进行测试。我认为我的 SIM 或任一模块的设置有问题。我什至尝试重置 SIM 的设置,但没有任何结果。

【问题讨论】:

标签: arduino gsm at-command


【解决方案1】:

首先:永远不要使用延迟,而不是通过解析调制解调器给出的实际响应来进行适当的等待。您必须读回调制解调器给出的响应并等待最终结果代码,然后再继续执行下一个命令。请参阅this answerthis answer 了解更多详细信息(尤其是有关正确处理AT+CMGS 的信息)。

27.005 部分3.2.5 Message Service Failure Result Code +CMS ERROR 中定义了所有CMS 错误的列表。您的订阅是否允许发送短信(很可能,但只是为了确保检查这一点。使用插入另一部手机的此 SIM 卡测试发送短信)?您使用的是什么消息存储?你确定 gsm 模块支持文本模式吗?

【讨论】:

    【解决方案2】:

    我用这段代码解决了这个问题:

    void setup()
    { 
      Serial.begin(9600);
      delay(10000); 
    }
    void loop()
    {
      Serial.println("ATD+60148266823;"); //where xxxxxxxxxx is  a 10 digit mobile number
      delay(30000); // wait 20 seconds.
      Serial.println("ATH"); // end call
      do // remove this loop at your peril
      { 
        delay(1); 
      } while (1>0);
    }
    

    【讨论】:

    • 请解释答案,以便提问者从中学习。考虑根据嵌套级别缩进代码,以便更容易阅读
    【解决方案3】:
    void setup(){ 
        Serial.begin(9600); 
    } 
    void loop(){
        Serial.println("AT");
        delay(500);
        Serial.print("ATD");
        Serial.println("99XXXXXXX8;");
        delay(20000);
        Serial.println("ATH");
    }
    

    【讨论】:

    • 请尽量避免仅仅将代码作为答案,并尝试解释它的作用和原因。对于没有相关编码经验的人来说,您的代码可能并不明显。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多