web-services - 使用 Arduino GSM/GPRS shield 将数据发送到我的网络服务

标签 web-services arduino sensors gsm gprs

我知道如何使用 GSM/GPRS shield 调用电话和发送短信对于 Arduino Uno .但是我在 http://mydomain.com/rest/receiveSensorData 位置有一个网络服务,并且我想使用 GSM/GPRS 屏蔽将传感器数据发送到此 URL,因为我不能指望在操作位置存在 Wi-Fi。 This is the shield我有,而且我还有一张 3G SIM 卡,并且在 Arduino Uno 上运行。

我该怎么做呢?

最佳答案

您可能已经完成了这项工作,但以防万一:

在我的设置中,我使用的是使用 Sim900 模块的 Seeed Quad Band GPRS Shield。我相信在查看您的规范后,此代码也适用于您的代码。

    #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”更改为您的变量和传感器数据。

让我知道你是否能正常工作。我可以帮你弄清楚这不是太难。

祝你好运。

关于web-services - 使用 Arduino GSM/GPRS shield 将数据发送到我的网络服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8500698/

相关文章:

java - 获取不断变化的整数的值

audio - 砍伐木材的声音检测

java - 如何从Json字符串中删除双引号 ""

c# - 使用 NTLM 身份验证的基于 HTTP 的 Web 服务

c++ - Arduino 上的 typedef 结构 : variable does not name a type

php - 有没有办法优化php中的mysql代码?

c++ - 添加到 openFrameworks 项目外部库?

web-services - wsdl 2 java : deploy a web service with apache cxf

java - REST最佳实践,用于检索元素的特定子集

embedded - 是否可以在 Arduino 上使用 CAN 而不需要额外的硬件?