Toprak Nem Sensörü ve Oled ekran uygulaması

      
toprak nem sensörü ve oled projesi

    TOPRAK NEM SENSÖRÜ VE OLED UYGULAMASI

 Günümüzde her evde çeşitli bitki beslenmektedir.İşte bu bitkilerin su ihtiyaçları bulunmaktadır.İlk uygulamamız bu bitkilerin su ihtiyacını sensör ve  ekran kullanarak  onların susuz bırakmamak için yapacağız.Daha sonraki uygulamada bu projemizin üzerine ses ve su takviyesi bulunması için motor elemanlarını ekleyeceğiz. Uygulamamızda gerekli malzemeler aşağıdaki gibidir.


Malzemeler

  1. Arduino uno
  2. Atlama kabloları
  3. Toprak sensörü
  4. Oled LCD modül
Devremizi ilk olarak bilgisayar üzerinde tasarlayalım

toprak nem sensörü ve oled projesi devresi
Devremizin bağlantılarını yapalım.

Toprak sensörü için;
  • GND ucunu arduino gnd ucuna,
  • VCC ucunu arduino vcc ucun,
  • A0 ucunu arduino A0 ucuna bağlayınız.
Oled ekran  için;
  • VCC ucunu arduino vcc ucuna, 
  • Gnd ucunu arduino gnd ucuna,
  • SDA ucunu arduino SDA ucuna,
  • SCL ucunun aduino SCL ucuna bağlayınız.
Şimdi arduino dokumuzu yazmaya;

/*********************************************************************
 ucboyutbilgi.net  herkes için bilgi
*********************************************************************/

#include <Wire.h>
#include <Adafruit_SSD1306.h>

#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);
#if (SSD1306_LCDHEIGHT != 64)
#error("Height incorrect, please fix Adafruit_SSD1306.h!");
#endif

const int wetProbe      = 300;   // wet readings are around 1.5v or analog input value ~30
const int dryProbe      = 620;   // dry readings are around   3v or analog input value ~620


// Analog Sensor Input Pin
int sensorInput         = 0;    // soil probe is on analog input 0

// Variables
int validSensorReading  = 0;    // valid sensor analog reading to record
int sensorReading;              // new sensor reading to evaluate and record or discard
int sensorResult;               // scaled sensor data [0..3] = [wet, damp, moist, dry]


void setup()   {

  Serial.begin(9600);           // some debug messages will display sensor raw data

  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  // initialize with the I2C address of the display
  display.clearDisplay();                     // clear the display buffer
}


void loop() {

  sensorReading = analogRead(sensorInput);
  if (abs(validSensorReading - sensorReading) > 10) {
    validSensorReading = sensorReading;
  }

  Serial.print ("Old Sensor Reading: ");
  Serial.println (validSensorReading);
  Serial.print ("New Sensor Reading: ");
  Serial.println (sensorReading);

  sensorResult = map(validSensorReading, wetProbe, dryProbe, 0, 7);  // scale analog input to a smaller range for wet to dry

  Serial.print ("Scaled Sensor Reading 0-7: ");
  Serial.println (sensorResult);
  Serial.println ();


  // display the correct soil moisture level on the display
  // lower voltages represent more wet levels
  switch (sensorResult) {
    case 0:
      displayTextProbe("ISLAK");
      break;
    case 1:
      displayTextProbe("NEMLI");
      break;
    case 2:
      displayTextProbe("AZ NEMLI");
      break;
    case 4:
      displayTextProbe("KURU");
      break;
    case 7:    // same as case 3, due to how map works.
      displayTextProbe("ASIRI  KURU");
      break;
  }
  delay(500);
}

void displayTextProbe(const char * sensorDisplay) {
  display.setTextSize(2);
  display.setTextColor(WHITE);
  display.setCursor(0, 0);
  display.clearDisplay();
  display.println("TOPRAK: ");
  display.println(sensorDisplay);
  display.display();
  delay(1);
}


İsterseniz arduino kodunu buradan indirebilirsiniz.

Hiç yorum yok:

Blogger tarafından desteklenmektedir.