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 />}
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.
Faruk hocam devren halen çalışıyorsa son halini atarmısın
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.