我正在设计一种控制温度的设备,如果温度过高或过低,都会发送短信。 我正在使用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检查了信号,一切正常。请帮助:)
答案 0 :(得分:0)
您的代码很好;考虑到您使用的是调制解调器制造商提供的示例,这不足为奇。
下一个最可能的解释是您的接线有问题。因此,请确保调制解调器上的TX到达开发板上的引脚11,RX到达引脚10。
您不是the first遇到此问题。