Çözüldü4.08K görüntülenmeLoraLora lora30d
0

Lora ile basit bir alıcı verici devresi oluşturdum. Verici potansiyometreden aldığı değeri gönderecek, alıcı ise değer istenen eşik değerden büyükse ledi yakacaktı. Ancak alıcıya herhangi bir veri ulaşmıyor. Adreslerde bir hata yok, karıştırmamak için loraların üstüne adreslerini bile yazdım.(elimde 20binlik direnç olmadığı için iki tane 10binliği seri bağladım). Vericiye gücü breadboarda besleyici ile sağladım, 3Ampere kadar akım verebildii için beslemesi sıkıntısız. Aynı şekilde alıcı devreyi de arduino pro mega ile besledim, 800mA akım verebiliyor. Beslemede veya devrede bir sıkıntı yok.

#include "LoRa_E32.h"<br />#include <SoftwareSerial.h><br />#define led 3<br /> SoftwareSerial mySerial(10, 11); // Arduino RX <-- e32 TX, Arduino TX --> e32 RX<br />LoRa_E32 myLora(&mySerial);<br /> typedef  struct {<br />  byte roll;<br />  byte temp[4];<br />} Signal;<br />Signal data;<br /> void ResetData(){<br />  data.roll = 130;<br />}<br /> void setup() {<br />  Serial.begin(9600);<br />  pinMode(led,OUTPUT);<br />  ResetData();<br />  myLora.begin();<br />  delay(500);<br />}<br /> void loop() {<br />  while (myLora.available()  > 1) {<br />    Serial.println("available");<br />    ResponseStructContainer rsc = myLora.receiveMessage(sizeof(Signal));<br />    data = *(Signal*) rsc.data;<br />    rsc.close();<br />    Serial.print(F("Roll: ")); Serial.println(data.roll); <br />  }<br />  if(data.roll > 132){<br />    digitalWrite(led,HIGH);<br />  }else{<br />    digitalWrite(led,LOW);<br />    Serial.println(":(");<br />    delay(100);<br />  }<br /> }

#include "LoRa_E32.h"<br />#include <SoftwareSerial.h><br /> SoftwareSerial mySerial(10, 11);<br />LoRa_E32 myLora(&mySerial);<br /> typedef  struct {<br />  byte roll;<br />  byte temp[4];<br />} Signal;<br />Signal data;<br /> void ResetData(){<br />  data.roll = 127;<br />  byte temp[4];<br />}<br /> void setup(){<br />  Serial.begin(9600);<br />  ResetData();<br />  myLora.begin();<br />  delay(500); <br />}<br /> void loop(){<br />  data.roll =  map(analogRead(A0), 0, 1023, 0, 255);<br />  Serial.print(" data.roll): " );Serial.print( data.roll);Serial.print("\t");<br />     ResponseStatus rs = myLora.sendFixedMessage(0, 17, 3, &data, sizeof(Signal));<br />  Serial.println(rs.getResponseDescription());<br />   delay(1000);<br />}

Soru yeni cevaplara kapalıdır.
Mehmet En iyi cevap olarak seçildi Mayıs 17, 2021
0

hocam devre bana karışık geldi şu şekilde sadeleştirebilir misin. Sadece lora modülünün + beslemesini sağ taraftaki senin sisteminden yap. arduinoyu ayrı bir pc usb den besleki ne kod gönderdiğini görebilelim. arduinonun ve  harici beslemenin GND si ortak olsun bir yerde ikisini birleştir. ikisini de latta – barasına verebilirsin.

gördüğüm hatalar:

arduino vin 5v olmaz o pini çıkart arduinoyu direk usb ile besle

potansiyometre yi kaldır.

lora gnd si ortak gnd olsun (arduino + senin usb besleme + lora hepsini beyaz board – barına bağla)

megapro yu da şimdilik kaldır nano tak, devreyi bu şema gibi  yap  sadeleştir.

mehmet yıldız Cevaplanan soru Mayıs 16, 2021
3 cevaptan 1'ini inceliyorsun, tüm cevapları görmek için buraya tıklayın.