我想在Arduino Nano上使用SIM800L V2.0来发送短信。
我使用带密码的SIM卡。我想通过Arduino IDE的串行接口执行这些AT命令:
at+cpin="xxxx"
at+cmgf=1
AT+CMGS="+33xxxxxxxxx"
my message to sent through SMS<CTRL+Z>
我被上一条命令挡住了。我不知道为什么。
我使用此代码与sim800l通信:
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11);
void setup() {
Serial.begin(9600);
mySerial.begin(9600);
}
void loop() {
if (mySerial.available())
Serial.write(mySerial.read());
if (Serial.available()) {
while(Serial.available())
mySerial.write(Serial.read());
mySerial.println();
}
}
at + cmgf = 1且AT + CMGS =“ ...”返回“ ERROR”
所以,我试图获取网络连接状态:
at+cops?
+COPS: 0
而且,我试图获取所有可用网络的列表:
at+cops=?
+COPS: (1,"Orange F","Orange","20801"),(1,"BOUYGUES TELECOM","BYTEL","20820"),(2,"SFR","SFR","20810"),,(0-4),(0-2)
那么,您有解决此问题的任何想法吗?
答案 0 :(得分:0)
我将为您提供一些一般性提示。
1)设备已注册吗?
-通过发出AT+CREG?
命令
AT+CREG?
+CREG: 0,N
OK
如果N = 1,则您的设备已注册到家庭网络。如果N = 5,则说明您已注册漫游。其他N值表示注册由于某种原因正在进行或失败。
2)是否设置了服务中心地址?这对于MO SMS传输是必需的。
-通过发出AT+CSCA=<number>[,<type>]?
命令进行设置
AT+CSCA="+"+33xxxxxxxxx",145
OK
<number>
是您的操作员的SC; <type>
允许您在国家编号方案(129)和国际编号方案(145)之间进行选择。
3)在调试阶段,通过AT+CMEE=2?
命令切换到详细错误模式,尝试了解错误原因。然后重复命令序列
AT+CMEE=2
OK
AT+CMGS="+33xxxxxxxxx"
> Your text<CTRL+Z>
+CME ERROR: <verbose error>