Hello I use the following code to send AT command for reading GPSinfo.
#include <SoftwareSerial.h>
#define rxPin 2
#define txPin 3
#define PWR_Pin 6
SoftwareSerial SWserial(rxPin, txPin);
void setup()
{
pinMode(PWR_Pin, OUTPUT);
digitalWrite(PWR_Pin, HIGH);
delay(500);
digitalWrite(PWR_Pin, LOW);
delay(1500);
Serial.begin(115200);
Serial.println("4G Test");
SWserial.begin(9600);
delay(1000);
while (SWserial.available()) {
Serial.write(SWserial.read());
}
void loop(){
SWserial.println("AT+CGPSPWR=1");
SWserial.println("AT+CGNSINF");
delay(10000);
SWserial.println("AT+CGPSPWR=0");
}
When i use this code response is:
+CGNSINF: 1,1,20220902134248.000,51.650288,3.999361
Which is fine if i only want coordinates.
When i use this code:
#include <SoftwareSerial.h>
#define rxPin 2
#define txPin 3
#define PWR_Pin 6
SoftwareSerial SWserial(rxPin, txPin);
void setup()
{
pinMode(PWR_Pin, OUTPUT);
digitalWrite(PWR_Pin, HIGH);
delay(500);
digitalWrite(PWR_Pin, LOW);
delay(1500);
Serial.begin(115200);
Serial.println("4G Test");
SWserial.begin(9600);
delay(1000);
while (SWserial.available()) {
Serial.write(SWserial.read());
}
void loop(){
SWserial.println("AT+CGPSPWR=1");
gsm_send_seria("AT+CGNSINF");
delay(10000);
SWserial.println("AT+CGPSPWR=0");
}
void gsm_send_serial(String command) {
Serial.println("Send ->: " + command);
SWserial.println(command);
long wtimer = millis();
while (wtimer + 3000 > millis()) {
while (SWserial.available()) {
Serial.write(SWserial.read());
}
}
Serial.println();
}
The response is:
+CGNSINF: 1,1,20220902134248.000,51.650288,3.999361,1.500,0.00,189.4,1,,0.7,1.0,0.7,,12,8,,,38,,
i can not find out why this is?
Could someone explain?
Greetings.