Помогите, пожалуйста, с выводом gps данных на экран

daniil_os
Offline
Зарегистрирован: 14.01.2021

Не могу вывести координаты на экран.

Экран - ssd1306 i2c 128x32

Gps - Radiolink TS100 Mini

При запуске программы ничего не выводится, просто ничего

Вот сам код:

#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
 
#include <TroykaGPS.h>
#include <SoftwareSerial.h>
 
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 32 // OLED display height, in pixels
 
SoftwareSerial mySerial(4, 5); //TX, RX
#define GPS_SERIAL    mySerial
 
GPS gps(GPS_SERIAL);
 
#define MAX_SIZE_MASS 16
// массив для хранения широты в градусах, минутах и секундах
char latitudeBase60[MAX_SIZE_MASS];
// массив для хранения долготы в градусах, минутах и секундах
char longitudeBase60[MAX_SIZE_MASS];
 
 
// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
#define OLED_RESET     4 // Reset pin # (or -1 if sharing Arduino reset pin)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
void setup() {
  Serial.begin(9600);
  // ждём, пока не откроется монитор последовательного порта
  // для того, чтобы отследить все события в программе
  while (!Serial) {
  }
 
  Serial.print("Serial init OK\r\n");
  // открываем Serial-соединение с GPS-модулем на скорости 115200 бод
  GPS_SERIAL.begin(115200);
  Serial.println("GPS init is OK on speed 115200");
  // изменяем скорость обещение GPS-модуля с управляющей платой на 9600 бод
  // используем NMEA-команду «$PMTK251,9600*17\r\n»
  GPS_SERIAL.write("$PMTK251,9600*17\r\n");
  // закрываем Serial-соединение с GPS-модулем
  GPS_SERIAL.end();
  // открываем Serial-соединение с GPS-модулем на скорости 9600 бод
  GPS_SERIAL.begin(9600);
  // печатаем строку
  Serial.print("GPS init is OK on speed 9600");
  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { 
    Serial.println("SSD1306 allocation failed");
    for(;;);
  }
 }
 
void loop() {
  if (gps.available()) {
    // считываем данные и парсим
    gps.readParsing();
    // проверяем состояние GPS-модуля
    switch(gps.getState()) {
      // всё OK
      case GPS_OK:
      
  display.clearDisplay();
  display.setTextSize(1);             
  display.setTextColor(WHITE);        
  display.setCursor(0,0);             
  display.print("GPS is OK:");
  display.display();   
  gps.getLatitudeBase60(latitudeBase60, MAX_SIZE_MASS);
  gps.getLongitudeBase60(longitudeBase60, MAX_SIZE_MASS);
  display.print("Latitude\t");
  display.display();
  display.println(latitudeBase60);  
  display.display();
  display.print("Longitude\t");
  display.display();
  display.println(longitudeBase60);
  display.display();
 
  break;
      // ошибка данных
      case GPS_ERROR_DATA:
      display.clearDisplay();
      display.setTextSize(1);             
      display.setTextColor(WHITE);        
      display.setCursor(0,0);
      display.println("GPS error data");
        break;
      // нет соединение со спутниками
      case GPS_ERROR_SAT:
      display.clearDisplay();
      display.setTextSize(1);             
      display.setTextColor(WHITE);        
      display.setCursor(0,0);
      display.println("GPS no connect to satellites!!!");
        break;
    }
BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018
ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

daniil_os пишет:

Не могу вывести координаты на экран.

Экран - ssd1306 i2c 128x32

Gps - Radiolink TS100 Mini

При запуске программы ничего не выводится, просто ничего

Принято к сведению.

Когда и если у Вас появится какой-то вопрос, не стесняйтесь его задать.