我知道如何撥打電話並使用GSM/GPRS shield發送短信給Arduino Uno。但我在http://mydomain.com/rest/receiveSensorData
的位置有一個網絡服務,並且我想使用GSM/GPRS屏蔽將傳感器數據發送到此URL,因爲我無法指望運營地點存在Wi-Fi。 This is the shield我有,而且我也有一張3G SIM卡,正在Arduino Uno上運行。使用Arduino 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上運行。使用Arduino GSM/GPRS屏蔽將數據發送到我的網絡服務
我該怎麼做?
如果數據很小並且您可以將接收SMS信息的功能添加到您的Web應用程序,那麼繼續發送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將不會讓您在GPRS調制解調器上使用3G,除非調制解調器也支持3G。
您可能已經得到了這個工作,但以防萬一:
在我的設置我使用的是採用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());
}
}
只是改變「epc.tmobile.com」的APN爲您的運營商和「YOUR.DOMAIN.COM」到你的服務器的信息並修改「sensorval1 =嗒嗒」你的變量和傳感器數據。
讓我知道,如果你得到這個工作與否。我可以幫你弄清楚它不是太難。
祝你好運。
他沒有問如何發送短信到te服務器,他問如何創建一個連接到web服務,這實際上比設置短信服務器更容易。 – 2013-02-23 13:32:58
他在問如何將傳感器數據發送到Web服務,這可以通過使用SMS和服務器端的服務來完成,該服務器允許Web服務器接收SMS,這就是上述答案。在某些情況下使用SMS有好處,這也被指出。 – Mick 2014-10-09 07:25:33