• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Получение GPS данных на D1 mini

sstyle

New member
Добрый день.

Я совсем новичок. Купил D1 mini и GPS к нему. Подключил к . Пытаюсь написать какой нибудь код, чтобы получить число спутников, скорость и тд. Добавил библиотеку TinyGPSPlus и такой код

#include <TinyGPSPlus.h>
TinyGPSPlus gps;

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

void loop() {
// put your main code here, to run repeatedly:
while (Serial.available() > 0) {
Serial.println(Serial.read());
gps.encode(Serial.read());
Serial.print("LAT="); Serial.println(gps.location.lat(), 6);
Serial.print("LONG="); Serial.println(gps.location.lng(), 6);
Serial.print("ALT="); Serial.println(gps.altitude.meters());
Serial.print("SPD="); Serial.println(gps.speed.kmph());
Serial.print("SAT="); Serial.println(gps.satellites.value());
Serial.flush();
delay(2000);
Serial.swap(); // переключение на 0,1
}
delay(50);
}

Но не работает, выводит такое:

53
LAT=0.000000
LONG=0.000000
ALT=0.00
SPD=0.00
SAT=0
77
LAT=0.000000
LONG=0.000000
ALT=0.00
SPD=0.00
SAT=0

Что я делаю не так? Спасибо
 

sstyle

New member
Разобрался. На 9600 работает, но как поднять скорость до 115200?

void loop() {
while (Serial.available() > 0) {
printInt(gps.satellites.value(), gps.satellites.isValid(), 5);
printFloat(gps.location.lat(), gps.location.isValid(), 11, 6);
printFloat(gps.location.lng(), gps.location.isValid(), 12, 6);
printFloat(gps.altitude.meters(), gps.altitude.isValid(), 7, 2);
printFloat(gps.speed.kmph(), gps.speed.isValid(), 6, 2);
Serial.println(F(" "));
}
}
 

sstyle

New member
Модуль Beitian Bn-280, но гугл не выдаёт ничего интересного, в той документации что есть - ни слова

Пробовал подключить через USB-UART адаптер к u-connect и ничего толкового не вышло.

Пробовал подключить GPS к D7/8 и SoftwareSerial вместо hardware (tx/rx) использовать и тоже мимо.
 

sstyle

New member
Коллеги, кто то готов помочь за деньги? У меня уже кончаются моральные силы..
 

sstyle

New member
И так и дайте ей команду перейти на эту скорость.
Так пробовал (не помогло):
Serial.print( F("$PMTK251,115200*1F\r\n") );
Serial.flush(); // wait for the command to go out
delay( 100 ); // wait for the GPS device to change speeds
Serial.end(); // empty the input buffer, too
Serial.begin( 115200 ); // use the new baud rate
gps.print( F("$PMTK220,100*1F\r\n") );
 

nikolz

Well-known member
Модуль Beitian Bn-280, но гугл не выдаёт ничего интересного, в той документации что есть - ни слова

Пробовал подключить через USB-UART адаптер к u-connect и ничего толкового не вышло.

Пробовал подключить GPS к D7/8 и SoftwareSerial вместо hardware (tx/rx) использовать и тоже мимо.
для начала - вот спецификация из которой видно что скорость можно поднять до 921 000.
1635087651999.png
 

nikolz

Well-known member
данный модуль работает по протоколу NMEA 0183.
Чтобы изменить скорость UART найдите этот протокол или библиотеку
и передайте в модуль на скорости 9600 команду с новой скоростью
после этого измените скорость UART со стороны компьютера
 

sstyle

New member
данный модуль работает по протоколу NMEA 0183.
Чтобы изменить скорость UART найдите этот протокол или библиотеку
и передайте в модуль на скорости 9600 команду с новой скоростью
после этого измените скорость UART со стороны компьютера
Спасибо! А в итоге я правильно подключаю к TX/RX, а не к D7/D8?
 
Сверху Снизу