2

私は Arduino Leonardo とSeeedstudio GPRS Shield v2.0を持っています。どちらもシームレスに機能します。メイン gprs シールドリンクのチュートリアルに従って、次のコードを arduino に正常にコンパイルしました。

//Serial Relay - Arduino will patch a 
//serial link between the computer and the GPRS Shield
//at 19200 bps 8-N-1
//Computer is connected to Hardware UART
//GPRS Shield is connected to the Software UART 


#include <SoftwareSerial.h>


SoftwareSerial GPRS(7, 8);
unsigned char buffer[64]; // buffer array for data recieve over serial port
int count=0;              // counter for buffer array 
void setup()
{
  GPRS.begin(19200);      // the GPRS baud rate   
  Serial.begin(19200);    // the Serial port of Arduino baud rate.

}

void loop()
{
  if (GPRS.available())            // if date is comming from softwareserial port ==> data is comming from gprs shield
   {
    while(GPRS.available())        // reading data into char array 
    {
      buffer[count++]=GPRS.read(); // writing data into array
      if(count == 64)break;
  }
    Serial.write(buffer,count);    // if no data transmission ends, write buffer to hardware serial port
    clearBufferArray();            // call clearBufferArray function to clear the storaged data from the array
    count = 0;                     // set counter of while loop to zero
  }
  if (Serial.available())          // if data is available on hardwareserial port ==> data is comming from PC or notebook
    GPRS.write(Serial.read());     // write it to the GPRS shield
 }
void clearBufferArray()            // function to clear buffer array
{
  for (int i=0; i<count;i++)
     { buffer[i]=NULL;}            // clear all index of array with command NULL
}

上記のコードは、シリアルから AT コマンドを入力として受け取り、それを gprs モジュールに渡します。したがって、「ATD + +1XXXXXXXX」のようなコードを入力して、番号を呼び出すコードを入力すると、機能しました。問題は、gprs モジュール シリアルからの応答が得られないことです。シリアル端末への応答は「OK」になるはずだと読みました。私の質問は次のとおりです。

a. 私が逃したものはありますか?端末に書き込まれた応答を取得したい。

b. httpリクエストをしたいのですが、誰かがそれを行う方法を経験していますか? 私が意味するのは、このgprsオープニングウェブサイトblablablabla.com/cs/blabla.php?name=blablaです

前にthx

4

3 に答える 3

0

私は決してこのようなことの専門家ではありませんが...データを印刷または表示する行は見当たりません。

例:

変数のようなものを確立したと仮定します。int inByte=0最初に

あなたのbuffer[count++]またはBufferArray()のように、私はやや慣れていません

次に、次を使用してデータを取得できます

Serial.println(inByte); 

また

GPRS.println(inByte);

COMポートウィンドウにこの情報が表示されます

そう....?何かのようなもの

Serial.println(buffer[count++]);

また

GPRS.println(buffer[count++]); 

どちらもBTWをコンパイルします

于 2014-03-14T17:03:36.860 に答える
0

SIM900 が「結果コード抑制」モードになっている可能性があります。このモードでは、単に「OK」などの結果コードを送信しません。

「ATQ0」コマンドを送信して、結果コードを送信するようにしてください。(AT コマンド マニュアルの ATQ コマンドを参照してください)。

于 2014-02-06T06:13:46.580 に答える