Çö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

Mehmet hocamız sağolsun sistemi çalıştırdım. Besleme sorunu ve temassızlık vardı. verici gücünü düşürerek çözdük ancak yine de 30D modeli için ek besleme zorunlu. Muhtemelen 20D modeline geçiş yapacağım. Tekrardan yoğun ilgi için teşekkürler.

Mehmet En iyi cevap olarak seçildi Mayıs 17, 2021
3 cevaptan 1'ini inceliyorsun, tüm cevapları görmek için buraya tıklayın.