Çözüldü4.07K 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