I'm trying to send a JSON POST in SIM900 shield with AT commands. After I call the AT+HTTPACTION=1 command, it returns a 601 error: +HTTPACTION:1,601,0.
I saw here that the error was 601 Network Error. Could someone help me? Following is my code.
void connectInternet() {
if(digitalRead(9 != LOW)) {
Serial.print("\r\n");
Serial.print("------------------------------------------------- \r\n");
Serial.print(" CONNECT ON INTERNET \r\n");
Serial.print("------------------------------------------------- \r\n");
Serial.print("\r\n");
Serial.println("Connecting...\r");
cmdAT("AT");
cmdAT("AT+CIPSHUT");
cmdAT("AT+CIPMUX=1");
cmdAT("AT+CSTT=\"zap.vivo.com.br\",\"vivo\",\"vivo\"");
cmdAT("AT+CIICR");
cmdAT("AT+CDNSCFG=\"8.8.8.8\",\"8.8.4.4\"");
Serial.print("IP Device: ");
cmdAT("AT+CIFSR");
}
}
void send2Api() {
Serial.print("\r\n");
Serial.print("------------------------------------------------- \r\n");
Serial.print(" SEND TO API\r\n");
Serial.print("------------------------------------------------- \r\n");
Serial.print("\r\n");
cmdAT("AT+CSQ");
cmdAT("AT+CGATT?");
cmdAT("AT+SAPBR=2,1");
// Query if the connection is setup properly, if we get back a IP address then we can proceed
cmdAT("AT+HTTPPARA=\"CID\",1");
// Set the HTTP session.
cmdAT("AT+HTTPPARA=\"URL\",\"http://api.com.br/endpoint\"");
// set endPoint
cmdAT("AT+HTTPPARA=\"CONTENT\",\"application/json\"");
// set content json
cmdAT("AT+HTTPDATA=100,5000");
// POST session start
// JSON payload
cmdAT("{\"timestamp\":\"2016-03-08T19:36:45.000Z\",\"latitude\":\"-24.9458581\",\"longitude\":\"-53.4968357\"}");
delay(100);
cmdAT("AT+HTTPACTION=1");
// POST session start
cmdAT("AT+HTTPREAD");
// Read the data of HTTP server
cmdAT("AT+HTTPTERM");
// terminate http
ShowSerialData();
connectInternet()
. Should I define the PDP insend2Api()
function ? Thanks – Robson Fagundes Mar 14 '16 at 12:56