Ошибка 1,603,0 при запросе http post с использованием arduino и sim900a в формате Json

Я хочу отправлять HTTP post-запросы на сервер в формате JSON с помощью модуля SIM900. Но код не публикует данные и имеет ошибку.Может ли кто-нибудь помочь мне решить ошибку 1,603,0 , так как я не могу решить, я уже пытаюсь использовать http вместо https, потому что я читаю из другого канала QnA, что AT+HTTPPARA="URL может быть прочитан только в http .. Но ничего не случилось ошибка все-таки есть. Я знаю, что ошибка связана с DNS, но я не знаю, как ее решить.. Извините, что это был мой первый раз, когда я использовал sim900a

Вот мой код:

#include <SoftwareSerial.h>
#include <ArduinoJson.h>

SoftwareSerial SIM900(10, 11);
StaticJsonBuffer<200> jsonBuffer; 


char t[32];
char deviceID[12] = "TESTING";
char Name[12] = "Irsyad";
char Place[12] = "JB";

 
void setup()
{
  SIM900.begin(9600);       // скорость передачи данных GPRS в бодах
  Serial.begin(9600);
  Serial.println("Initializing..");
  
  DynamicJsonBuffer jsonBuffer;

}
 
void loop()
{
  Serial.println("");
  Serial.println("START");

  Serial.print("Device ID: ");
  Serial.println(deviceID);

  delay(1000);
 
  if (SIM900.available())
  Serial.write(SIM900.read());
 
  SIM900.println("AT");
  delay(3000);
 
  SIM900.println("AT+SAPBR=3,1,\"Contype\",\"GPRS\""); // untuk cek  GPRS 
  delay(6000);
  ShowSerialData();
 
  SIM900.println("AT+SAPBR=3,1,\"APN\",\"\"");//Мобильный телефон APN (cek dekat phone)
  delay(6000);
  ShowSerialData();
 
  SIM900.println("AT+SAPBR=1,1"); 
  delay(6000);
  ShowSerialData();
 
  SIM900.println("AT+SAPBR=2,1");
  delay(6000);
  ShowSerialData();
 
  SIM900.println("AT+HTTPINIT"); // параметры HTTP-сессии untuk
  delay(6000);
  ShowSerialData();
 
  SIM900.println("AT+HTTPPARA=\"CID\",1"); //parameters untuk HTTP session
  delay(6000);
  ShowSerialData();
 
  StaticJsonBuffer<200> jsonBuffer; 
  JsonObject& object = jsonBuffer.createObject();  
  
  object.set("deviceID",deviceID);
  object.set("Name",Name);
  object.set("Place",Place);

  object.printTo(Serial);
  Serial.println(" ");  
  String sendtoserver;
  object.prettyPrintTo(sendtoserver);
  delay(4000);


  SIM900.println("AT+HTTPPARA=\"URL\",\"http://gas-api.smartcp.app/api/ttn/uplink\""); //Server address // tukar pakai lain https://
  delay(4000);
  ShowSerialData();
 
  SIM900.println("AT+HTTPPARA=\"CONTENT\",\"application/json\""); //json format
  delay(4000);
  ShowSerialData();


  
  SIM900.println("AT+HTTPDATA=" + String(sendtoserver.length()) + ",100000"); // size bytes untuk hantar data dalam masa 10 seconds
  Serial.println(sendtoserver);
  delay(6000);
  ShowSerialData();
 
  SIM900.println(sendtoserver);
  delay(6000);
  ShowSerialData;
 
  SIM900.println("AT+HTTPACTION=1"); // Post the data (1 means post)
  delay(6000);
  ShowSerialData();
 
  SIM900.println("AT+HTTPREAD"); 
  delay(6000);
  ShowSerialData();
 
  SIM900.println("AT+HTTPTERM");
  delay(10000);
  ShowSerialData;
}
 
void ShowSerialData()
{
  while (SIM900.available() != 0)
    Serial.write(SIM900.read());
  delay(1000);
 
}

, 👍1

Обсуждение

пожалуйста, не размещайте изображение текста ... удалите картинку и добавьте фактический текст, @jsotola

Просто глядя на код, я предполагаю, что все эти 6-секундные задержки вызывают где-то ошибку тайм-аута. PS +SAPBR: 1,1,"10.143.42.168" Я не знаком с AT-кодами, но "10.143.42.168" выглядит как IP-адрес, и этот IP-адрес находится в частном диапазоне. Может быть, это просто NAT операторского класса и не связано с вашей проблемой., @Gerben

Я надеюсь, что вы нашли решение, в противном случае я попробовал это с SIM800l, и оно работает нормально. Может быть, вы могли бы попробовать этот модуль. Я воспользовался помощью вашего кода в устранении синтаксической ошибки в моем коде, так что спасибо вам за это., @Noor

это не работает для меня. Получение той же ошибки., @b.john