LoRa ile Toprak Nemi Ölçme Projesi

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 2 Adet E32 433T20DC Satın almak için tıkla

PCB Başlanagıç seti Satın almak için Tıkla

1 adet toprak nem sensörü

1 adet USB programlayıcı Satın almak için tıklayın

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.

Bu ürünleri ve daha fazlasını n11 mağazamızdan bulabilirsiniz. N11 mağazamızı incelemek için tıklayın.

N11 de olumlu yorumlarınızla bizleri desteklemeyi unutmayın

Herkese iyi günler.