首页 > 解决方案 > GSM 没有响应

问题描述

我正在设计一种设备来控制温度并在温度过高或过低时发送短信。我正在使用 arduino、DHT22 传感器和 DFrobot Gravity UART A6(GSM 模块)。传感器工作正常,但我一直遇到 GSM 问题,因为它停止响应。这是我正在使用的代码,它是来自 DFRobot 的标准代码示例:

#include <SoftwareSerial.h>
SoftwareSerial mySerial(11, 10);  // TX-Pin11, RX-Pin10
void updateSerial()
{
delay(2000);
while (Serial.available()) {
mySerial.write(Serial.read());//Forward what Serial received to Software Serial Port
}
while(mySerial.available()) {
Serial.write(mySerial.read());//Forward what Software Serial received to Serial Port
}
}
void setup()
{
Serial.begin(9600);
mySerial.begin(9600);
}

void loop()
{
mySerial.println("AT");          //Once the handshake test is successful, it will back to OK
updateSerial();

mySerial.println("AT+CSQ");      //Signal quality test, value range is 0-31, 31 is the best
updateSerial();

mySerial.println("AT+CCID");    //Read SIM information to confirm whether the SIM is plugged
updateSerial();

mySerial.println("AT+CREG?");    //Check whether it has registered in the network
updateSerial();

mySerial.println("AT+SNFS=0");  //Adjust to earphone mode(AT+SNFS=1 is microphone mode)
updateSerial();

mySerial.println("AT+CRSL=2");  //Adjust volume, volume range is 0-15, maximum:15
updateSerial();

while(1)
{
if(mySerial.available())
{
Serial.write(mySerial.read());   //Forward what Software Serial received to Serial Port
if(Serial.available())
{
  mySerial.write(Serial.read());  //Forward what Serial received to Software Serial Port
}
}
}
}

结果,我不断收到“???”。而且我不知道该怎么办了。我今天用 oscyloskope 检查了信号,一切正常。请帮忙 :)

标签: arduinoprototypearduino-unogsm

解决方案


你的代码很好;考虑到您正在使用调制解调器制造商提供的示例,这不足为奇。

下一个最可能的解释是您的接线有问题。因此,请确保调制解调器上的 TX 连接到板上的引脚 11,而 RX 连接到引脚 10。

你不是第一个遇到这个问题的人。


推荐阅读