首页 文章

使用Arduino GSM / GPRS Shield将数据发送到我的Web服务

提问于
浏览
8

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

我该怎么做呢?

2 回答

  • 0

    你可能已经有了这个工作,但以防万一:

    在我的设置中,我使用的是使用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”更改为您的变量和传感器数据 .

    如果你有这个工作,请告诉我 . 我可以帮你解决它并不太难 .

    祝好运 .

  • 9

    如果数据很小并且您添加了向Web应用程序接收SMS信息的功能,那么实际上可能更容易继续发送SMS .

    请参阅以下问题的答案,特别是第一个建议:http://www.twilio.com/sms/

    Receive SMS messages in a web application in the US on a hosted server

    使用SMS的一个优点是它将节省必须 Build GPRS连接的屏蔽,这通常需要更长时间并且可能使用更多功率 . 需要注意的一个缺点是SMS不是一个有保证的消息系统,尽管如果你愿意,你可以在SMS之上 Build 某种确认 .

    另外,拥有3G SIM卡不能让你在GPRS调制解调器上使用3G,除非调制解调器也支持3G .

相关问题