Member 14046963 Ответов: 1

Я не получаю местоположение GPS


#include <DFRobot_sim808.h>
#include <SoftwareSerial.h>

//#define PIN_TX    1
//#define PIN_RX    0
//SoftwareSerial mySerial(PIN_TX,PIN_RX);
//DFRobot_SIM808 sim808(&mySerial);//Connect RX,TX,PWR,

//make sure that the baud rate of SIM900 is 9600!
//you can use the AT Command(AT+IPR=9600) to set it through SerialDebug

DFRobot_SIM808 sim808(&Serial);

char buffer[512];
int i = 0;

void setup(){
  //mySerial.begin(9600);
  Serial.begin(9600);

  //******** Initialize sim808 module *************
  while(!sim808.init()) {
      delay(1000);
      Serial.print("Sim808 init error\r\n");
  }
  delay(3000);

  //*********** Attempt DHCP *******************
  while(!sim808.join(F("mobitel3g"))) {
      Serial.println("Sim808 join network error");
      delay(2000);
  }

  //************ Successful DHCP ****************
  Serial.print("IP Address is ");
  Serial.println(sim808.getIPAddress());


  //************* Turn on the GPS power************
    while(!sim808.attachGPS()) {
      delay(1000);
      Serial.print("Open the GPS power failure\r\n");
  }
  
  delay(3000);  
  Serial.println("Open the GPS power success");

for(int i = 0; i<=40;i++)
{
  for(int y = 0;y<=i;y++)
  {
  Serial.print(".");
  delay(60);
  }
 Serial.println("");
}
}

void loop(){
  tcp();      
  delay(2000);

  //Calls the function every 2 seconds
}


void tcp()
{
    // Update the GPS data
    float lati, longi;
    if (sim808.getGPS()) {
      
      Serial.print(sim808.GPSdata.year);
    Serial.print("/");
    Serial.print(sim808.GPSdata.month);
    Serial.print("/");
    Serial.print(sim808.GPSdata.day);
    Serial.print(" ");
    Serial.print(sim808.GPSdata.hour);
    Serial.print(":");
    Serial.print(sim808.GPSdata.minute);
    Serial.print(":");
    Serial.print(sim808.GPSdata.second);
    Serial.print(":");
    Serial.println(sim808.GPSdata.centisecond);
    
        lati = sim808.GPSdata.lat,6;
        longi = sim808.GPSdata.lon,6;

        //print the variables 
        Serial.print("LAT =");
        Serial.println(lati);
        Serial.print("LON =");
        Serial.println(longi);
        sim808.detachGPS();
    }
    else {
        // No gps, abort
        Serial.println("No GPS");
        return;
    }
    //*********** Establish a TCP connection ************

    if (!sim808.connect(TCP,"http://syntiq.lk", 80)) {
       Serial.println("Connect error");
       return;
    }
    else {
       Serial.println("Connect mbed.org success");
    }

   //*********** Send a GET request *****************

    char http_cmd[100];
    sprintf(http_cmd, "GET /GPS/Addtoserver.php?data2=%f&data1=%f HTTP/1.0\r\n\r\n\0", lati, longi);
    sim808.send(http_cmd, strlen(http_cmd));

    /*
    int ret = sim808.recv(buffer, sizeof(buffer) - 1);
    if (ret <= 0){
        Serial.println("error receiving");
    }
    else {
        buffer[ret] = '\0';
        Serial.print(buffer);
    }
    */

    //************* Close TCP or UDP connections **********
    sim808.close();

    //*** Disconnect wireless connection, Close Moving Scene *******
    sim808.disconnect();
}


Что я уже пробовал:

Выше приведен мой код, который извлекает координаты GPS и вставляет их в базу данных mysql. Я уверен, что GPS-модуль и Arduino работают, потому что я пробовал как TCP, так и GPS - коды отдельно. Так может ли кто-нибудь указать мне правильное направление, в котором я ошибся? Ваша помощь будет очень признательна. Спасибо

Richard MacCutchan

Сначала вам нужно объяснить, в чем проблема.

Member 14046963

Проблема в том, что я не получаю никаких данных GPS, когда вставляю TCP-соединение в код GPS. Сам по себе GPS-код прекрасно работает.

Richard MacCutchan

Затем вам нужно отладить этот код и собрать дополнительную информацию. Мы не можем сказать, что происходит.

1 Ответов

Рейтинг:
0

CPallini

Код показывает только то, что Arduino код, а не серверный.
Предполагая (как вы утверждаете), что оба TCP и GPS Arduino код работает хорошо, тогда у вас должна быть проблема на самой стороне сервера.
В любом случае, чтобы отладить серверный код, я бы попытался загрузить некоторые хорошо известные простые данные из хорошо известного простого HTTP клиент.


Member 14046963

Эй @CPallini я также уверен, что php-файл работает и нет никакой ошибки на стороне сервера. Моя единственная проблема заключается в том, что, хотя я запускал коды отдельно, в этом случае я использую функции sim808 в другом порядке. Я не уверен, что это проблема.