Toprak Nemi Ölçme & Kablosuz Veri Gönderme Projesi
Merhaba Dostlar, bugün sizlerle beraber “LoRa ile Toprak Nemi Ölçme Projesi” yapacağız. Bu projede bir toprak nem ölçme sensörü ile bir saksının toprağının nemi ölçeceğiz ve sonrasında LoRa üzerinden uzaktaki merkez noktamıza toprak nemi ile ilgili bilgileri göndereceğiz. Özellikle bu yaz aylarına girdiğimizde tarımda sulama üretim artışında rekolte de önem arz etmektedir. Sulama yaparken de tarlanın her tarafına eşit bir şekilde sulama yapılmalıdır. Mevcut sulamada çoğu tarlada sulama sırasında tarlaya girmek zor olduğu için takip yapılamamaktadır. LoRa sayesinde tarlanın belirlemiş olduğumuz noktalarına dilediğimiz gibi kontrol yapabileceğiz.
1.1 Gerekli Malzemeler
LoRa Uzman Seti (E22-900T22D)
Kablosuz şifreli veri iletimi ve güvenli iletişim için tasarlanmış bu set, 900 MHz frekansında çalışır ve LoRa uygulamalarında güvenli veri iletimi sağlar.
Devre şemasında ben hazır pcb kullandığım için özel bir devre kurmadım. Toprak nem ölçerin A0 pinini arduino Nano üzerinden A1 pinine bağladım. D0 pinini boş bıraktım. Toprak nem sensörünün pinleri hakkında detaylı bilgiyi youtube videomuzda anlatacağım.
1.3 Kod Yapısı
Burada 2 noktamız var slave kısmımız toprağın nemini ölçecek ve Merkez noktamıza sürekli olarak toprak nemi için veri gönderecek.
Anlatacaklarım bu kadar. Elimden geldiğince konuyu basit anlatmaya çalıştım. İnşallah faydalı olur. Özellikle şu dönemde işinize çok yarayacak bir proje olduğunu düşünüyorum. Hazır okullar bitmiş müsahit iseniz ve biraz para kazanmak istiyorsunuz. bu proje ile tarlaları dolaşa bilir. Satışlar yapabilirsiniz.
Aklınıza bir soru takılırsa her zaman burdayız. Teknik konularla ilgili sorularınızı Soru&Cevap sayfamıza yazabilirsiniz. Yardımcı olmaya çalışırız.
Merhabalar Dostlar, bugün sizlerle beraber sahada çokça karşınıza çıkacak RS485 protokolü üzerine bir uygulama yapacağız. Elektrik sayaçlarında, güç analizörlerinde sıklıkla kullanılan bir haberleşme protokolüdür RS485. Biz bu yazımızda uzaktan sayaç okuma sistemlerinin bir demosunu yapacağız ve güç analizöründen veriyi okuyup LoRa üzerinden uzaktaki diğer arduino noktamıza veriyi kablosuz olarak atacağız.
Kullandığım güç analizörü ENTES marka “mpr 47s-d“.
RS485 üzerine bir seri olan yazımız, ilk yazımızın devamı niteliğindedir. Eğer ilk yazımızı okumadıysanız okumanızı tavsiye ederim.
Bağlantı şemasını kabaca şu şekilde düşünebilirsiniz.
https://i.stack.imgur.com/TNlLU.png
Birebir bağlantı şemamız bu DEĞİLDİR. Sadece fikir vermesi adına ekledim. Mantık şu şekilde olacak, Arduino bir sorgu yapacak, Sorgu TTL to RS485 çevirici üzerinden analizöre gidecek. Analizörde sorguya bir cevap yazıp, aynı yoldan veriyi arduinoya yollayacak.
1.1 Gerekli Malzemeler
LoRa Uzman Seti (E22-900T22D)
Kablosuz şifreli veri iletimi ve güvenli iletişim için tasarlanmış bu set, 900 MHz frekansında çalışır ve LoRa uygulamalarında güvenli veri iletimi sağlar.
Yazımızın detaylarını youtube videomuzda anlatmış olacağım. Özellikle sorgu nasıl oluşturulur bunu videoda detaylı öğrenebilirsiniz.
Önemli bir yazı oldu sanırım. Sahada çokça kullanabilirsiniz. İş hayatının içine girdikçe RS485 haberleşme protokolünün kullanım alanlarına şaşıracaksınız. Şimdiden öğrenmeniz ve uygulamanız iş bulma süreçlerinde size kolaylıklar sağlayacaktır.
Şimdilik anlatacaklarımız bu kadar. satın aldıktan sonra yüksek puan vermeniz bizim için önemlidir. Lütfen unutmayın
Merhaba sevgili dostlar, bugün sizlerle beraber Güneş Paneli ile LoRa yı nasıl besleyeceğimizi ve enerjiye bağlı kalmadan Lipo pil ve güneş paneli sayesinde kesintisiz bir çalışma sağlayacağız.
Bu projemizde 5v luk güneş paneli 2000 mAh bir lipo pil ve TP4056 entegreleri kullanılmıştır.
Lipo pil üzerinden gelen enerji 4V civarında olduğu için direk arduino ve LoRa modüllerini besleyebilmektedir.
Özellikle enerjinin bulunmasının zor olduğu tarımsal alanlarda, çatılarda bu sistem sayesinde projenizi bağımsız olarak besleyebilirsiz.
İyi bir enerji optimizasyonu ile çok uzun süreli kullanım sağmanız oldukça kolay olacaktır.
1. Gerekli Malzemeler
HDC1080 Sıcaklık ve Nem Sensörü
Yüksek nemde mükemmel doğruluk sağlayan bu sıcaklık ve nem sensörü, hassas ölçümler için idealdir.
Kablosuz şifreli veri iletimi ve güvenli iletişim için tasarlanmış bu set, 900 MHz frekansında çalışır ve LoRa uygulamalarında güvenli veri iletimi sağlar.
Şu sitedeki bağlantı şemasını biraz modifiye ettim
Lithium pil yerine Lipo pil kullandım ve out +/- çıkışlarını direk arduinonun 5v pinine bağladım. En sağdaki mcp1700 entegresi 3v3 volt ile çalışan modeller için ben arduino nano kullandığım için bu kısmı kaldırdım.
3 Çalışma Mantığı
TP4056 entegresi
Şu sitede tp4056 ile ilgili çok detaylı bilgiler bulunmakta okumanızı tavsiye ederim
Tp4056 entegresi ve DW entegresinin bulunduğu şema yukardadır. Entegrenin çalışma mantığının detaylarını videoda anlatıyor olacağım.
Akımı sınırlama için kullanılan Rprog direnç değerlerine karşılık gelen akım değeri
Biz bu projemizde 5v luk panellerden kullandık maalesef yine Türkiye de uygun fiyatlı ve gerçekten 5w 10w üretebilen bir panel bulamadım. Hatta aldığım panellerde maalesef %100 çalışmıyordu. Termal kamera altında baktığım bazı ücrelerin hiç enerji üretmediklerini gözlemledim.
Belki termal kamera 100% doğrulukla çalışıp çalışmadığını göstermez ancak akım olarak maximum 450 mA görebildim. Normalde 1A yakın değerler görmem gerekirdi. Bu arada panellerim 5v ve hepsi birbirine paralel baağlıdır.
4 Kod Kısmı
Güneş sistemleri ile enerji sağlaayacaksanız 1. önceliğiniz düşük güç tüketimi olmalıdır. Bu konuda fazla seçeneğiniz yok Arduino Nano oldukça başarılı ve neredeyse alternatifide yoktur. Misal Arduino Mega ile enerji tasaruflu bir proje yapamazsınız. Nano 10ma çektiği yerde mega 50ma ile kesenin ağzını açmaktadır.
Arduino da enerji tasarrufu için şu kütüphaneyi kullanıyorum ve heralde gördüğüm en yüksek puana sahip kütüphanedir.
Şimdi algoritmayı şu şekilde kuracağım. Arduino normal rutin çalışmasını devam ederken ara ara A0 pini üzerinden analog read yaparak 5v pinine gelen gerilimi okuyacağım. pil değeri 3.9V altına düşünce arduinoyu uyku moduna getireceğim ve böylelikle çekilen akımı mikro amper seviyelerine düşüreceğim. Bu sayede pil Tp4056 nın kritik seviyesinin altına düşmeden sistemi durdurup enerji dolması için sistemi bekleteceğim. Böylece çok uzun süre kullanım sağlayacağız.
Kod yapısı şimdilik şu şekilde
#include <LowPower.h>
int bekleme = 5000;
unsigned long sure = 0;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
if (millis() > sure + bekleme) {
sure = millis();
int sensorValue = analogRead(A0);
// Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
float voltage = sensorValue * (5.0 / 1023.0);
// print out the value you read:
Serial.println(voltage);
if (voltage < 3.9) {
Serial.print("hade ben uyumaya gidiyom");
delay(100);
for (int i = 0; i <= 5; i++)
{
LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
}
delay(1000);
Serial.print("ahh yeni uyandım");
delay(100);
}
}
digitalWrite(LED_BUILTIN, HIGH);
delay(100);
digitalWrite(LED_BUILTIN, LOW);
delay(100);
}
Geçenlerde yaptığımız alıcı verici uygulamasını da tekrar güneş paneli ile çalıştırdık ve sonuç başarılı.
Yinede aklınıza takılan bir konu olursa Soru&Cevap sayfımıza sizleri bekleriz.
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.
1.1 Gerekli Malzemeler
LoRa Uzman Seti (E22-900T22D)
Kablosuz şifreli veri iletimi ve güvenli iletişim için tasarlanmış bu set, 900 MHz frekansında çalışır ve LoRa uygulamalarında güvenli veri iletimi sağlar.
Bir çok video ve uygulama yaptık ve yavaş yavaş geniş kitlelere ulaşma imkanımız oldu. Daha geniş kesimlere hitap etme adına Lora modülünün temelleri başlıklı bir yazı hazırladım. Burada lora modüllerinden E32 433T20D ve E32 433T30D gibi modellerin bağlantı şemasını, 4 ve üzeri lora modülleri ile nasıl bir ağ oluşturabileceğimiz, veri gönderirken adresleme nasıl yapılmalı bu konular üzerine duracağız.
1.1 Lora Modülü Bağlantı Şeması
*Serhat arkadaşımızın dikkatinden kaçmamış bağlantı şemasında dirençlerin düzeltildi 19.03.2022
Bu şema çalışma durumundaki şemadır. Yani M1 ve M0 pinleri GND çekilmiştir. Burada dikkat edilmesi gereken 2 husus bulunmakta. Birincisi RX ve TX pinlerini neye göre arduino üzerinde 11. ve 10. pinlere bağladığımız gerçeği. Bunun sebebi siz kodu nasıl yazarsanız ona göre bağlantıyı yapmalısınız. Software serial kütüphanesini kullandığımız için arduino üzerindeki RX ve TX pinleri kullanmak zorunda değiliz. Kütüphanede biz nasıl tanımlarsak o pinleri kullanabiliyoruz. Yukarıdaki şemadaki arduino içindeki kod yapası şu şekilde başlamalıdır ki, arduino ve lora modülleri haberleşebilsin.
E22-900T22D 7km Menzilli 900MHz LoRa Modülü
SX1262 çipli, 900 MHz bandında çalışan ve 7km’ye kadar menzil sunan bir LoRa modülüdür.
Diğer dikkat edilmesi gereken konu ise neden gerilim bölücü koyduk. Sebep oldukça basit arduino TTL (transistor to transistor logic) seviyesi 0-5V mertebesinden ancak Lora modüllerinin ise 0-3.3V mertebesinde olmaktan kaynaklanıyor. Basit bir gerilim bölücü ile arduinodan gidecek verinin lora modülüne zarar vermemesi için gerilim seviyesini oranladık.
Şemada ufak bir not ekledim. Ancak tekrarlamakta fayda var. Bazı arkadaşlarımızda 5v da devrenin istedikleri gibi çalışmadığı ancak 3.3V de daha iyi çalıştığını bildirdiler. Sizde aynı sorunu yaşıyorsanız gerilim mertebesini değiştirebilirsiniz. Çalışma aralığı 2.7-5.5v arasında olduğu için 2 volt seviyesinde de lora modülü zarar görmeyecektir.
Lora modülünün temelleri
1.2 Lora modülünde Adresleme konusunda kafası karışan arkadaşlar için
Adresleme ve kanal konusunda arkadaşlar çok fazla soru alıyorum. Şimdi konuyu baştan alırsak 2 temel haberleşme çeşidi bulunmakta Lora modüllerinde. Fixed yanı sadece adresi bilinen noktaya veri transferi, birde genel olarak yayın yapıldığı Broadcast modu. Ben genelde veri güvenliği için Fixed modu tercih ediyorum.
Bu görselde nelere dikkat etmeliyiz. Birinci kural veri göndereceğimiz noktanın adresini ve kanalı tam olarak bilmeliyiz. Diğer nokta ise fixed modda veriyi gönderen noktanın adresi ve kanalı önemli değildir. Yani fixed modda dilediğiniz adrese ve kanala veri gönderebilirsiniz.
Broadcast modda ise genel bir yayın yapımı vardır. Araba radyosu mantığı eğer kanalı biliyorsanız o noktaya veri gönderebilirsiniz. burada adres söz konusu değildir sadece kanala veri gönderebilirsiniz. o kanaldaki bütün noktalar veriyi alır. Karşı tarafın adresinin bir önemi yoktur. MQTT yapısını bilen arkadaşlar için abone mantığına benzer.
Şimdi gelelim kafanızı karıştığı noktaya. Usb programlayıcı ile programla yaptığınızda adres decimal yani 10 luk tabanda belirlenmektedir. Ancak Arduino da kullandığımız kütüphanede ise adresleme 16 lık tabanda belirlenmektedir.
Garip bir örnek ile konuyu anlatmaya çalışayım. Misal USB programlayıcıda “5555” adresini atayalım.
şimdi adresi 5555 yaptık peki arduino da adresi nasıl yazacaz çünkü kütüphanede high ve low olarak adresi 2 ye ayırmış.
Bu lora modülünün adresini arduino üzerinde şu şekilde yazmalıyız.
şimdi kafaların iyice karıştığına eminim 🙂 “21” ve “179” nereden geldi diye. Burada kafa karışıklığına sebep veren şey, kütüphanenin kullanmış olduğu şu metod.
Şimdi burada kütüphane ile RF setting programı arasında bir sayısal dönüşüm yapmamız gerekiyor. Biz RF setting adresi 5555 yapınca görsel de kırmızı oklarla gösterdiğim gibi 5555 adresini 16 tabanda 2 ye ayırdı hıgh = 15, low=b3. Kullandığımız kütüphane ise 16 taban yerine 10 luk tabana çevirmemizi istiyor. Yani 16 lık tabanda 15, onluk tabanda 21’i, b3 ise 179’u temsil eder. Sanırım konu anlaşılır oldu.
başka bir örnek yapalım sizde misal şu adresleri Rf setting programı ile deneyin bakalım ne olacak 65535, 65536, 65537
adresi 65534 yapıyorum.
[*] Bu adres ve kanal değerini neden seçtiğimi düşünmenizi istiyorum
Sonuç olarak bu adres ve kanal değerinin arduino tarafındaki kod yapısı şu şekilde olmalıdır.
Son bir hatırlatma yine yapayım USB programlayıcı ile parametre ayarlarını girerken USB stick üzerindeki jumper ları çıkartmanız lazım. Sadece 5v beslemeyi gösteren jumper kalmalıdır. RX ve TX pinleri de kısa devre olarak geldiği için o jumper i de unutmayınız. Örnek Görsel:
1.3 Lora ile ağ yapısı oluşturma ve Ağa bir çok lora modülünü dahil etmek
Bazı arkadaşlardan şu soruyu alıyorum.
Kaç tane lora modülünü bir merkeze bağlayabiliriz?
Sanırım bu adresleme örneklerimiz bu soruya direk cevap olmuştur. Dikkat edilmesi gereken durum Lora modüllerinde internet wifi ağına bağlanmak gibi bağlılık söz konusu değil siz hangi adrese veri gönderirseniz o adrese veri gidecektir. Dolayısıyla kaç tane adrese gidebileceğini yukarıdaki örnekte de göstermiş olduk. Yani kaç tane lora modülünü bağlayabilir biraz da sizin becerinize kalmış oluyor. Ama bu şekilde yüzlerce binlerce lora modülünü ağınıza dahil edebilirsiniz.
Ben genelde tarama usulu kullanarak ağımdaki diğer Lora modülleri ile haberleşiyorum. Şöyle ki, bütün adreslerin kayıt ettiğim bir merkez var. Bunu bir array ile tanımlıyorum. Sonrasında bir for döngüsü ile sırayla bütün adreslere sırayla veriyi yolluyorum. Yaklaşık 3-5sn bekleme atyorum. Cevap gelirse gelen cevabı kayıt ediyorum. Cevap gelmez ise Timeout yapıp diğer modüle geçiyorum.
Bu kod sayesinde mevcut sensor sayısı (yani ağımdaki Lora sayısı) kadar bir for döngüsü sürekli kendini yenileyip. Durt metodu ile bir tane adrese mesaj gönderip gelen cevabı işleyecek. Durt metodu da şu şekilde:
void Durt(byte i) {
ResponseStatus rs = e32ttl.sendFixedMessage(0, Frekanslar[i], 4, &kalibre, sizeof(Kalibre));
Serial.println(rs.getResponseDescription());
mesajgeldi = true;
sure = millis();
while (mesajgeldi) {
if (millis() > sure + bekleme) {
sure = millis();
int deger1 = i + 1;
String text1 = ". Sensor için Süre Doldu";
String sum1 = deger1 + text1;
Serial.println(sum1);
mesajgeldi = false;
} else {
while (e32ttl.available() > 1) {
ResponseStructContainer rsc = e32ttl.receiveMessage(sizeof(Kalibre));
....
//şeklinde mesaj gelirse onu artık nasıl işleyeceğiniz size kalmış
Evet arkadaşlar benim Lora modülünün temelleri yazımda anlatacaklarım bu kadar yine aklınıza takılan bir şey olursa sitemizdeki Soru&Cevap kısmından bize ulaşabilirsiniz. Bir sonraki videonun konusunu belirlemekte yardımcıda olmuş olursunuz. Olumlu yorumlarınızı bekliyorum.
Merhaba arkadaşlar, bu yazımızda youtube da çokça sorulan “elektrik sayacı gibi RS485 modbus haberleşme protokolleri ile çalışan sistemleri Arduino ve Lora modülleri ile nasıl haberleştireceğiz” üzerine bir uygulama yapacağız.
Bu uygulamamız aslında 2 seri şeklinde olacak ilk kısımda yanı bu yazımızda sadece Arduino ile PC yi RS485 Modbus üzerinden haberleştireceğiz. Diğer uygulamada ise arduinoya bir lora modulu ilave edip karşıdan da başla bir arduino lora ikilisi üzerinden veriyi yollayıp bilgisayardan takibini sağlayacağız.
Öncelikle devre şemasını kuralım. Şu site de hazır ir şema vardı biraz sadeleştirip kendim kurdum.
Burada Ekran var ve Arduino uno var ben onları kullanmadım sadece Arduino nano ile çalışmamı yaptım
Benim kurduğum devre şeması
Gördüğünüz üzeri oldukça basit bir devre kurdum. Burada sadece arduino daki veriyi RS485 üzerinden PC ye aktaracağız.
bağlantı şemaları:
Pin Name
Pin Description
VCC
5V (Arduino 5v beslemesi)
A
Çıkış USB nin A pinine (rs485 A) (Klemens de olur)
B
Çıkış USB nin B pinine (rs485 B) (klemens de olur)
GND
GND (Arduino GND)
R0
Arduino (RX pin)
RE
Arduino 2 Nolu pin
DE
Arduino 3 Nolu pin
DI
Arduino (TX pin)
Yazmaya gerek yok ama emin olmak için yine de yazalım
MAX-485 TTL to RS-485Converter Module
USB to RS-485 ModuleConnected with PC
A
A
B
B
Şimdi gelelim kütüphaneye ModbusMaster kütüphanesini kullanacağım. Yıldız ve fork sayıları oldukça yüksek diye. Ayrıca şu kütüphaneden esinlenilerek yazılmış.
Arduino üzerine örnek projeyi modifiye ettiğim kod şu şekilde.
Uygulamanın mantığı çok basit. Bir “i” değişkeni var her defasında bir artıyor ve bunun katlarını modbus üzerinden 40000,40001 ve 40002 adreslerine yazdıracağız.
Bu sayfaya gelip Modbus Slave programını indiriyoruz. Neden bu programı seçtim tek sebebi trial versiyonun olması yani ücretsiz deneme yapıyor olmasıdır. Normalda RS485 üzerinden sayaç okuma vs işleri yaparsanız burada firmaların kendi programları olacaktır. Ancak çalışma mantığı tümünde aynıdır. Önemli olan mantığı anlamak.
Programı kurup açınca lisans soruyor, “Register later” yapıyoruz. 30 gün deneme süresi tanıyor.
Şimdi gelelim yazdığımız kod yapısına göre bağlantı ayarlarını tanımlamaya. üstte Connection kısmına gelelim.
Yazdığımız koda göre ayarları şu şekilde yapıyorum
Yine koda göre bu sefer slave tanımlamamız gerekiyor.
Bu koda göre slave tanımlaması şu şekilde olacak.
Evet artık yapacağımız işlemleri tamamladık. Arduino ile RS485 modbus protokolü ile bilgisayarı haberleştirdik. Bu uygulamayı 2 yönlüde düşünebilirsiniz. Nasıl ki, bilgisayara veri gönderdik aynı şekilde bir elektrik veya su sayacına bilgi gönderip gelen verileri okutabiliriz. İkinci kısımda da RS485 okuması yapıp, Lora üzerinden kablosuz haberleştirip tekrar PC ye aktaracağız.
Merhaba arkadaşlar, youtube da yayınlamaya başladığımız Lora modülü ile kablosuz haberleşme eğitim serisine kullanıcılardan gelen yorumlara göre yeni videolar ekliyoruz. Bu aralar sanırım Teknofoest Roket ve aviyonik yarışmalarında kullanılacak olan GPS konum takibi uygulaması talebi çokça gelmekte.
Bugün sizlerle GPS takip uygulaması yapacağız.
Bir lora modülümüzü Roket, diğerini ise kumanda devresi olarak düşünelim. Roket GPS modülü üzerinden aldığı irtifa bilgilerini kumanda merkezine gönderecektir.
Kablosuz şifreli veri iletimi ve güvenli iletişim için tasarlanmış bu set, 900 MHz frekansında çalışır ve LoRa uygulamalarında güvenli veri iletimi sağlar.
Şimdi öncelikli olrak kullandığımız GPS modülünün bilgi kağıdını inceleyelim.
Kullandığımız GPS modülünde 4 adet çıkış pini bulunmakta bunlardan 2 tanesi besleme GND ve 3.3 Volt şeklinde. Diğer iki pin ise RX ve TX pinleri. Bağlantı şemasını dikkatli yapmaya çalışın.
Ben bu uygulamada GPS modülünün RX pinin arduino nano da 3 numaralı pine, TX pinini de 4 numaralı pine taktım.
Merhabalar Arkadaşlar bugün sizlerle beraber LoRa ile Drone Kumandası Yapımı işine gireceğiz. Bunun için Sx1278 entegresini kullanan 2 adet E32 433T20d modülü ve 2 adet arduino Nano kullanacağız. Yapacağımız örnekte RC uçak ve planör kumandalarında bulunan joystik ile yönlendirme bilgilerini alıp diğer Arduino nano ya kablosuz bir şekilde lora modülleri yardımıyla göndermeye çalışacağız. Burada bir Arduino bizim uzaktan kumandamızı diğer Arduino ise bizim uçağımızı temsil edecek.
LoRa ile Drone Kumandası Yapımı
Bu proje kullandığım parçalar ve satın alma linkleri
E22-900T22D 7km Menzilli 900MHz LoRa Modülü
SX1262 çipli, 900 MHz bandında çalışan ve 7km’ye kadar menzil sunan bir LoRa modülüdür.
Hazır PCB devresini ve diğer malzemeleri aldıktan sonra PCB üzerine Arduino nano’yu ve besleme kısmını lehimledim. adaptör ile 9 volt besleyeceğim için Arduino UNO üzerindeki devreyi koruma elemanlarını kendi PCB de kopyaladım. Lora modülü TTL seviyesi 3.3 volt ve Arduino nano’nun pinleri 5 volt olduğu için Tx kısmana basit bir 20k/10k gerilim bölücü ekledim. PCB de hem yerleri hem de değerleri yazdığı için bir karışıklık yaşamazsınız.
Sonuç olarak PCB şu şekil bir şey oldu:
Dilerseniz sök tak kolay olsun diye soketli bir yapıda yapabilirsiniz siz. Henüz Lora modülüne parametre ayarlarını girmediğim için lehim yapmadım. Lora modülüne parametre ayarlarını girdikten sonra lehim yapacağım. Şimdi Lora modülüne yani E32 433T20D modülüne parametre ayarlarını girelim:
Lora modülünde parametre ayarlarını değiştirebilmek için ben usb stick kullanıyorum. Arduino üzerindende yapılabiliyor ama zor ve meşakketli bir iş ayrıca modülün yazdığınız parametre değerlerini alıp almadığını kontrol edemiyorsunuz. USB stick programlayıcısını kullanmanızı tavsiye ederim.
İndirme sayfamızdan indireceğiniz RF programını açınız. Karşınıza şöyle bir sayfa gelecektir.
öncelikle sağ üst köşeden dili ingilizce yapalım, sonrada usb stick parçasındaki jumperleri şu şekle getirip bilgisayara takalım.
bilgisayara şu şekilde bağladıktan sonra parametre ayarlarını girelim.
ben parametre ayarlarını şu şekilde girdim. Video da izlerseniz daha detaylı anlatıyorum bu kısımları.
Bu parametre ayarları kumanda kısmındaki LoRa modülünün ayarları, adres ve kanala dikkat edin. Çünkü bu kısımları biraz sonra kod kısmında kullanacağız.
Aşağıdaki ayarlarda karşı taraf bu örnekte uçağımızın içindeki LoRA modülü olarak düşünelim. Adres dışındaki bütün değerler aynı.
Şimdi kod kısmına geçmeden önce kuracağımız algoritmayı düşünelim. Kumanda üzerindeki joystick üzerinden bir analog read yapılarak joystick deki değişimleri alacağız. sonra da bu veriyi bir paket haline getirip uçağımızın içindeki lora modülüne göndereceğiz.
Neden AirRate 0.3 Kbps?
FEC nedir?
Fixed Mode nedir?
Bu soruları videoda daha detaylı anlatıyor olacağım.
Kumanda kısmının kod yapısı
Uçak kısmının kodu
Evet arkadaşlar benim anlatacaklarım bu kadar. anlaşılmayan veya sormak istediğiniz bir konu olursa youtubede yorumlar kısmına yazabilirsiniz.
Sx1278 modülü kullanmış olduğumuz entegre yapısı gereği UART üzerinden haberleşmeyi sağlamaktadır. Lora 433T20D Nasıl Programlanır? Dolayısıyla bu çipi programlarken bizde aynı yolu kullanacağız. Bu yazımızda 433T20D molünün nasıl programlandığını göreceğiz
E15-USB-T2 modülü ile Lora modüllerimizin parametre değerlerini değiştireceğiz. Yukarıdaki video da uygulamalı örneğini anlatmaya çalıştım. Video da anlaşılmayan bir konu olursa bana sormaktan çekinmeyin.
Kullandığımız USB stick şu şekildedir.
10km Menzilli 433 MHz LoRa Modülü
SX1278 çipli, 1W çıkış gücüne sahip ve 10km menzilli veri iletişimi sunan bir LoRa modülüdür.
Lora 433T20D Nasıl Programlanır? Sorusuna cevap bulmaya çalıştığımız bu yazıda anlaşılmayan noktalar olursa bize instagram veya youtube sayfalarımızdan ulaşabilirsiniz.
Bir Önceki yazımızda yüzeysel olarak Lora teknolojisi hakkında bilgiler vermiştik. Bu yazımızda ise yazılım kısmı hakkında detaylı bilgi vermeye çalışacağız. İlk yazı biraz daha giriş seviyesi denilebilirdi. Yine de aklınıza takılan soruları bize sormaktan çekinmeyin.
50dB 868-900 MHz 4G LTE Anten
Bu anten, geniş bant aralığında (698-960MHz ve 1710-2700MHz) veri iletimi sağlar ve 4G LTE, LoRa ve diğer iletişim protokolleri için uygundur.
Lora kablosuz haberleşme cihazını hızlıcana kullanabilmek için hazır ve denenmiş kütüphaneleri kullanmak gerekir. Yaptığım araştırmalarda ve kütüphanelerin özelliklerini kıyasladığımda, en başarılı kütüphane olarak LoRa_E32_Series_Library kütüphanesini gördüm. Yaklaşık 1 yıldırda kullanıyorum ve bir sıkıntı yaşamadım.
Neden bu kütüphaneyi seçtim derseniz?
Öncelikli olarak ben biraz güvenliğe önem veriyorum. Ticari satışlarda da müşterilerin ilk sorduğu soru güvenlik. Lora o konuda çok fazla zaafı olan bir teknoloji. Çünkü verileri gönderirken bir şifreleme yapmıyor. Bunu sizin yapmanız gerekiyor. FIXED denilen bir mod seçeniği bulunmakta lora cihazlarında. Fixed mode ile sadece noktadan noktaya haberleşme yapabiliyorsunuz. Bu ne anlama geliyor, birisi size güvenlik zaafı yaşatmak istiyorsa öncelikle sizin hangi kanalda çalıştığını bilmek zorunda ve HIGH ve LOW denilen 2 frekans seçeneği var. Bunları da bilmek zorunda ki bayağı zor bir durum. Diğer kütüphanelerde bu özelliği aktif kullanamadığım için bu kütüphaneyi seçtim.
Ayrıca bu kütüphane lora modülünü programlama imkanı da veriyor. Bu sayede loranın bütün parametrelerini değiştirebilirsiniz.