2017-02-21 15 views
0

Arduinoから手動データをサーバーに投稿しようとしています。私はデータ接続のためにSIM 900を使用しています..データはサーバーに到達していません.. SIMはエラーなしで初期化されていますが、データはサーバーにポストされていません..修正するために私を助けてください..コードは以下..SIM 900を使用してHTTPリクエストを使用してデータを送信する

#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\""); 

また、20代にclient.println("AT+HTTPDATA=99,10000"); データ入力遅延10Sを増加しようとしている。

関連する問題