LoRa Başlangıç Seti
Merhaba, bugün sizlerle beraber lora başlangıç seti ürünümüzü inceleyeceğiz ve LoRa kablosuz haberleşme ekosistemine ilk adımı atacağız. Bu uygulamada sadece yazı üstünde kalmayacağız aynı zamanda bir uygulama yaparak sizlerde hayal ettiniz projeleri kendiniz yapabileceksiniz. Hazırsanız başlıyoruz..
1.1 LoRa Nedir?
Lora teknoloji 2018 de Fransız Semtech firmasının geliştirmiş olduğu çok uzak mesafelere (mesala Ay’a 🙂 ) düşük güç tüketimleri ile küçük paketlerde veri aktarmaya yarayan bir teknolojidir.
Normalde kablolu çalışan bir sisteminiz var ve kablodan kurtulmak istiyorsunuz LoRa burda hemen imdadınıza yetişiyor. LoRa teknoloji gelecek 10 yılın en çok kullanılacak kablosuz haberleşme teknolojisidir. kızılötesi, Bluetooth, wifi ve 4g alt yapılarının yanında kendine bir yer edinmiş ve git gide daha da yaygınlaşmaktadır. Bu anlatacağım uygulama ile sizde bu treni kaçırmadan tam zamanında yakalamış olacaksınız.
1.2 Gerekli Malzemeler
LoRa Parametre Ayarları İçin USB Stick
Bu USB stick, LoRa modülleri için parametre ayarlamayı kolaylaştırır ve hızlı veri iletimi sağlar.
Ürün Sayfasına GitLoRa Başlangıç Seti (SX1278 E32-433T20D)
LoRa teknolojisi ile tanışmak isteyenler için 433 MHz bandında çalışan, SX1278 çipli modül ve anten içeren bir başlangıç setidir.
Ürün Sayfasına Git1.3 LoRa Parametre Ayarları
Lora modüllerini ayarlamadan önce usb stick üzerindeki jumperları çıkartıyoruz üstünde sadece 3.3v olan jumper kalmalı diğer bütün jumperları çıkartın.
Sonuçta usb stick şu şekilde olmalı:
Usb stick ile Lora modüllerini programlayabilmeniz için RF 4.0 programını indirmeniz gerekiyor.
Programın linki:
Merkez Noktamızın Parametre Ayarları
Uzak mesafedeki Lora modülünün parametre ayarları
Burada dikkat ederseniz 2 yeri sadece değiştirdik, fixed mode “enable” ve address değerlerini değiştirdik onun dışında varsayılan değerlerde bıraktık bir değişiklik yapmadık.
1.4 Arduino Programını Kurma
Biz bu uygulamada bir noktaya veri yollayıp sonra o noktadan cevap gelmesini bekleyeceğiz, gelen cevaba göre tekrar başka bir veri gönderebileceğimiz bir uygulama yapacağız.
Kod yapısına girmeden önce hangi kütüphaneyi kullancağımızı ve bu kütüphaneyi kendi Arduino ide mize nasıl kuracağımızı öğrenelim.
Öncelikle Arduino ide programını şu adresten indirip, bilgisayarınıza yüklemeniz gerekiyor.
https://www.arduino.cc/en/software
Açılan sayfada kendi bilgisayarınız sistemine göre seçim yapınız.
Açılan sayfadan ise “just download” butonuna basınız.
İndirdiğiniz dosyayı kurup artık arduino programlayabilirsiniz.
1.5 Hazır Kütüphaneyi indirip Kurma
Ben Xreef adında bir arkadaşın geliştirmiş olduğu Lora E32 kütüphanesi kullanıyorum sorunsuz bir şekilde çalışıyor. Şu ana kadarda bir sıkıntı yaşamadım sizlerede tavsiye ederim.
Bu kütüphaneyi kurabilmek için öncelikle github linkini açıp kütüphaneyi masaüstümüze indirmemiz gerekiyor. Ayrıca bu kütüphane üzerinde bir çok hazır örnekte bulunmakta. Ben neden bu kütüphaneyi seçtim derseniz, fixed mod gibi lora modülünün güzel özelliklerini aktif edebileceğim tek kütüphane bu olduğu için bu kütüphaneyi kullanıyorum.
Linke tıklayıp kütüphaneyi görseldeki gibi indirelim.
https://github.com/xreef/LoRa_E32_Series_Library
Şimdi gelelim kütüphaneyi nasıl kendi arduino programınıza kuracağımıza. Bu işlem oldukça basit sadece tek tıklama ile kütüphaneyi yüklemiş olacağız. Kurduğumuz arduino ide uygulamasına geri dönersek yukarıda araçlar kısmında görseldeki yolu izleyerek zip şeklinde indirdiğimiz kütüphaneyi kendi programınıza kurmuş olacağız.
1.6 Kodlar
Merkez noktasının Kodu:
#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();
}
}
uzak noktanın Kodları
#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());
}
}
Sonuç
Yazımızın sonuna geldik umarım LoRa ile gözünüzdeki o ilk korkuyu atmışızdır artık. Gördüğünüz üzeri her şey çok kolay sadece bir disiplin ile sabırlı bir şekilde sırayla gitmek gerekiyor. LoRa ile ilgili anlamadığınız bir konu olursa “Soru&Cevap” sayfasına sorularınızı bekliyorum.
Hayallerinizdeki projeleri yapmak dileği ile her şey gönlünüzce olsun.
İyi günler dilerim.