GPS с Лорой (E32 433T30D)

Я хочу получать данные с GPS Neo 6m на Arduino и отправлять их через LoRa (E32 433T30D).

Код ПРИЕМА GPS И ОТПРАВКИ LORA

#include <SoftwareSerial.h>
#include <TinyGPS++.h>


static const int RXPin = 4, TXPin = 5;
static const int loraRXPin = 2, loraTXPin = 3;
static const uint32_t GPSBaud = 9600;
static const uint32_t loraBaud = 9600;

// Объект TinyGPS++
TinyGPSPlus gps;

// Последовательное соединение с GPS-устройством
SoftwareSerial ss(RXPin, TXPin);
SoftwareSerial lora(loraRXPin, loraTXPin);


void setup(){
  Serial.begin(9600);
  ss.begin(GPSBaud);
  ss.println("KATHE");
  lora.begin(loraBaud);
  lora.println("ASHOK"); 
}

void loop() {
  // Этот скетч отображает информацию каждый раз, когда новое предложение закодировано правильно.
  while (ss.available() > 0){
    gps.encode(ss.read());
    if (gps.location.isUpdated()){
      ss.listen();
      Serial.print("Latitude= "); 
      Serial.print(gps.location.lat(), 6); 
      Serial.print(" Longitude= "); 
      Serial.println(gps.location.lng(), 6);
      lora.listen();
      lora.print("Latitude= "); 
      lora.print(gps.location.lat(), 6); 
      lora.print(" Longitude= "); 
      lora.println(gps.location.lng(), 6);
    }
  }

  }

LORA RECEIVE CODE is 

#include <SoftwareSerial.h>

SoftwareSerial mySerial(2,3); // прием, передача

void setup() {
  // Открытие последовательной связи и ожидание открытия порта:
  Serial.begin(9600);
  while (!Serial) {
    ; // ждем подключения последовательного порта. Требуется только для собственного порта USB
  }


  Serial.println("Goodnight moon!");

  // устанавливаем скорость передачи данных для порта SoftwareSerial
  mySerial.begin(9600);
  mySerial.println("Hello, world?");
} 

void loop() { // выполняем снова и снова
  if (mySerial.available()) {
    Serial.write(mySerial.read());
    //Serial.println(" ");
  }
  if (Serial.available()) {
    mySerial.write(Serial.read());

  }
}

Здесь я не передаю данные GPS на приемник LoRa. Пожалуйста, помогите мне решить эту проблему.

, 👍-1

Обсуждение

установите ss.listen() в setup(). ты не читаешь «Лору», так зачем слушать? данные GPS печатаются на последовательном мониторе?, @Juraj

Спасибо за ваш ответ. Нет, я не передаю данные GPS на последовательный монитор или через Лору. Но отдельные коды, если я запускаю, получают данные. Только всякий раз, когда я объединяю оба кода, я не получаю данные, @KATHE ASHOK KUMAR

вы внесли изменения, которые я рекомендовал? (отдельные коды не имеют двух экземпляров SoftwareSerial), @Juraj

Да я получил его. При отправке кода нет необходимости создавать еще один последовательный порт, мы можем напрямую использовать LoRa Rx и Tx для Arduino Uno 0 и 1. Если я использую этот метод, я получаю данные в приемник. Большое спасибо за ваш ответ., @KATHE ASHOK KUMAR


1 ответ


Лучший ответ:

1

Lora мы можем подключиться напрямую к последовательным портам Arduino (0,1) — Lora Tx подключена к Rx Arduino, а Lora Rx подключена к Tx Arduino. (это для получения данных от Arduino и эти контакты необходимо подключить после загрузки кода). (2,3) другого Arduino для получения данных в Arduino от Лоры. Для отправки нет кода типа Bluetooth. А для получения вам поможет следующий код..

include SoftwareSerial mySerial(2,3); // RX, TX void setup() { // Открытие последовательного соединения и ожидание открытия порта: Serial.begin(9600); пока (!Serial) { ; // ждем подключения последовательного порта. Требуется для встроенного j для порта SoftwareSerial mySerial.begin(9600); mySerial.println("Привет, мир?"); } void Loop() { // выполняем снова и снова if (mySerial.available()) { Serial.write(mySerial.read()); //Serial.println(" "); } if (Serial.available()) { mySerial.write(Serial.read()); }

,