Произошла проблема при передаче GPS данных от модуля Ublox NEO-6M в приложение Blynk с помощью модема SIM800L V2.0.
Подключение:
SIM800L V2.0 - RX - 2, TX - 3
Ublox NEO-6M - RX - 11, TX - 10
OLED 128х32 - I2C
Питание отдельное - 2 Ампера, на GPS и SIM800L припаял еще конденсаторы, лишними не будут.
(RX, TX мог перепутать местами тут, но все работает, в этом никаких проблем нет)
И так - если GPS модуль находит спутники - он должен вывести на OLED экран кол-во спутников.
Если закомментировать указанные строки - все так и работает, но как только загружаю прошивку с подключением Blynk - на экранчике остается висеть надпись "Загрузка...", которая выводится в Setup.
Изначально был написан другой код, который сразу слал данные GPS (долгота, широта, кол-во спутников) в Blynk, но он не работал, начал разбираться и дошел до этого этапа, что GPS не одупляется при подключенном Blynk.
Sim карта рабочая, другие данные отправляются без проблем (произвольный текст или какие-то строки в терминал).
Аппаратно подключение никак не изменяю, меняется только прошивка.
Пытался перепаивать GPS, изначально он стоял на 6,7 пинах, думал может там какая проблема - нет, сейчас на 10,11 и все так же.
Как можно решить данную проблему?
Ublox NEO-6M так же видит спутники, никаких проблем с этим нет (индикация на самом модуле об этом говорит, ну и если опять же закомментировать строки все выводится на экран).
Подключение:
SIM800L V2.0 - RX - 2, TX - 3
Ublox NEO-6M - RX - 11, TX - 10
OLED 128х32 - I2C
Питание отдельное - 2 Ампера, на GPS и SIM800L припаял еще конденсаторы, лишними не будут.
(RX, TX мог перепутать местами тут, но все работает, в этом никаких проблем нет)
И так - если GPS модуль находит спутники - он должен вывести на OLED экран кол-во спутников.
Если закомментировать указанные строки - все так и работает, но как только загружаю прошивку с подключением Blynk - на экранчике остается висеть надпись "Загрузка...", которая выводится в Setup.
Изначально был написан другой код, который сразу слал данные GPS (долгота, широта, кол-во спутников) в Blynk, но он не работал, начал разбираться и дошел до этого этапа, что GPS не одупляется при подключенном Blynk.
Sim карта рабочая, другие данные отправляются без проблем (произвольный текст или какие-то строки в терминал).
Аппаратно подключение никак не изменяю, меняется только прошивка.
Пытался перепаивать GPS, изначально он стоял на 6,7 пинах, думал может там какая проблема - нет, сейчас на 10,11 и все так же.
Как можно решить данную проблему?
C++:
#define TINY_GSM_MODEM_SIM800
#include <TinyGPS++.h>
#include <SoftwareSerial.h>
#include <GyverOLED.h>
#include <TinyGsmClient.h>
#include <BlynkSimpleTinyGSM.h>
GyverOLED<SSD1306_128x32, OLED_NO_BUFFER> oled;
// GPS
TinyGPSPlus gps;
SoftwareSerial ss(11, 10);
// Время ожидания спутников
int sleepTime = 5000;
char auth[] = "";
char apn[] = "internet.beeline.ru";
char user[] = "beeline";
char pass[] = "beeline";
SoftwareSerial gsmSerial(2, 3); // RX, TX
TinyGsm modem(gsmSerial);
// Виджеты
WidgetMap myMap(V0);
WidgetTerminal terminal(V5);
void setup() {
ss.begin(9600);
oled.init();
oled.clear();
oled.setScale(1);
oled.println("Загрузка...");
Wire.setClock(400000L);
gsmSerial.begin(9600);
delay(5000);
modem.init();
Blynk.begin(auth, modem, apn, user, pass);
}
void loop() {
Blynk.run();
for (unsigned long start = millis(); millis() - start < sleepTime;) {
while (ss.available()) {
char c = ss.read();
if (gps.encode(c)) {
if (gps.location.isValid()) {
oled.clear();
oled.home();
oled.println(gps.satellites.value());
oled.update();
sleepTime = 3000;
} else {
sleepTime = 10000;
}
}
}
}
}