Tag: at command

如何从AT CMGL响应中检索电话号码?

我有一个用C编写的应用程序,它使用AT命令从调制解调器读取文本消息。 调制解调器的典型AT响应如下所示: +CMGL: 1,”REC READ”,”+31612123738″,,”08/12/22,11:37:52+04″ 代码当前设置为仅从此行检索id,这是第一个数字,并使用以下代码执行此操作: sscanf(line, “+CMGL: %d,”, &entry); 这里,“line”是包含来自调制解调器的行的字符数组,“entry”是存储id的整数。 我尝试像这样扩展这段代码: sscanf(line, “+CMGL: %d,\”%*s\”,\”%s\”,”, &entry, phonenr); 我想我会使用%* s来扫描第一对引号中的文本并跳过它,然后将下一对引号(电话号码)中的文本读入phonenr字符数组。 这不起作用(%* s显然读取“REC”,下一个%s不读取任何内容)。 一个额外的挑战是文本不限于“REC READ”,它实际上可能是很多东西,也是一个没有空间的文本。

HM-10和Arduino – 发送AT命令,没有从代码结束的行

我需要在Arduino Uno或Nano上使用HM-10。 我无法弄清楚如何发送AT命令并阅读回复。 这些命令来自串行监视器,但不是代码。 这是我到目前为止所尝试的内容: #include SoftwareSerial blueToothSerial(0,1); // RX, TX void setup() { // Open serial communications and wait for port to open: Serial.begin(115200); Serial.println(“Serial began”); blueToothSerial.begin(9600); delay(2000); } void loop() { Serial.println(“looping…”); blueToothSerial.print(“AT+DISC?”); delay(5000); if (blueToothSerial.available()) { Serial.println(“bluetooth serial available”); Serial.write(blueToothSerial.read()); } } 但是,我无法阅读任何回复,我觉得命令没有解雇。 如果(blueToothSerial.available())执行不进入内部

如何在Arduino串口打印AT命令的响应?

我想打印AT命令的响应。 我正在发送AT命令,但我没有在Arduino串口中得到任何响应。 它给-1而不是OK。 #include “SoftwareSerial.h” String ssid = “connectify-krish”; String password = “12345678”; String myword= “”; SoftwareSerial esp(10, 11); void setup() { Serial.begin(9600); esp.begin(9600); esp.write(“AT”); Serial.println(esp.read()); } void loop() {}

AT命令响应(理解Arduino上代码执行的顺序)

我正在从Arduino Uno / Nano(ATmega328)向ESP8266发送AT命令并试图解析收到的字符串的结尾,以确定ESP如何反应以及它是否成功(以及它是否已准备好接收另一个命令然而)。 我知道解析AT命令响应之前已经讨论过了: 获取AT命令响应 但是我有一个特定的问题,那里的其他人可能也会感兴趣… 首先,调用一个函数,它将AT命令发送到ESP以连接到ThingSpeak(数据记录服务器)。 这在手动模式下工作正常,并且在尝试解析响应时也连接但是它只解析返回的第一行。 例如,串行监视器中的预期输出将是: c AT+CIPSTART=”TCP”,”api.thingspeak.com”,80 CONNECT OK Connected to ThingSpeak! 其中c只是我输入的命令字符以启动连接。 但实际反应如下: c AT+CIPSTART=”TCP”,”api.thingspeak.com”,80 Cannot connect to ThingSpeak! CONNECT OK 这意味着解析函数在收到响应之前结束…如下面的代码所示,当前指定了10秒的超时。 即使有20秒的超时,同样的事情发生了,尽管事实上,当手动执行时,响应在大约一秒钟内到达。 只是为了测试解析函数,我尝试搜索”80″并返回true,因为这是在响应的第一行末尾找到的。 无论是搜索”OK”还是”OK\r\n” ,结果都是相同的,它返回false,然后收到其余的响应。 这是代码: boolean waitForResponse(String target, unsigned long timeout) { unsigned long startTime = millis(); String responseBuffer; char charIn; //keep checking for ESP response until […]

Hayes AT命令:检测远程挂断?

如何以编程方式检测通话中的远程调制解调器何时挂断? 我正在编写一个C程序,它与Ubuntu linux中的SoftModem设备/dev/ttySL0接口。 我可以使用Hayes AT命令配置调制解调器并与远程调制解调器通信。 但是,我无法确定我应该如何检测到另一端已挂断线路。 我配置了调制解调器,以便当另一端挂断时,设备打印NO CARRIER并切换到命令模式。 但是,我不能使用NO CARRIER字符串,因为我无法保证调制解调器在数据模式下不会收到该字符串。 你怎么“听”远程挂机?