Ошибка Sim900 включена по команде AT НА+HTTPINIT

gsm

Я хочу отправлять данные на мой php-сервер с помощью модуля sim900, но я не могу инициализировать службу http на sim900.

код:

#include <SoftwareSerial.h>
SoftwareSerial gprsSerial(8, 9);

void setup()
{
  gprsSerial.begin(9600);
  Serial.begin(9600);

  Serial.println("Con");
  delay(2000);
  Serial.println("Done!...");
  gprsSerial.flush();
  Serial.flush();


  // Посмотрите, готова ли SIM900
  gprsSerial.println("AT");
  delay(1000);
  toSerial();

  // SIM-карта вставлена и разблокирована?
  gprsSerial.println("AT+CPIN?");
  delay(1000);
  toSerial();

  // Зарегистрирована ли SIM-карта?
  gprsSerial.println("AT+CREG?");
  delay(1000);
  toSerial();

  // Подключен ли GPRS?
  gprsSerial.println("AT+CGATT?");
  delay(1000);
  toSerial();

  // Проверьте уровень сигнала
  gprsSerial.println("AT+CSQ ");
  delay(1000);
  toSerial();

  // Установите тип подключения к GPRS
  gprsSerial.println("AT+SAPBR=3,1,\"Contype\",\"GPRS\"");
  delay(2000);
  toSerial();

  // Установите APN
  gprsSerial.println("AT+SAPBR=3,1,\"APN\",\"web\"");
  delay(2000);
  toSerial();

  // Включить GPRS
  gprsSerial.println("AT+SAPBR=1,1");
  delay(10000);
  toSerial();

  // Проверьте правильность подключения и получите свой IP-адрес
  gprsSerial.println("AT+SAPBR=2,1");
  delay(2000);
  toSerial();

}


void loop()
{
   // инициализировать службу http
   gprsSerial.println("AT+HTTPINIT");
   delay(2000); 
   toSerial();

   // установите значение параметра http
   // ToDO : отправить динамическое значение
   gprsSerial.println("AT+HTTPPARA=\"URL\",\"http://www.fohoraayo.000webhostapp.com/?lat=1111&lon=1111\"");
   delay(4000);
   toSerial();

   // установите тип действия http 0 = ПОЛУЧИТЬ, 1 = СООБЩЕНИЕ, 2 = ЗАГОЛОВОК
   gprsSerial.println("AT+HTTPACTION=0");
   delay(6000);
   toSerial();

   // прочитать ответ сервера
   gprsSerial.println("AT+HTTPREAD"); 
   delay(1000);
   toSerial();

   //gprsSerial.println("");
   gprsSerial.println("AT+HTTPTERM");
   toSerial();
   delay(300);

   gprsSerial.println("");
   delay(10000);
}

void toSerial()
{
  while(gprsSerial.available()!=0)
  {
    Serial.write(gprsSerial.read());
  }
}

результат:

Config SIM900...
Done!...
AT

OK
AT+CPIN?

+CPIN: READY

OK
AT+CREG?

+CREG: 0,1

OK
AT+CGATT?

+CGATT: 1

OK
AT+CSQ 

+CSQ: 31,0

OK
AT+SAPBR=3,1,"Contype","GPRS"

OK
AT+SAPBR=3,1,"APN","web"

OK
AT+SAPBR=1,1

ERROR
AT+SAPBR=2,1

+SAPBR: 1,1,"xx.xxx.x.x"

OK
AT+HTTPINIT

ERROR
AT+HTTPPARA="URL","http://www.fohoraayo.000webhostapp.com/?lat=AT+HTTPACTION=0

ERROR
AT+HTTPREAD

ERROR
AT+HTTPTERM

ERROR

, 👍3

Обсуждение

Наконец-то я понял! Мой модуль sim900 не поддерживает HTTP., @Suc333l

Вы можете попробовать использовать команды TCP/IP для установления соединения и просто отправить строку HTTP., @Paul


1 ответ


1

Для меня ваш код работает просто очаровательно. но измените

gprsSerial.begin(9600)

чтобы

gprsSerial.begin(4800)
,