Çözüldü1.24K görüntülenmeLoraarduino uno esp32 gps lorae32
0

sipariş no:1777425

Merhabalar

Sizden geçtiğimiz haftalarda lora e32 433t30d almıştık ve bunu ublox m6 gps modülü ile kullanmaya çalışıyoruz.bunun için çektiğiniz teknofest rehber videosunda olduğu gibi esp32 ve arduino kullanıyoruz fakat iletişimi sağlayamadık.esp32 tarafında gps çalışıyor ve ekrana gerekli bilgileri yazdırıyor ama arduino tarafına herhangi bir bilgi ulaşmıyor.Teknofest videonuzdaki kodu direkt olarak bulamadım o yüzden aynı kodu kendim aşağıdaki şekilde yazdım,sorunumuzu çözmemize yardımcı olursanız çok sevinirim.Parametre ayarları aşağıda.

(Modüller iki arduino ile arduino üzerinden parametre ayarı yapmayı sağlayan kodunuzla birlikte çalışıyor ve test amaçlı koda yazdığınız teknofest,1453,koordinat gibi bilgileri karşı tarafa yollayabiliyor.)

(Temassızlık yok,tek tek kontrol ettim multimetre ile)

teşekkürler.

.

esp32 kodu

#include <TinyGPSPlus.h><br />#define E32_TTL_1W // E32 30d modülleri için bunu aktif et<br />#include "LoRa_E32.h" <br />#include <HardwareSerial.h><br />#define M0 23// 32 //3in1 PCB mizde pin<br />#define M1 22//33//3inl PCB mizde pin 6<br />#define RX 25 //3in1 PCB mizde pin RX<br />#define TX 35 //31n1 PCB mizde pin TX<br />   HardwareSerial fixajSerial(1);<br />LoRa_E32 e32(TX,RX,&fixajSerial,UART_BPS_RATE_9600);<br /> static const uint32_t GPSBaud = 9600;<br />unsigned long kanalBekleme_sure = 0;<br />int kanalBekleme_bekleme = 5000;<br />unsigned long kanalBekleme_sure2 = 0;<br />int kanalBekleme_bekleme2 = 2000;<br /> TinyGPSPlus gps;<br /> struct Signal {<br /> char type [15] = "Fixaj.com";<br />byte lat [10];<br />byte lng [10];<br />byte irtifa [10];<br /> } konum;<br /> void setup () {<br />  pinMode (M0,OUTPUT) ;<br />pinMode (M1,OUTPUT) ;<br />digitalWrite (M0,LOW) ;<br />digitalWrite (M1,0);<br />   Serial.begin (115200) ;<br />Serial2.begin (GPSBaud) ;<br />e32.begin ();<br />delay (500);<br />  Serial.println(F("Fixaj.comba basliyoruz..."));<br /> }<br /> void loop (){<br />   while (Serial2.available() > 0) {<br />    kanalBekleme_sure = millis ();<br />    if (gps.encode (Serial2.read ()))<br />      displayInfo () ;<br />}<br />   if (millis () > kanalBekleme_sure + kanalBekleme_bekleme){<br />    Serial.println(F ("No GPS detected: check wiring."));<br />    while (true);<br />  }<br /> }<br /> void displayInfo ()<br /> {<br />    Serial.print (F ("Location: "));<br />  if (gps.location.isValid ()){<br />     Serial.print (gps.location.lat (), 6) ;<br />    Serial.print (F (", ")) ;<br />    Serial.print (gps.location.lng() , 6) ;<br />    Serial.print (F (", ")) ; <br />    Serial.print (F("irtifa: "));<br />    Serial.print (gps.altitude.meters()) ;<br />     *(float*) (konum.lat) =  gps.location.lat () ;<br />    *(float*) (konum.lng) =  gps.location.lng () ;<br />    *(float*) (konum.irtifa) = gps.altitude.meters () ;<br />     if (millis () > kanalBekleme_sure2 + kanalBekleme_bekleme2){<br />      kanalBekleme_sure2 = millis ();<br />       ResponseStatus rs = e32.sendFixedMessage(1, 2, 20, &konum, sizeof(Signal));<br />      Serial.println(rs.getResponseDescription());<br />  }<br />}<br />     else<br />  {<br />    Serial.println (F ("No GPS data")) ;<br />  }<br />   Serial.print(F("Date/Time: ")) ;<br />  if (gps.date.isValid () )<br />{<br />    Serial.print (gps.date.month () ) ;<br />    Serial.print (F (" /")) ;<br />    Serial.print (gps.date.day ()) ;<br />    Serial.print (F ("/") ) ;<br />    Serial.print (gps.date.year () ) ;<br />}<br />else<br />{<br />  Serial.print (F(" INVALID")) ;<br />}<br /> Serial.print (F(" ")) ; <br />  if (gps.time.isValid ())<br />{  <br />    if (gps.time.hour () < 10) Serial.print (F ("0") );<br />    Serial.print (gps.time.hour () ) ;<br />    Serial.print (F (": ")) ;<br />    if (gps.time.minute () < 10) Serial.print (F ("0") );<br />    Serial.print (gps.time.minute () );<br />    Serial.print (F (":")) ;<br />    if (gps.time.second() < 10) Serial.print (F("0")) ;<br />    Serial.print (gps.time.second ());<br />    Serial.print (F (" ."));<br />    if (gps.time.centisecond () < 10) Serial.print (F ("0") );<br />    Serial.print (gps.time.centisecond ());<br /> }<br />  else<br />{<br />    Serial.print (F ("INVALID") );<br />}<br />    Serial.println();<br />}

[apcode language="cpp"]

arduino uno kod

#define E32_TTL_1W // E32 30d modülleri için bunu aktif et<br />#include "LoRa_E32.h"<br />#include <SoftwareSerial.h><br />   SoftwareSerial mySerial(10,11);<br /> LoRa_E32 e32(&mySerial);<br /> float lat,lng,irtifa;<br /> #define M0 7<br />#define M1 6<br />    struct Signal {<br />  char type[15] = "Fixaj.com";<br />  byte lat[10];<br />  byte lng[10];<br />  byte irtifa[10];<br />} konum;<br /> void setup () {<br />  pinMode(M0, OUTPUT);<br />  pinMode(M1, OUTPUT);<br />  digitalWrite(M0, LOW);<br />  digitalWrite(M1, 0);<br />     Serial.begin(115200);<br />  e32.begin();<br />  delay(500);<br />   Serial.println(F("initializing..."));<br />}<br />  void loop() {<br />  while (e32.available() > 1){<br />     ResponseStructContainer rsc = e32.receiveMessage(sizeof(Signal));<br />    struct Signal data = *(Signal*) rsc.data;<br />     Serial.print(F("Gelen Mesaj Lat:"));<br />    Serial.print(*(float*)(data.lat),6);<br />    Serial.print(", Lng:");<br />    Serial.print(*(float*)(data.lng),10);<br />    Serial.print(", İrtifa:");<br />    Serial.println(*(float*)(data.irtifa),3);<br />     rsc.close();<br />  }<br />}

Soru yeni cevaplara kapalıdır.
Mehmet En iyi cevap olarak seçildi Haziran 19, 2023
0

karşılaştığımız durum bu şekilde,sağ taraf esp serial portu sol taraf arduino.arduinoya bilgi ulaşmıyor.

Mehmet En iyi cevap olarak seçildi Haziran 19, 2023
1 cevaptan 1'ini inceliyorsun, tüm cevapları görmek için buraya tıklayın.