transreceiver

Lora Modülü ile Alıcı-Verici “transceiver” Yapımı

Merhaba Arkadaşlar bugün sizlerle beraber youtube de ve fixaj sitemizdeki soru&cevap kısmında çokça sorulan Lora Modülü ile Alıcı-Verici “transceiver” Yapımı uygulaması yapmaya çalışacağız.

Aslında benzer uygulamalar yaptık ancak bazı arkadaşlar sanırım bazı noktalarda takılmış. Birebir çalışan alıcı verici uygulaması illaki istediler. Aslında en güzel öğrenme deneme yanılma ile olandır. Biraz kurcalayarak belki ufak tefek kırma bozma ile iş öğrenilir.

Şimdi Uygulamaya geçelim. Bağlantı şemasını tekrar anlatmıyorum şu yazımızdan ulaşabilirsiniz. Ancak ben hazır pcb ile yaptım. Bu uygulama şöyle olacak bir MERKEZ bir noktamız var, birde BEBEK ODASI dediğimiz bize ortam sıcaklığını gönderen sensor noktamız olacak. Merkez bir sorgu yapacak, bebek odası gelen mesajı okuyup ortam sıcaklığını ve oda adını Merkez noktasına yollayacak.

Bebek odası sıcaklık ölçme uygulaması

1.1 Gerekli Malzemeler

2 Adet Lora E32 433 T20DC Satın almak için tıklayın

2 adet Hazır PCB Satın almak için tıklayın

1 adet usb programlayıcı stick Satın almak için tıklayın

arduino nano2 adet arduino NANO

1.2 Lora Parametre Ayarları

Merkez noktasının Lora Parametre ayarları

lora ile transreceiver

Bebek odası için kullanacağımız Lora modülünün parametre ayarları

1.3 Arduino kodları

Merkez noktanın kod yapısı

#include "LoRa_E32.h"
#include <SoftwareSerial.h>

SoftwareSerial mySerial(10, 11);

/*
   Pinler     Arduino Nano    Lora E32 433T20d
                  11                3
                  10                4
*/

LoRa_E32 e32ttl(&mySerial);

struct Signal {
  char type[15] = "Fixaj.com";
  byte temp[4];
} data;


void setup() {
  Serial.begin(9600);
  e32ttl.begin();
  delay(500);
}

void loop() {

  ResponseStatus rs = e32ttl.sendFixedMessage(0, 44, 23, &data, sizeof(Signal));
  Serial.println(rs.getResponseDescription());

  delay(2000);

  while (e32ttl.available()  > 1) {
    ResponseStructContainer rsc = e32ttl.receiveMessage(sizeof(Signal));
    struct Signal data = *(Signal*) rsc.data;
    Serial.print("Yer: ");
    Serial.println(data.type);
    Serial.print("Ortam Sıcaklığı: ");
    Serial.println(*(float*)(data.temp));
    rsc.close();
  }
}

Bebek odası kod yapısı

#include "LoRa_E32.h"
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // Arduino RX <-- e32 TX, Arduino TX --> e32 RX
LoRa_E32 e32ttl(&mySerial);

struct Signal {
  char type[15];
  byte temp[4];
} data;

void setup() {
  Serial.begin(9600);
  e32ttl.begin();
  delay(500);
}

void loop() {
  while (e32ttl.available()  > 1) {

    // Gelen mesaj okunuyor
    ResponseStructContainer rsc = e32ttl.receiveMessage(sizeof(Signal));
    struct Signal data = *(Signal*) rsc.data;
    Serial.print("Gelen Messaj: ");
    Serial.println(data.type);
    rsc.close();

    //Gönderilecek paket veri hazırlanıyor
    struct Signal  {
      char type[15] = "Bebek Odası";
      byte temp[4];
    } data2;

    *(float*)(data2.temp) = 19.2;


    ResponseStatus rs = e32ttl.sendFixedMessage(0, 63, 23, &data2, sizeof(Signal));
    Serial.println(rs.getResponseDescription());

  }

}

Lora Modülü ile Alıcı-Verici “transceiver” Yapımı yazımız buraya kadar. aklınıza takılan bir soru olursa yine fixaj.com Soru&Cevap kısmına bekleriz.