Çözüldü1.51K görüntülenmeLoragps Lora
0

Selamlar, Adafruit Ultimate GPS kullanarak GPS verisini LORA ile aktarmaya çalışıyorum. Tahminimce iki cihazın UART bağlantıları çakışıyor. Kodda sırasıyla Lora ile alakalı yerleri çalıştırdığımda void setup kısmında yer alan e32ttl.begin() ; satırını yazdığım anda GPS çalışmayı bırakıyor. Hatta hiç UART bağlantısı yokmuş gibi davranıyor. Kodları aşağıda paylaşıyorum.

Kod tamamıyla veri göndermek için hazır halde değildir! sadece e32tll.begin(); çalıştığı anda Adafruit UART bağlantısı yokmuş gibi davranıyor.

//***************GPS******************************<br />#include <Adafruit_GPS.h><br />#include <SoftwareSerial.h><br />SoftwareSerial mySerial(7, 8);<br />Adafruit_GPS GPS(&mySerial);<br />#define GPSECHO  true<br />//***************LORA*****************************<br />#include "LoRa_E32.h"<br />SoftwareSerial mylora(2, 3);<br />LoRa_E32 e32ttl(&mylora);<br />struct Signal {<br />  char type[15] = "Fixaj.com";<br />  byte temp[4];<br />} data;<br />//************************************************<br />void setup()<br />{<br />  //***************GPS******************************<br />  Serial.begin(115200);<br />  delay(5000);<br />  Serial.println("Adafruit GPS library basic parsing test!");<br />  GPS.begin(9600);<br />  GPS.sendCommand(PMTK_SET_NMEA_OUTPUT_RMCGGA);<br />  GPS.sendCommand(PMTK_SET_NMEA_UPDATE_1HZ);   <br />  GPS.sendCommand(PGCMD_ANTENNA);<br />  delay(1000);<br />  mySerial.println(PMTK_Q_RELEASE);<br />     //***************LORA******************************<br /> e32ttl.begin();<br />   }<br /> uint32_t timer = millis();<br />void loop()                    <br />{<br /> //***************GPS******************************<br />  char c = GPS.read();<br />  if ((c) && (GPSECHO))<br />    Serial.write(c);<br />  if (GPS.newNMEAreceived()) {<br />    if (!GPS.parse(GPS.lastNMEA()))   <br />      return; <br />  }<br />   if (millis() - timer > 2000) {<br />    timer = millis(); // reset the timer<br />     Serial.print("\nTime: ");<br />    if (GPS.hour < 10) { Serial.print('0'); }<br />    Serial.print(GPS.hour, DEC); Serial.print(':');<br />    if (GPS.minute < 10) { Serial.print('0'); }<br />    Serial.print(GPS.minute, DEC); Serial.print(':');<br />    if (GPS.seconds < 10) { Serial.print('0'); }<br />    Serial.print(GPS.seconds, DEC); Serial.print('.');<br />    if (GPS.milliseconds < 10) {<br />      Serial.print("00");<br />    } else if (GPS.milliseconds > 9 && GPS.milliseconds < 100) {<br />      Serial.print("0");<br />    }<br />    Serial.println(GPS.milliseconds);<br />    Serial.print("Date: ");<br />    Serial.print(GPS.day, DEC); Serial.print('/');<br />    Serial.print(GPS.month, DEC); Serial.print("/20");<br />    Serial.println(GPS.year, DEC);<br />    Serial.print("Fix: "); Serial.print((int)GPS.fix);<br />    Serial.print(" quality: "); Serial.println((int)GPS.fixquality);<br />    if (GPS.fix) {<br />      Serial.print("Location: ");<br />      Serial.print(GPS.latitude, 4); Serial.print(GPS.lat);<br />      Serial.print(", ");<br />      Serial.print(GPS.longitude, 4); Serial.println(GPS.lon);<br />       Serial.print("Speed (knots): "); Serial.println(GPS.speed);<br />      Serial.print("Angle: "); Serial.println(GPS.angle);<br />      Serial.print("Altitude: "); Serial.println(GPS.altitude);<br />      Serial.print("Satellites: "); Serial.println((int)GPS.satellites);<br />    }<br />  }<br />     //***************LORA******************************<br />//     ResponseStatus rs = e32ttl.sendFixedMessage(0, 44, 23, &data, sizeof(Signal));<br />//  Serial.println(rs.getResponseDescription());<br />// <br />//  delay(2000);<br />// <br />//  while (e32ttl.available()  > 1) {<br />//    ResponseStructContainer rsc = e32ttl.receiveMessage(sizeof(Signal));<br />//    struct Signal data = *(Signal*) rsc.data;<br />//    Serial.print("Yer: ");<br />//    Serial.println(data.type);<br />//    Serial.print("Ortam Sıcaklığı: ");<br />//    Serial.println(*(float*)(data.temp));<br />//    rsc.close();<br />//  }<br />     }

//adres 63 e yollar bu godların yüklendiği kartın adresi 44 olmalı kanalı ise 23!!!!!!!!!!!!!<br />#include "LoRa_E32.h"<br />#include <SoftwareSerial.h><br />SoftwareSerial mySerial(2, 3); // Arduino RX <-- e32 TX, Arduino TX --> e32 RX<br />LoRa_E32 e32ttl(&mySerial);<br />  struct Signal {<br />  char type[15];<br />  byte temp[4];<br />} data;<br />  void setup() {<br />  Serial.begin(9600);<br />  e32ttl.begin();<br />  delay(500);<br />}<br />  void loop() {<br />  while (e32ttl.available()  > 1) {<br />      // Gelen mesaj okunuyor<br />    ResponseStructContainer rsc = e32ttl.receiveMessage(sizeof(Signal));<br />    struct Signal data = *(Signal*) rsc.data;<br />    Serial.print("Gelen Messaj: ");<br />    Serial.println(data.type);<br />    rsc.close();<br />      //Gönderilecek paket veri hazırlanıyor<br />    struct Signal  {<br />      char type[15] = "Bebek Odası";<br />      byte temp[4];<br />    } data2;<br />      *(float*)(data2.temp) = 19.2;<br />        ResponseStatus rs = e32ttl.sendFixedMessage(0, 63, 23, &data2, sizeof(Signal));<br />    Serial.println(rs.getResponseDescription());<br />    }<br />  }

Soru yeni cevaplara kapalıdır.
Mehmet En iyi cevap olarak seçildi Ağustos 1, 2022
0

kodu düzgün görüntüleyemiyorum. yüksek ihtimal listen komudu kullanmamışsınızdır. sitemizdeki yazılara ve örnek sorulara bakmanızı tavsiye ederim.

Lora Modülü ile GPS kullanımı. İrtifa bilgilerinin okunup gönderilmesi

GPS ve LoRa ile 3 boyutlu konum yollama

Mehmet En iyi cevap olarak seçildi Ağustos 1, 2022