我有一个连接到Arduino MEGA的SIM900模块,一切正常,除了当我尝试发出发布请求时,在执行AT + HTTPACTION = 1命令后,它一直显示ERROR,而SIM900手册指出ERROR消息是相关的到“移动设备功能”。它运行良好,但现在不断显示出令人讨厌的错误。
这是我的代码:(我输入了一个虚假的服务器地址,但我的工作正常,我已经用邮递员对其进行了测试)
void gprsSetup()
{
Serial.println(F("Initializing GPRS module"));
delay(1000);
Serial1.flush();
Serial.flush();
Serial1.println("AT+CGATT?");
delay(1000);
toSerial();
delay(1000);
Serial1.println("AT+CBAND?");
delay(1000);
toSerial();
delay(1000);
Serial1.println("AT+CBAND=\"ALL_BAND\"\r\n");
delay(1000);
toSerial();
delay(1000);
Serial1.print("AT+CGDCONT=1,\"IP\",\"internet.movistar.ve\",\"\",0,0\r\n");
delay(1000);
toSerial();
delay(1000);
Serial1.println("AT+CGDCONT?");
delay(1000);
toSerial();
delay(1000);
Serial1.println("AT+IPR?\r\n");
delay(1000);
toSerial();
delay(1000);
Serial1.println("AT+SAPBR=3,1,\"CONTYPE\",\"GPRS\"\r\n");
delay(1000);
toSerial();
delay(1000);
Serial1.println("AT+SAPBR=3,1,\"APN\",\"internet.movistar.ve\"\r\n");
delay(1000);
toSerial();
Serial1.println("AT+SAPBR=1,1\r\n");
delay(1000);
toSerial();
Serial1.println("AT+SAPBR=2,1\r\n");
delay(1000);
toSerial();
Serial1.println("AT+CSQ\r\n");
delay(1000);
toSerial();
delay(1000);
Serial1.println("AT+SAPBR=2,1\r\n");
delay(1000);
toSerial();
Serial1.println("AT+HTTPINIT");
delay(1000);
toSerial();
Serial1.println("AT+HTTPPARA=\"CID\",1");
delay(1000);
toSerial();
jsonWriting();
delay(3000);
Serial1.println("AT+HTTPPARA=\"URL\",\"http://myserverthatworks\""); // not my real server address
delay(1000);
toSerial();
Serial1.println("AT+HTTPPARA=\"CONTENT\",\"application/json\"");
delay(1000);
toSerial();
Serial1.println("AT+HTTPDATA=" + String(sendtoserver.length()) + ",10000"); // Server
Serial.println(sendtoserver);
delay(3000);
toSerial();
Serial1.println(sendtoserver);
delay(1000);
toSerial();
Serial1.println("AT+HTTPACTION=1");
delay(3000);
toSerial();
Serial1.println("AT+HTTPREAD");
delay(2000);
toSerial();
delay(2000);
Serial1.println("AT+HTTPTERM");
delay(3000);
toSerial();
}
这是输出
使用此命令