Çözüldü2.88K görüntülenmeLora#esp
0

Merhaba. E32 verici modülü esp32’ye alıcı modülü nano 3in1 pcb’ye taktık. Barometre gibi modülleri vericide kullanınca kütüphaneli kodlar çalışıyor ve haberleşme sağlanıyor ama neo7m gps ile haberleşme sağlayamıyoruz. Verici portunda veri okunuyor ancak iletişim sağlanmıyor. Esp32’de listen komutu hata verdiği için sitedeki gps örneğinden yararlanamadık, HardwareSerial kütüphanesi listen komutunu çalıştırmadı. Gps’i ve Lora’yı esp’nin farklı tx rx girişlerine bağladık listen komutuna ihtiyacımız kalmayabileceğini düşünerek fakat işe yaramadı. Parametre ayarları, bağlantı şemaları ve kodları ekledim. Teşekkürler.

şipariş no: 208245222215

[apcode language="php"]

#include "LoRa_E32.h"<br />#include <SoftwareSerial.h><br />#define M0 7 <br />#define M1 6<br />   /*<br />   Pinler     Arduino Nano    Lora E32 433T20d<br />                  11                3<br />                  10                4<br />*/<br />SoftwareSerial mySerial(10,11);<br />LoRa_E32 e32ttl(&mySerial);<br />     struct Signal {<br />  byte irtifa;<br />  byte random;<br />  byte pitch;<br />  byte roll;<br />  byte yaw;<br />} data;<br />        void setup() {<br />  pinMode(M0,OUTPUT);      <br />  pinMode(M1,OUTPUT);<br />  digitalWrite(M0,0);<br />  digitalWrite(M1,0);<br />  Serial.begin(9600);<br />  e32ttl.begin();<br />  delay(500);<br />}<br />   void loop() {<br />     ResponseStatus rs = e32ttl.sendFixedMessage(0, 2, 23, &data, sizeof(Signal));      <br />  delay(2000);<br />  while (e32ttl.available()  > 1) {                                     <br />    ResponseStructContainer rsc = e32ttl.receiveMessage(sizeof(Signal));<br />         struct Signal data = *(Signal*) rsc.data;<br />    Serial.print(*(float*)(data.irtifa));<br />         Serial.print("/");<br />         rsc.close();<br />  }<br />}

#include <Wire.h><br /> #include <TinyGPS++.h><br /> #include <HardwareSerial.h><br />#include "LoRa_E32.h"<br />#include "Wire.h"<br />#define M0 32<br />#define M1 33<br />   #define RXD2 16<br />#define TXD2 17<br /> long timer=0;<br /> // OLED display height, in pixels<br /> //On ESP32: GPIO-21(SDA), GPIO-22(SCL)<br />    TinyGPSPlus gps;<br /> HardwareSerial neogps(2);<br />HardwareSerial loraport(1);<br /> LoRa_E32 e32ttl(RX, TX, &loraport, UART_BPS_RATE_9600);<br /> struct Signal {<br />  byte irtifa[10];<br />  byte pitch[10];<br />  byte roll[10];<br />  byte yaw[10];<br />} data;<br /> void setup() {<br />  Serial.begin(9600);<br />  //Begin serial communication Arduino IDE (Serial Monitor)<br />   //Begin serial communication Neo6mGPS<br />  neogps.begin(9600, SERIAL_8N1, RXD2, TXD2);<br />    e32ttl.begin();<br />  delay(500);<br />  // SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally<br />    }<br /> void loop() {<br />                        if (neogps.available())<br />    {<br />             if (gps.encode(neogps.read()))<br />      {<br />      if (millis() - timer > 500) {<br />        displayInfo();<br />        displayLORA();<br />        timer = millis();<br />}}<br />   if (millis() > 5000 && gps.charsProcessed() < 10)<br />  {<br />    Serial.println(F("No GPS detected: check wiring."));<br />    while(true);<br />  }<br />     }<br />}  <br />         void displayLORA(){<br />  * (float *)(data.irtifa) = gps.altitude.meters();<br />  ResponseStatus rs = e32ttl.sendFixedMessage(0, 1, 7, &data, sizeof(Signal));<br />  Serial.println(rs.getResponseDescription()); <br />ResponseStructContainer rsc = e32ttl.receiveMessage(sizeof(Signal));<br />    }<br />      void displayInfo()<br />{<br />   Serial.print(F("Location: "));<br />  if (gps.location.isValid())<br />  {<br />    Serial.print(gps.location.lat(), 6);<br />    Serial.print(F(","));<br />    Serial.print(gps.location.lng(), 6);<br />  }<br />  else<br />  {<br />    Serial.print(F("INVALID"));<br />  }<br />  Serial.print(F("  altitude: "));<br />  if (gps.location.isValid()) {<br />    Serial.print(gps.altitude.meters(), 2);<br />   }<br />  else<br />  {<br />    Serial.print(F("INVALID"));<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]

Soru yeni cevaplara kapalıdır.
Mehmet En iyi cevap olarak seçildi Eylül 6, 2022
0

Kodu tam kopyalamamissiniz. Rx ve tx tanimini goremedim esp de. Oraya dikkat edin. Devre semanizin da resmininatin.  Pcb varmi? 3in1 shield?

Mehmet En iyi cevap olarak seçildi Eylül 6, 2022
4 cevaptan 1'ini inceliyorsun, tüm cevapları görmek için buraya tıklayın.