代码可以工作但很多时候即使接口连接正确也无法调用/发送消息。它失败了大约10%,程序正在继续。如果在调用时有任何错误(可能在信号或其他方面),如何重试调用?我认为我必须处理AT命令,但我不知道如何处理它。我正在使用此library。 AT命令是here。我的完整代码是here。
#include <GPRS_Shield_Arduino.h>
#include <SoftwareSerial.h>
#include <Wire.h>
#define PIN_TX 7
#define PIN_RX 8
#define BAUDRATE 9600
#define PHONE_NUMBER "003xxxxxxxxxx"
#define MESSAGE "Temp is high"
GPRS gprsTest(PIN_TX, PIN_RX, BAUDRATE); //RX,TX,BaudRate
void setup() {
Serial.begin(9600);
// code
}
void loop() {
// ..code..
if (temp>35) {
call_and_text();
}
// ..code..
}
call_and_text() {
while (!gprsTest.init()) {
delay(1000);
Serial.print("init error1\r\n");
}
Serial.println("gprs init success");
Serial.println("start to send message ...");
gprsTest.sendSMS(PHONE_NUMBER, MESSAGE); //define phone number and text
Serial.println("Init success, start to call...");
gprsTest.callUp("003xxxxxxxxx");
}
答案 0 :(得分:1)
您可以使用sendSMS
和callUp
函数的返回来确定它们是否成功。
对于您的问题,您是否正确为您的GSM屏蔽供电? 通过正确,我的意思是不是通过USB从您的计算机。
如果是这种情况,请尝试使用功率足够的外部电源。电源应该能够提供高达2A的电压。
编辑您的上一条评论。
在拨打或发送信息时,您的GSM屏蔽需要一个电源。你的0.7mA可能还不够。
如果您有另一个可以提供更多电源,请尝试一下。请注意,您的arduino可以从6-20V
供电,但推荐电压为7-12V
。
然而,理想的方法是分别为你的盾牌和你的arduino供电,并有一个共同点。通过这种方式,您可以随时通过USB为电源提供电源,屏蔽电源可以正常供电。