본문 바로가기
모두의 아두이노 센서/아두이노 센서 (흙)

SEN0193 아두이노 토양 수분센서 (LCD16X2 I2C - YL69)

by 로니킴 2021. 5. 20.


본 절은 [SEN0193] 아두이노 센서를 사용하기 위해 알아야 할 내용과 실습 방법에 대해 설명한다. 아두이노 센서의 특징, 동작원리, 사양, 연결 핀 배열, 출력 값, 주의사항을 알아본다. 아두이노와 센서를 연결하고, 간단한 코딩으로 센서를 쉽게 실습할 수 있다. 

 

목차

     

     

     


    SEN0193 (Capacitive Soil Moisture Sensor) 아두이노 토양 수분센서 

     


    SEN0193 (Capacitive Soil Moisture Sensor) 센서란?

    SEN0193 센서는 수분을 감지할 수 있는 정전식 수분측정 센서이다. 

    SEN0193_Web.pdf
    0.22MB

     

     

     


     

    SEN0193 센서 하드웨어 연결

    다음과 같이 SEN0193 아두이노 센서를 연결할 수 있다. 

     


     

    SEN0193 센서 소프트웨어 코딩

    하드웨어 연결이 완료되면, 아두이노 IDE를 이용해 아두이노 센서 소스코드를 코딩할 수 있다. 

     

    센서 코드는 다음과 같다. 

    /**
       SEN0193 Soil Hygrometer Detection Module
    
       @ 모두의 아두이노 환경 센서 (Arduino Sensors for Everyone)
          https://book.naver.com/bookdb/book_detail.nhn?bid=18030644
       @ author STEAMEDU123 <steamedu123@gmail.com>
    */
    
    #include <Wire.h>
    #include <LiquidCrystal_I2C.h>
    
    
    //LiquidCrystal_I2C lcd(0x27, 16, 2);
    LiquidCrystal_I2C lcd(0x3F, 16, 2);
    
    int pinA0 = 0;    // SEL0193
    int pinA0_0 = 0;  // SEL0193 convert to %
    int pinA1 = 0;    // YL69 raw data
    int pinA1_1 = 0;  // YL69 convert to %
    
    void setup() {
      initLCD();
      Serial.begin(9600);
    }
    
    void loop() {
      setSEN0193_SoilMoisture();
      setYL69_SoilMoisture();
    
      delay(1000);
    }
    
    void setSEN0193_SoilMoisture() {
      int dry_value = 700; //670;
      int wet_value = 200;
    
      pinA0 = analogRead(A0);
      pinA0_0 = map(pinA0, wet_value, dry_value, 100, 0);
      if (pinA0_0 < 0) pinA0_0 = 0;
      constrain(pinA0_0, 0, 100);
      displayLCD_SEN1093();
    }
    
    void setYL69_SoilMoisture() {
      int dry_value = 900; //850;
      int wet_value = 0;
      pinA1 = analogRead(A1);
      pinA1_1 =  map(pinA1, wet_value, dry_value, 100, 0);
      if (pinA1_1 < 0) pinA1_1 = 0;
      if (pinA1_1 > dry_value) pinA1_1 = 100;
      constrain(pinA0_0, 0, 100);
      displayLCD_YL69();
    
    }
    
    
    void initLCD() {
      lcd.init();
      lcd.backlight();
    }
    
    void displayLCD_SEN1093() {
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("1093:");
      lcd.print(pinA0);
      lcd.print(" ");
      lcd.print(pinA0_0);
      lcd.print("%");
    }
    
    void displayLCD_YL69() {
      lcd.setCursor(0, 1);
      lcd.print("YL69:");
      lcd.print(pinA1);
      lcd.print(" ");
      lcd.print(pinA1_1);
      lcd.print("%");
    }

     

    최종 출력 값은 프로브 삽입 깊이와 주변에 포장 된 토양이 얼마나 단단한 지에 영향을 받는다.

     


     

    SEN0193 센서 동작확인

    하드웨어 연결, 소프트웨어 코딩이 완료되면 다음과 같이 동작 화면을 확인할 수 있다. 

     

    ------------------------------------------------------ 
    개발환경 : WINDOWS 10 
    아두이노 IDE : 1.8.13 
    ------------------------------------------------------ 
    01 연결
     - 아두이노와 PC 연결 
     - 아두이노 IDE 실행 
     - 메뉴 → 툴 → 보드:아두이노 UNO 확인 
      - 메뉴 → 스케치 → 확인/컴파일 

    02 컴파일 확인 

    스케치>확인/컴파일(CTRL+R) 를 선택해서 컴파일을 진행한다.


    03 아두이노 우노 업로드 

    컴파일이 이상없이 완료되면 스케치>업로드(CTRL+U) 를 선택해서 컴파일 파일을 업로드 한다. 


    04 동작 확인

    다음과 같이 동작을 확인할 수 있다. 

     

     

     


     

    마무리

    아두이노와 SEN0193 센서를 연결하고, 간단한 코딩으로 센서를 쉽게 실습할 수 있다. 

     

     

     

     

     


     

    모두의 아두이노 환경 센서 책

    [모두의 아두이노 환경 센서] 책은 예스24, 인터넷 교보문고, 알라딘, 인터파크도서, 영풍문고, 반디앤루니스 , 도서11번가 등에서 구입할 수 있다. 이 책에서는 PMS7003, GP2Y1010AU0F, PPD42NS, SDS011 미세먼지 센서, DHT22 온습도 센서, MH-Z19B 이산화탄소 센서, ZE08-CH2O 포름알데히드 센서, CCS811 총휘발성유기화합물 TVOC, GDK101 방사선(감마선) 센서, MQ-131 오존(O3) 센서, MQ-7 일산화탄소, MICS-4514 이산화질소 센서, MICS-6814 암모니아 센서, DGS-SO2 아황산가스(SO2) 센서, BME280 기압 센서, GUVA-S12SD 자외선(UV) 센서, MD0550 기류 센서, QS-FS01 풍속 센서(Wind speed) 를 사용한다.  

     

    모두의 아두이노 환경 센서

    아두이노와 센서로 내 건강을 지킬 수 있다!다양한 환경 센서를 실생활 프로젝트에 응용해보자!시중에 판매되고 있는 간이측정기도 센서로 값을 측정합니다. 똑같은 센서를 아두이노에 연결하

    book.naver.com

     

     

     

     



    댓글