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.
Ürün Sayfasına Git40dBi SMA 433 MHz Anten
Bu anten, 433 MHz frekansında yüksek kazançlı bir veri iletimi sağlar ve LoRa cihazlar için idealdir.
Ürün Sayfasına GitE32-433T20D LoRa Modülü
433 MHz frekansında çalışan, SX1278 çipli uzun mesafe veri iletişimi için ideal bir LoRa modülüdür.
Ürün Sayfasına GitLoRa 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 Git1 adet toprak nem sensörü
1.2 Devre Şeması
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.
Slave (toprak nemi ölçecek kısım)
#include "LoRa_E32.h"
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // Arduino RX <-- e32 TX, Arduino TX --> e32 RX
LoRa_E32 e32ttl(&mySerial);
const int analogInPin = A1;
int sensorValue = 0;
struct Signal {
char type[15];
byte Nem[4];
} data;
void setup() {
Serial.begin(9600);
e32ttl.begin();
delay(500);
}
void loop() {
sensorValue = analogRead(analogInPin);
Serial.print("sensor = ");
Serial.println(sensorValue);
//Gönderilecek paket veri hazırlanıyor
struct Signal {
char type[15] = "Pamuk Tarlası";
byte Nem[4];
} data2;
*(int*)(data2.Nem) = sensorValue;
ResponseStatus rs = e32ttl.sendFixedMessage(0, 63, 23, &data2, sizeof(Signal));
Serial.println(rs.getResponseDescription());
delay(500);
}
Master (Ölçümleri toplandığımız ve görüntülediğimiz merkez)
#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 Nem[4];
} data;
void setup() {
Serial.begin(9600);
e32ttl.begin();
delay(500);
}
void loop() {
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("Toprak Nemi: ");
Serial.println(*(int*)(data.Nem));
rsc.close();
}
}
Sonuç
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.
Herkese iyi günler.