web-dev-qa-db-ja.com

Arduino GSM / GPRSシールドを使用してデータをWebサービスに送信します

GSM/GPRSを使用して電話をかけたりSMSを送信したりする方法を知っています shield for Arduino Uno 。しかし、私はhttp://mydomain.com/rest/receiveSensorDataの場所にWebサービスを持っており、操作場所にWi-Fiが存在することを期待できないため、GSM/GPRSシールドを使用してこのURLにセンサーデータを送信したいと思います。 これはシールドです 私は持っています。3GSIMカードも持っていて、ArduinoUnoで実行しています。

どうすればよいですか?

8
codemaniac

あなたはおそらくすでにこれを機能させていますが、念のために:

私のセットアップでは、Sim900モジュールを使用するSeeed Quad Band GPRSShieldを使用しています。このコードは、あなたの仕様を見た後、あなたのコードでも機能すると思います。

    #include <SoftwareSerial.h>
SoftwareSerial gprsSerial(7, 8);

void setup()
{
  gprsSerial.begin(19200);
  Serial.begin(19200);

  Serial.println("Config SIM900...");
  delay(2000);
  Serial.println("Done!...");
  gprsSerial.flush();
  Serial.flush();

  // attach or detach from GPRS service 
  gprsSerial.println("AT+CGATT?");
  delay(100);
  toSerial();


  // bearer settings
  gprsSerial.println("AT+SAPBR=3,1,\"CONTYPE\",\"GPRS\"");
  delay(2000);
  toSerial();

  // bearer settings
  gprsSerial.println("AT+SAPBR=3,1,\"APN\",\"epc.tmobile.com\"");
  delay(2000);
  toSerial();

  // bearer settings
  gprsSerial.println("AT+SAPBR=1,1");
  delay(2000);
  toSerial();
}


void loop()
{
   // initialize http service
   gprsSerial.println("AT+HTTPINIT");
   delay(2000); 
   toSerial();

   // set http param value
   gprsSerial.println("AT+HTTPPARA=\"URL\",\"http://YOUR.DOMAIN.COM/rest/receiveSensorData?sensorval1=blah&sensorval2=blah\"");
   delay(2000);
   toSerial();

   // set http action type 0 = GET, 1 = POST, 2 = HEAD
   gprsSerial.println("AT+HTTPACTION=0");
   delay(6000);
   toSerial();

   // read server response
   gprsSerial.println("AT+HTTPREAD"); 
   delay(1000);
   toSerial();

   gprsSerial.println("");
   gprsSerial.println("AT+HTTPTERM");
   toSerial();
   delay(300);

   gprsSerial.println("");
   delay(10000);
}

void toSerial()
{
  while(gprsSerial.available()!=0)
  {
    Serial.write(gprsSerial.read());
  }
}

「epc.tmobile.com」をキャリアのapnに変更し、「YOUR.DOMAIN.COM」をサーバー情報に変更し、「sensorval1 = blah」を変数とセンサーデータに変更するだけです。

これが機能するかどうかを教えてください。私はあなたがそれがそれほど難しくないことを理解するのを手伝うことができます。

幸運を。

9

データが小さく、WebアプリケーションにSMS情報を受信する機能を追加すると、実際にはSMSを送信し続ける方が簡単な場合があります。

次の質問への回答、特に最初に提案された質問への回答を参照してください。 http://www.twilio.com/sms/

ホストされたサーバー上の米国のWebアプリケーションでSMSメッセージを受信します

SMSを使用する利点の1つは、一般に時間がかかり、より多くの電力を使用する可能性があるGPRS接続をセットアップする必要があるシールドを節約できることです。不利な点の1つは、SMSが保証されたメッセージングシステムではないことですが、必要に応じてSMSの上に何らかの確認応答を作成できます。

余談ですが、3G SIMを使用しても、モデムが3Gもサポートしていない限り、GPRSモデムで3Gを使用することはできません。

0
Mick