2017-02-21 34 views
0

我試圖從Arduino發佈一些手動數據到服務器。我正在使用SIM 900進行數據連接..數據沒有到達服務器.. SIM卡已經初始化,沒有錯誤,但數據沒有發佈到服務器..請幫我解決這個問題..代碼是下面..使用SIM卡發送數據使用HTTP請求900

#include<SoftwareSerial.h> 

SoftwareSerial client(2,3); 

String testReading="{ \"testID\" : 1, \"testLevel\" : 1, }"; 

void setup() 
{ 
    Serial.begin(9600); 
    client.begin(9600); 
    delay(1000); 
    if(client.available()) 
    { 
    Serial.print("Connected"); 
    } 
    else 
    { 
    Serial.print("Not Connected"); 
    } 
    checkSignal(); 
    connectGPRS(); 
    postData(); 
    delay(1000); 
} 

void loop() 
{ 
    if(client.available()) 
    { 
    checkSignal(); 
    connectGPRS(); 
    postData(); 
    delay(1000); 
    } 
} 

void connectGPRS() 
{ 
    client.println("AT+CGATT?"); 
    delay(1000); 
    ShowSerialData(); 

    client.println("AT+SAPBR=3,1,\"CONTYPE\",\"GPRS\""); 
    delay(1000); 
    ShowSerialData();            

    client.println("AT+SAPBR=3,1,\"APN\",\"www\"");//Using Indian Standard Vodafone Sim and so APN is www 
    delay(1000); 
    ShowSerialData(); 

    client.println("AT+SAPBR=1,1"); 
    delay(1000); 
    ShowSerialData(); 

    client.println("AT+SAPBR=2,1"); 
    delay(1000); 
    ShowSerialData(); 
} 

void checkSignal() 
{ 
    client.println("AT+CSQ"); 
    delay(1000); 
    ShowSerialData(); 
} 

void ShowSerialData() 
{ 
    while(client.available()!=0) 
    Serial.write(client.read()); 
} 

void postData() 
{ 
    client.println("AT+HTTPINIT"); 
    delay(1000); 
    ShowSerialData(); 

    client.println("AT+HTTPPARA=\"CID\",1"); 
    delay(1000); 
    ShowSerialData(); 


    client.println("AT+HTTPPARA=\"URL\",\"http://test.server/insert-path"); 
    delay(1000); 
    ShowSerialData(); 

    client.println("AT+HTTPPARA=\"CONTENT\",\"application/json"); 
    delay(1000); 
    ShowSerialData(); 

    client.println("AT+HTTPDATA=99,10000"); 
    delay(1000); 
    ShowSerialData; 

    client.println(testReading); 
    delay(1000); 
    ShowSerialData; 

    client.println("AT+HTTPACTION=1"); 
    delay(10000); 
    while(!client.available()); 
    ShowSerialData(); 
} 

回答

0

您需要添加另一個 '\「' 完成URL和內容類型。

client.println("AT+HTTPPARA=\"URL\",\"http://test.server/insert-path\""); 
client.println("AT+HTTPPARA=\"CONTENT\",\"application/json\""); 

此外,試圖增加client.println("AT+HTTPDATA=99,10000"); 數據輸入延時10s爲20秒。