Lora-Nano Geliştirme Kiti V2 (Versiyon 2)
LoRa Nano Geliştirme Kitimiz, Arduino Nano ve Lora E22 900T 22D ile kolay kullanım için tasarlanmıştır. Ayrıca kit üzerinde pil ile harici besleme yapmak için bir adet klemens, nanonun diğer pinlerini kullanmak için ise yardımcı soketler bulunur.
Nano ve Lorayı, yerlerine takarak kullanmaya başlayabilirsiniz.Veri iletimi yapmak istiyorsanız, 2 adet kite ihtiyacınız olacaktır. Bir tanesini verici, diğerini alıcı olarak düşünebilirsiniz. Lora ve Nano arasındaki bağlantı şeması şu şekildedir.
Konfigürasyon Kodu
#include <SoftwareSerial.h>
SoftwareSerial mySerial(9, 8); // RX, TX V2
#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 Setting
Konfigürasyon kodundan sonra rf settings programını açıp adres ve kanal ayarını yapıyoruz. Kanal ayarı mutlaka 18 olarak ayarlanmalıdır. Adres ayarı için böyle bir sınırlama yoktur. Alıcı ve verici için 2 farklı sayı kullanılması yeterlidir. Son olarak Tran modu fixed seçip kaydedip çıkıyoruz. Verici modülümüzün adresi 1 kanalı 18, alıcı modülümüzün adresi 2 kanalı 18’dir.
RF Setting İndirme Linki: https://arkis.com.tr/dosyalar/lora/RF_SettingE22-E90SLV2.0.zip
Test Kodu
Konfigürasyonları yaptıktan sonra bir test kodu atalım ve modüllerimizi çalıştıralım. Verici modülümüz merhaba verisini, alıcı modülümüze göndersin, bizde bu mesajı Arduino seri ekranımızdan okuyalım.
Daha önceki videolarımızda alıcı ve verici kodlarının çalışma mantığından bahsetmiştik. Ekranda gördüğünüz kodları, nanolara yükleyip devremizi çalıştıralım. Verici modülümüz merhaba verisini alıcı modülümüzün ekranında yazdırıyor.
//ALICI//
#include <LoRa_E22.h>
#include <SoftwareSerial.h>
SoftwareSerial mySerial(9,8);
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();
}
}
//VERİCİ//
#include <LoRa_E22.h>
#include <SoftwareSerial.h>
SoftwareSerial mySerial(9, 8);
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, 18, &data, sizeof(veriler));
Serial.println(rs.getResponseDescription());
delay(2000);
}