2011-12-14 31 views
8

Tôi biết cách thực hiện cuộc gọi và gửi SMS bằng cách sử dụng GSM/GPRS shield cho Arduino Uno. Nhưng tôi có một dịch vụ web tại địa chỉ http://mydomain.com/rest/receiveSensorData và tôi muốn gửi dữ liệu cảm biến đến URL này bằng cách sử dụng lá chắn GSM/GPRS vì tôi không thể đếm trên Wi-Fi có mặt tại các vị trí hoạt động. This is the shield Tôi có, và tôi cũng có một thẻ SIM 3G và đang chạy trên Arduino Uno.Sử dụng lá chắn Arduino GSM/GPRS để gửi dữ liệu đến dịch vụ web của tôi

Làm cách nào để thực hiện việc này?

Trả lời

0

Có thể thực sự dễ dàng hơn khi tiếp tục gửi SMS nếu dữ liệu nhỏ và bạn thêm khả năng nhận thông tin SMS vào ứng dụng web của mình.

Xem câu trả lời cho những câu dưới đây đặc biệt là người đầu tiên điều này gợi ý: http://www.twilio.com/sms/:

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

Một lợi thế của việc sử dụng tin nhắn SMS là nó sẽ lưu các lá chắn cần phải thiết lập một kết nối GPRS mà nói chung sẽ mất nhiều thời gian hơn và có thể sử dụng nhiều năng lượng hơn. Một bất lợi, để nhận thức được rằng tin nhắn SMS không phải là một hệ thống tin nhắn được đảm bảo, mặc dù bạn có thể xây dựng một số loại ghi nhận trên đầu trang của tin nhắn SMS nếu bạn muốn.

Ngoài ra, có một SIM 3G sẽ không cho phép bạn sử dụng 3G trên modem GPRS trừ khi modem cũng hỗ trợ 3G.

+1

Ông không hỏi làm thế nào để gửi sms đến máy chủ te ông đã hỏi làm thế nào để tạo ra một kết nối đến dịch vụ web mà thực sự là dễ dàng hơn so với thiết lập sms đến máy chủ. –

+0

Anh ấy hỏi làm thế nào để gửi dữ liệu cảm biến đến một dịch vụ web, Điều này có thể được thực hiện bằng cách sử dụng SMS và dịch vụ ở phía máy chủ cho phép máy chủ web nhận SMS. Có lợi thế khi sử dụng SMS trong một số trường hợp nhất định và điều này cũng được chỉ ra. – Mick

+0

Tôi nghĩ rằng đây sẽ là một sự lựa chọn tốn kém. –

9

Bạn có thể đã nhận được công việc này, nhưng chỉ trong trường hợp:

Trong thiết lập của tôi Tôi đang sử dụng Seeed Quad Band GPRS khiên mà sử dụng các module Sim900. Tôi tin rằng mã này sẽ làm việc với bạn cũng như sau khi xem thông số kỹ thuật cho bạn.

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

Chỉ cần thay đổi "epc.tmobile.com" vào APN cho hãng điện thoại và "YOUR.DOMAIN.COM" để thông tin máy chủ của bạn và thay đổi "sensorval1 = blah" số liệu thay đổi và cảm biến của bạn.

Hãy cho tôi biết nếu bạn làm việc này hay không. Tôi có thể giúp bạn tìm ra nó không quá khó.

Chúc may mắn.

+0

Tôi gặp lỗi trong tất cả các kết hợp của 'AT + SAPBR'. Tôi đang sử dụng bo mạch dựa trên sim300, – Siddharth

+0

Bạn có biết mã phía máy chủ tiếp theo không? Tôi đang chạy trên Meteor vì vậy nó là tất cả javascript với một cơ sở dữ liệu mongodb. – mjwrazor