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. Пожалуйста, помогите мне решить эту проблему.
@KATHE ASHOK KUMAR, 👍-1
Обсуждение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()); }
,
@KATHE ASHOK KUMAR
Смотрите также:
- Как использовать SPI на Arduino?
- Как решить проблему «avrdude: stk500_recv(): programmer is not responding»?
- Как создать несколько запущенных потоков?
- Как подключиться к Arduino с помощью WiFi?
- avrdude ser_open() can't set com-state
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Я закирпичил свой Arduino Uno? Проблемы с загрузкой скетчей на плату
установите ss.listen() в setup(). ты не читаешь «Лору», так зачем слушать? данные GPS печатаются на последовательном мониторе?, @Juraj
Спасибо за ваш ответ. Нет, я не передаю данные GPS на последовательный монитор или через Лору. Но отдельные коды, если я запускаю, получают данные. Только всякий раз, когда я объединяю оба кода, я не получаю данные, @KATHE ASHOK KUMAR
вы внесли изменения, которые я рекомендовал? (отдельные коды не имеют двух экземпляров SoftwareSerial), @Juraj
Да я получил его. При отправке кода нет необходимости создавать еще один последовательный порт, мы можем напрямую использовать LoRa Rx и Tx для Arduino Uno 0 и 1. Если я использую этот метод, я получаю данные в приемник. Большое спасибо за ваш ответ., @KATHE ASHOK KUMAR