Lora Kullanımı ve Konfigürasyonu

Bu makale Lora-Nano Geliştirme kitinin birinci versiyonuna (V1) göre hazırlanmıştır.

Bu uygulamada LoRa (Long Range) kablosuz haberleşme modülüne giriş yapılmıştır. Modülün konfigürasyonunun nasıl yapıldığından bahsedilmiş ve Arduino Nano mikrokontrolcüsü ile nasıl bağlanması gerektiği gösterilmiştir. Arduino ile bağlantı yaparken Arkış Mühendislik tarafından geliştirilen “LoRa – Nano Geliştirme Kiti” kullanılmıştır. LoRa – Nano Geliştirme Kiti’nin yanında paralel pin çıkışları bulunmaktadır. Bu sayede Nanonun diğer pinlerini kullanma imkanı sunar. Kart üzerinde montajı kolaylaştırmak için 4 adet delik bulunmaktadır. Geliştirme kitini kendi projelerinizde, TEKNOFEST yarışmalarında tercih edebilirsiniz.

İhtiyacımız olan malzemeler:2 adet LoRa – Nano Geliştirme Kiti,2 adet E22-900T22D Lora Haberleşme Modülü(2 adet Anten), 2 adet Arduino Nano, 2 adet USB Kablo

LoRa-Nano Geliştirme Kiti ile Devre Bağlantısını Oluşturma

Arduino Nano ve LoRa modülünü yerlerine taktığınızda kullanıma başlayabilirsiniz.

LoRa-Nano Geliştirme Kiti Kullanmadan Devre Bağlantısını Oluşturma

LoRa modülünün M0 pini D7’ye, M1 pini D6’ya bağlanmıştır. Bu bağlama şekli konfigürasyon yapmak içindir. Devrenizi breadboard üzerinde kurduysanız konfigürasyon bittikten sonra M0 ve M1 pinini Arduinoya Ground(GND) olacak şekilde bağlayabilirsiniz.

 Geliştirme kitinde pinlerin yeri değiştirilemeyeceği için, kodlamada ilave olarak M0 ve M1 pinlerinin Low olduğu belirtilir. Rxd pinine gerilim bölücü uygulayarak Nanonun D11 hattına, Txd pinini D10 hattına bağlıyoruz. Vcc pini Nanonun 5 V’una, Gnd pini de Nanonun Gnd ucuna bağlanır.

Lora Konfigürasyonu Nasıl Yapılır?

Loraların birbirleri ile haberleşebilmesi için, bir takım ayarlamalar yapılmalıdır. Bu ayarlamaları yapmak için ekstra bir modüle gerek yoktur. Arkış Mühendislik tarafından geliştirilen “LoRa – Nano Geliştirme Kiti” ile konfigürasyon yapabilirsiniz. Konfigürasyon, Ebyte firması tarafından geliştirilen “RF Setting” programı ile yapılabilmektedir. RF Setting programını açmak için aşağıdaki kodu Arduinoya yüklememiz gerekir. Kodu yükleyip, programı çalıştıralım.

#include <SoftwareSerial.h>
  
SoftwareSerial mySerial(10, 11); // RX, TX
  
#define M0 7
#define M1 6
  
void setup() {
  Serial.begin(9600);
  mySerial.begin(9600);
  
  pinMode(M0, OUTPUT);
  pinMode(M1, OUTPUT);
  digitalWrite(M0, LOW);
  digitalWrite(M1, HIGH);
}
  
void loop() {
  if (Serial.available()) {
    mySerial.write(Serial.read());
  }
  
  if (mySerial.available()) {
    Serial.write(mySerial.read());
  }
}

RF Settings Nasıl İndirilir?

Aşağıdaki linke tıklayarak Lora E22-900T22D için RF Setting programını indirebilirsiniz.

RF Setting İndirme Linki: https://arkis.com.tr/dosyalar/lora/RF_SettingE22-E90SLV2.0.zip

Lora E22-900T22D Adres Ve Kanal Ayarı

Programı açtığımızda ilk olarak dil seçeneğini “English” olarak seçiyoruz. İkinci olarak “Open” butonuna tıklatıyoruz. Ve son olarak da “Get” butonuna tıklıyoruz. Bu sıralama tüm uygulamalarda takip edilmelidir. Tüm aşamaları doğru yaptığımızda ekranda “Read Param Success” metnini görmemiz gerekiyor.

Alıcı Lora Konfigürasyonu

Öncelikle Alıcı Loranın parametrik ayarlarını yapalım. Adres satırına 1, kanal satırına 18 yazıyoruz. Diğer parametrelerle ilgili daha detaylı bilgilendirme, ileriki videolarda yapılacaktır.

Alıcı Lora – Programı Açarken

Adres ve kanal değerini girdikten sonra ilk olarak “Set Param” seçeneğini tıklatıyoruz. Ardından “Close” diyip çıkıyoruz. Alıcı modülün konfigürasyonu tamamlandı.

Alıcı Lora – Programı Kapatırken

Verici Lora Konfigürasyonu

Verici modülümüzde ise Adres satırına 2, kanal satırına 18 yazıyoruz. Diğer parametrelerle ilgili daha detaylı bilgilendirme, ileriki videolarda yapılacaktır.

Verici Lora- Programı Açarken

Adres ve kanal değerini girdikten sonra ilk olarak “Set Param” seçeneğini tıklatıyoruz. Ardından “Close” diyip çıkıyoruz. Verici modülün konfigürasyonu tamamlandı.

Verici Lora- Programı Kapatırken

Burada önemli olan nokta kanal ayarının her iki modül için aynı olması zorunluluğudur.

Adreslemeleri nerede kullanıyoruz?

ResponseStatus rs = E22.sendFixedMessage(0, 1, 18, &data, sizeof(veriler));

Bu kod satırı verici tarafa aittir. sendFixedMessage() fonksiyonunda ilk satıra 0 yazılır. İkinci satıra alıcı modülün adresi, 3.satıra ise kanal adresi yazılır. Sizlerde yukarıda verilen örnekten yola çıkarak kendi projelerinizde doğru adresleme yapabilirsiniz.

Hatırlatma = Projelerinizi LoRa – Nano Geliştirme Kiti ile gerçekleştiriyorsanız aşağıdaki kodları projenize eklemeniz gerekir. (Kodlar her iki tarafa eklenmelidir.)

#define M0 7
#define M1 6
void setup() {
  pinMode(M0, OUTPUT);
  pinMode(M1, OUTPUT);
  digitalWrite(M0, LOW);
  digitalWrite(M1, LOW);
}

Lora ile Veri Gönderme Örnek Program(“Merhaba” Verisinin Gönderimi)

Verici

#include <LoRa_E22.h>
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11);
LoRa_E22 E22(&mySerial);
#define M0 7
#define M1 6
struct veriler {   
 char deger[15];
} data;
void setup() {
  pinMode(M0, OUTPUT);
  pinMode(M1, OUTPUT);
  digitalWrite(M0, LOW);
  digitalWrite(M1, LOW);
  Serial.begin(9600);
  E22.begin();
  delay(500);
}
void loop() {
  sprintf(data.deger,"Merhaba");
  ResponseStatus rs = E22.sendFixedMessage(0, 2, 65, &data, sizeof(veriler));
  Serial.println(rs.getResponseDescription());
  delay(2000);
}

Alıcı

#include "LoRa_E22.h"
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11);
LoRa_E22 E22(&mySerial);
#define M0 7
#define M1 6
struct veriler {
  char deger[15];
} data;
void setup() {
  pinMode(M0, OUTPUT);
  pinMode(M1, OUTPUT);
  digitalWrite(M0, LOW);
  digitalWrite(M1, LOW);
  Serial.begin(9600);
  E22.begin();
  delay(500);
}
void loop() {
  while (E22.available()  > 1) {
    ResponseStructContainer rsc = E22.receiveMessage(sizeof(veriler));
    struct veriler data = *(veriler*) rsc.data;
    Serial.println("Gelen Mesaj: ");
    Serial.println(data.deger);
    
    rsc.close();
  }
}