Arduino GSM屏蔽没有响应。 gsmAccess.begin()不起作用

时间:2019-07-03 07:54:21

标签: arduino gsm

我正在尝试使用提供的示例“发送SMS”代码来使我的arduino GSM屏蔽罩工作。但是,当我上载并编译程序时,串行监视器将显示“ SMS Messages Sender”,并且什么也没有发生。

我正在使用Arduino uno r3和gsm sim900。具有5V 1.5A的gsm供电。我已将arduino引脚7和8连接到gsm的引脚7和8。我也将gsm接地。

当我使用SoftwareSerial.h时,它可以工作。但是我希望使用GSM.h库,该库现在不起作用。任何帮助请

 // include the GSM library
 #include <GSM.h>

 // PIN Number for the SIM
    #define PINNUMBER ""

  // initialize the library instances
   GSM gsmAccess;
 GSM_SMS sms;

 // Array to hold the number a SMS is retrieved from
 char senderNumber[20];
  void setup() {
 // initialize serial communications and wait for port to open:
 Serial.begin(9600);
  while (!Serial) {
 ; // wait for serial port to connect. Needed for native USB port only
 }

Serial.println("SMS Messages Receiver");

// connection state
bool notConnected = true;

// Start GSM connection
while (notConnected) {
if (gsmAccess.begin(PINNUMBER) == GSM_READY) {
  notConnected = false;
} else {
  Serial.println("Not connected");
  delay(1000);
 }
 }

Serial.println("GSM initialized");
Serial.println("Waiting for messages");
}
void loop() {
char c;

// If there are any SMSs available()
if (sms.available()) {
Serial.println("Message received from:");

// Get remote number
sms.remoteNumber(senderNumber, 20);
Serial.println(senderNumber);

// An example of message disposal
// Any messages starting with # should be discarded
if (sms.peek() == '#') {
  Serial.println("Discarded SMS");
  sms.flush();
}

// Read message bytes and print them
while (c = sms.read()) {
  Serial.print(c);
}

Serial.println("\nEND OF MESSAGE");

// Delete message from modem memory
sms.flush();
Serial.println("MESSAGE DELETED");
}

delay(1000);

}

我希望此代码可以使我接收消息,并且可以对其进行修改以将消息存储在变量中

1 个答案:

答案 0 :(得分:1)

您的问题可能是接线。

您的电路板(Arduino UNO R3)具有其UART(在引脚Serial.begin(9600)0 RX上定义1 TX时打算使用的UART。有关详细信息,请参见here。下面的示意图和图片(带有TX和RX标签的右上角)。

软件仿真串行有效,因为您将引脚7和8定义为仿真UART TX和RX信号。

Arduino UNO R3 board top side