我正在尝试让我的SIM800C与Arduino对话。但是,没有通信发生。
#include <SoftwareSerial.h>
SoftwareSerial at(2, 3);
void setup() {
Serial.begin(9600);
at.begin(9600);
}
void loop() {
// try every 2 seconds
delay(2000);
Serial.println("sending AT ... ");
at.println("AT");
while (at.available() > 0) {
Serial.write(at.read());
}
}
我无法找回OK
。 SIM800C应该自己检测波特率。
我确信肯定有一个简单的愚蠢错误。我现在不知道该怎么办。我显然已经检查了电缆断裂。出于绝望,我已经尝试切换RX
和TX
。我还尝试了不同的波特率(无论在SoftwareSerial
的通常限制范围内),但是无论如何,只要有两条AT命令进入,它就可以自动检测到它。
答案 0 :(得分:1)
您需要考虑一些问题:
使用以下示例代码在PC和SIM之间传输数据。有时,SIM模块会进入掉电状态,并且不响应任何AT命令,但会在串行监视器中显示一些结果。
正如评论中已经提到的,似乎您的接线错误,并且您将软件串行声明为SoftwareSerial at(2, 3);
,这意味着引脚2在Arduino上为Rx,应连接到SIM的Tx引脚,而引脚3为Arduino上的Tx,应连接到SIM的Rx引脚。请不要弄乱引脚,并按如下所示正确连接引脚。
Arduino SIM Rx 2 ----> Tx Tx 3 ----> Rx
我不确定是否可以使用500mA USB连接器打开SIM800的电源,请确保为SIM模块的VCC使用外部1/2 A电源。
查看SIM卡模块的闪烁速度(如果已连接并打开电源),它将以3秒的延迟闪烁,并且如果快速闪烁,则表明它正在重新启动。同样,如果SIM卡电源正确打开,它将打印一些信息,例如SIM READY
,CALL READY
等。
尝试使用其他115200
波特率,看看是否有通电。
我添加了一些宏定义,以使引脚映射更加清晰。
#include <SoftwareSerial.h>
//SIM800 TX is connected to Arduino D2
#define SIM800_TX_PIN 2
//SIM800 RX is connected to Arduino D3
#define SIM800_RX_PIN 3
//Create software serial object to communicate with SIM800
SoftwareSerial serialSIM800(SIM800_TX_PIN,SIM800_RX_PIN);
void setup() {
//Begin serial comunication with Arduino and Arduino IDE (Serial Monitor)
Serial.begin(9600);
while(!Serial);
//Being serial communication witj Arduino and SIM800
serialSIM800.begin(9600);
delay(1000);
Serial.println("Setup Complete!");
}
void loop() {
//Read SIM800 output (if available) and print it in Arduino IDE Serial Monitor
if(serialSIM800.available()){
Serial.write(serialSIM800.read());
}
//Read Arduino IDE Serial Monitor inputs (if available) and send them to SIM800
if(Serial.available()){
serialSIM800.write(Serial.read());
}
}
答案 1 :(得分:1)
很奇怪,SIM800C上的引脚PWX
需要连接到GND
才能工作。现在它开始每秒闪烁一次,并且正在响应AT命令。
而且,事实证明,如SIM800C文档所述,此特定模块未附带启用自动波特率的功能。正确的波特率是115200。
答案 2 :(得分:0)
是的,此模块在此配置中将不起作用。有一个V_TTL引脚和5V引脚。此引脚用于启用GSM的TTL逻辑转换器。如果需要使用arduino,则必须将该引脚连接到5V,如果使用ESP8266,则必须将该引脚连接到3V。See the pin configuration here >