【问题标题】:Sending AT commands to a GSM/GPRS and displaying the reply on a Serial Monitor向 GSM/GPRS 发送 AT 命令并在串行监视器上显示回复
【发布时间】:2014-12-15 20:31:42
【问题描述】:

对于串行端口,我很生疏。我想向连接到我的 Arduino UNO 的 GSM/GPRS 屏蔽发送 AT 命令。我特别想传递的 AT 命令是获取网络信号强度的命令。

我正在使用 SIM900 和 SoftwareSerial 库来发送命令,因为 GSM 库没有为我正确编译。这意味着我必须使用 SoftwareSerial 库。

我有这个来自 SIM900 库的示例代码,它依赖于从串行监视器读取输入来执行命令,但我需要它是自动化的,并且需要硬编码传递命令。在这个示例代码中,感兴趣的地方是 simplehwread() 方法。

#include "SIM900.h"
#include <SoftwareSerial.h>

int numdata;
char inSerial[40];
int i=0;

void setup()
{
     //Serial connection.
     Serial.begin(9600);
     Serial.println("GSM Shield testing.");
     //Start configuration of shield with baudrate.
     //For http uses is raccomanded to use 4800 or slower.
     if (gsm.begin(9600))
          Serial.println("\nstatus=READY");
     else Serial.println("\nstatus=IDLE");
};

void loop()
{
     //Read for new byte on serial hardware,
     //and write them on NewSoftSerial.
     serialhwread();
     //Read for new byte on NewSoftSerial.
     serialswread();
};

void serialhwread()
{
     i=0;
     if (Serial.available() > 0) {
          while (Serial.available() > 0) {
               inSerial[i]=(Serial.read());
               delay(10);
               i++;
          }

          inSerial[i]='\0';
          if(!strcmp(inSerial,"/END")) {
               Serial.println("_");
               inSerial[0]=0x1a;
               inSerial[1]='\0';
               gsm.SimpleWriteln(inSerial);
          }
          //Send a saved AT command using serial port.
          if(!strcmp(inSerial,"TEST")) {
               Serial.println("SIGNAL QUALITY");
               gsm.SimpleWriteln("AT+CSQ");
          } else {
               Serial.println(inSerial);
               gsm.SimpleWriteln(inSerial);
          }
          inSerial[0]='\0';
     }
}

void serialswread()
{
     gsm.SimpleRead();
}

无论我如何修改此代码,命令都不会传入并显示响应,而此处的方法执行此操作,但不是我希望它完成的方式。即直接输入。有人可以帮忙吗?

【问题讨论】:

    标签: serial-port arduino at-command


    【解决方案1】:

    我已经在一家配备蜂窝无线电的公司处理过这种情况。有许多状态信号过来,如果处理不当,这些来自蜂窝调制解调器的状态标志将丢失

    您需要查看与您的蜂窝调制解调器及其协议相关的数据表,以便了解在从配置到最终连接到蜂窝服务的各个步骤中需要注意哪些标志。

    还必须遵循多线程编码技术。

    请记住,通信渠道并不理想,并且会出现故障。如果您的编码技术是合理的并且您遵循协议要求,那么它应该可以工作。

    罗恩 爱达荷州博伊西

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多