2011-12-14 14 views
8

Wiem, jak wykonywać połączenia i wysyłać SMS-y za pomocą GSM/GPRS shield dla Arduino Uno. Ale mam serwis internetowy w lokalizacji http://mydomain.com/rest/receiveSensorData i chcę przesłać dane z czujnika do tego adresu URL za pomocą tarczy GSM/GPRS, ponieważ nie mogę liczyć na obecność Wi-Fi w lokalizacjach operacyjnych. This is the shield Mam, a także mam kartę SIM 3G i używam Arduino Uno.Używanie tarczy GSM/GPRS Arduino do wysyłania danych do mojego serwisu internetowego

Jak to zrobić?

Odpowiedz

0

Może być łatwiejsze wysyłanie wiadomości SMS, jeśli dane są małe, a Ty dodasz możliwość otrzymywania informacji SMS-owych do swojej aplikacji internetowej.

Patrz odpowiedź na pytanie, w szczególności pierwszej które proponuje: http://www.twilio.com/sms/:

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

Jedną z zalet korzystania z SMS jest to, że będzie to zaoszczędzić tarcza konieczności konfigurowania połączenia GPRS, które zazwyczaj trwa dłużej i może zużywać więcej energii. Jedną z wad jest to, że SMS nie jest gwarantowanym systemem przesyłania wiadomości, chociaż możesz zbudować potwierdzenie wiadomości SMS, jeśli chcesz.

Na marginesie posiadanie karty SIM 3G nie umożliwi korzystania z 3G na modemie GPRS, o ile modem nie obsługuje również 3G.

+1

Nie pytał, jak wysłać sms do serwera, o który prosił, jak utworzyć połączenie z serwisem internetowym, co jest łatwiejsze niż konfigurowanie sms na serwerze. –

+0

Pytał, jak przesłać dane z czujników do usługi internetowej. Można to zrobić za pomocą SMS-a i usługi po stronie serwera, która pozwala serwerowi odbierać wiadomości SMS, co pokazuje powyższa odpowiedź. Istnieją zalety korzystania z SMS-ów w niektórych przypadkach, co również zostało wskazane. – Mick

+0

Myślę, że byłby to kosztowny wybór. –

9

Prawdopodobnie już got to działa, ale na wszelki wypadek:

W mojej konfiguracji używam Seeed czterozakresowy GPRS Tarczę, która korzysta z modułu SIM900. Wierzę, że ten kod będzie działał z twoim również po zapoznaniu się ze specyfikacją.

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

wystarczy zmienić „epc.tmobile.com” do APN dla przewoźnika i „YOUR.DOMAIN.COM” do informacji serwera i zmienić „sensorval1 = bla” do zmiennej i czujników danych.

Daj mi znać, jeśli to działa, czy nie. Mogę ci pomóc dowiedzieć się, że to nie jest trudne.

Powodzenia.

+0

Występuje błąd we wszystkich kombinacjach 'AT + SAPBR'. Używam karty opartej na sim300, – Siddharth

+0

Czy wiesz, jak kolejny kod po stronie serwera? Używam Meteor, więc wszystko jest javascript z bazą danych mongodb. – mjwrazor

Powiązane problemy