Hello everybody, I am trying to store the data from the command AT+CGNSINF to get latitude and longitude. However, any data is saved when I used "Number2[cc]=SIM808.read();"
Im using sim808 module with Arduino.
#include <SoftwareSerial.h>
#include <String.h>
#include<stdio.h>
#include<string.h>
SoftwareSerial SIM808(7, 8); //Seleccionamos los pines 7 como Rx y 8 como Tx
#define DEBUG true
bool ini = 0;
String UID_DEVICE = "8eb44eee-a377-4d77-bc0b-43f58696141a";
char NumberCell[] = "";
char Number2[100] = "";
char Longitude[18] = "";
char Latitude[18] = "";
char Speed[18] = "40"; //to-do : Calculo de velocidad
String result;
int cc=0;
int ss=0;
int tt=0;
int ff=0;
void displaySIM(int wait){
delay (wait);
while (Serial.available() > 0){
SIM808.write(Serial.read());
delay(30);
}
delay(30);
while (SIM808.available() > 0){
Serial.write(SIM808.read());
delay(30);
}
}
void setup()
{
pinMode(13, OUTPUT);
SIM808.begin(19200);
Serial.begin(19200);
delay(100);
// Serial.println("El aparato se esta acomodando, prendiendo GPS y Celular y guevonaditas que necesita asi que espere");
SIM808.println("AT");
displaySIM(100);
delay(300);
SIM808.println("AT+CFUN=1");
displaySIM(100);
delay(300);
SIM808.println("AT+CGPSPWR=1");
displaySIM(100);
delay(300);
SIM808.println("AT+CMGF=1");
displaySIM(100);
delay(300);
SIM808.println("AT+CGPSRST=0");
displaySIM(100);
delay(300);
}
void loop() {
digitalWrite(13, HIGH);
delay(300);
SIM808.println("AT+CGNSINF");
displaySIM(100);
delay (700);
cc=0;
ss=0;
tt=0;
ff=0;
delay(300);
Number2[cc]=SIM808.read();
if((ss==3)&&(Number2[cc]!=',')){
Longitude[tt]=Number2[cc];
tt++;
}
if((ss==4)&&(Number2[cc]!=',')){
Latitude[ff]=Number2[cc];
ff++;
}
if(Number2[cc]==','){
ss++;
}
delay(30);
cc++;
Serial.println("Number2: ");
Serial.println(Number2);
Serial.println("Longitude: ");
Serial.println(Longitude);
Serial.println("Latitude: ");
Serial.println(Latitude);
}
.
I attached the info that i get using serial monitor.
Thank you so much.
