2011-12-14 5 views
8

Arduino Uno에 GSM/GPRS shield을 사용하여 전화를 걸고 SMS를 보내는 방법을 알고 있습니다. 하지만 웹 사이트가 http://mydomain.com/rest/receiveSensorData이고, GSM/GPRS 실드를 사용하여이 URL로 센서 데이터를 보내고 싶습니다. 작동 위치에있는 Wi-Fi를 믿을 수 없기 때문입니다. This is the shield 나는 가지고 있고, 또한 3G SIM 카드가 있고 Arduino Uno에 달리고있다.Arduino GSM/GPRS 방패를 사용하여 웹 서비스에 데이터 전송

어떻게하면됩니까?

답변

0

데이터가 작고 웹 응용 프로그램에 SMS 정보를 수신하는 기능을 추가하면 실제로 SMS를 계속 보내는 것이 더 쉽습니다. http://www.twilio.com/sms/ :

는 제안 특히 처음에 다음과 같은 질문에 대한 답변을 참조 SMS를 사용

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

하나의 장점은 실드는 GPRS 연결을 설정하는 데 절약 할 수 있다는 것입니다

하는 일반적으로 더 오래 걸리고 더 많은 전력을 사용할 수 있습니다. 한 가지 단점은 SMS가 보장 된 메시징 시스템이 아니라는 점입니다. 원한다면 SMS를 바탕으로 일종의 확인을 할 수 있습니다.

제쳐두고 3G SIM을 사용하면 모뎀이 3G를 지원하지 않는 한 GPRS 모뎀에서 3G를 사용할 수 없습니다.

+1

그는 웹 서버에 SMS를 설정하는 것보다 실제로 웹 서비스에 대한 연결을 만드는 방법을 묻는 메시지를 보내는 방법을 묻지 않았습니다. –

+0

그는 웹 서비스에 센서 데이터를 보내는 방법을 묻고있었습니다. 이것은 SMS 및 서버 측의 서비스를 사용하여 수행 할 수 있습니다.이 서비스는 웹 서버가 SMS를 수신하도록 허용합니다. 특정 경우에 SMS를 사용하는 것이 이점이 있으며이 또한 지적되었습니다. – Mick

+0

나는 이것이 값 비싼 선택 일 것이라고 생각한다. –

9

당신은 아마 이미이 작업을 가지고 있지만 단지 경우 : 내 설정에서

을 나는 Sim900 모듈을 사용하는 Seeed 쿼드 밴드 GPRS 쉴드를 사용하고 있습니다. 나는이 코드가 당신의 스펙을 본 후에 당신과 잘 작동 할 것이라고 믿는다.

#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()); 
    } 
} 

단지의 사업자에 대한 APN로 변경 "epc.tmobile.com"와 "YOUR.DOMAIN.COM을"서버 정보 및 귀하의 변수 및 센서 데이터에 "sensorval1 = ㅋ"로 변경.

이 기능이 작동하는지 여부를 알려주세요. 너를 도울 수있어 너무 힘들지 않아.

행운을 비네.

+0

'AT + SAPBR'의 모든 조합에 오류가 있습니다. sim300 기반 보드를 사용하고 있습니다. – Siddharth

+0

후속 서버 측 코드는 어떻게 알 수 있습니까? Meteor에서 실행 중이므로 mongodb 데이터베이스로 모든 자바 스크립트입니다. – mjwrazor

관련 문제