ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 아두이노 레시피 : 토양습도 센서 사용하기 - 기초 편
    아두이노 레시피 2025. 2. 21. 09:51

    # Recipe 1. 토양습도 센서(기초 편)

    사진출처 : LastMinute Engineers.com

     

    안녕하세요~ 아두이노 셰프입니다. IOT 프로젝트를 진행할 때 아두이노를 많이들 사용하는데요, 오늘은 스마트팜이나 스마트화분에서 꼭 쓰이는 토양습도 센서 레시피를 소개해드리려고 해요. 센서의 기초 사용방법, 알아볼까요?

    오늘의 재료 Ingredient


    <메인 재료>

    토양습도 센서 (FC-28)

    (꼭 같은 모델을 사용할 필요는 없어요.)

    <그 외 재료>

    암-수 점퍼케이블 5p

    아두이노 우노

    그리고 측정할 화분


    메이킹 방법 Steps

    Step 1. 선 연결하기 Wiring

    a. 센서모듈의 A0핀은 아두이노의 A0핀에,

    b. 센서모듈의 GND핀은 아두이노의 GND핀에,

    c. 센서모듈의 VCC는 아두이노의 5V에,

    d. probe(측정 부분)와 센서모듈을 연결해 주세요.(+,- 는 상관없어요!)

    - - - - - - - - - -

    Step 2. 아두이노 코드 Code review

    여러분의 요리가 훨씬 간편해질 수 있도록, 숙성이 필요한 코드는 언제나 제가 준비할게요ㅎㅎ

    #define pin A0
    //앞으로 A0핀을 ‘pin’이라 부르겠습니다. 선언합니다.
    
    void setup() { //여기 안에 있는 코드는 딱 한번만 실행됩니다.
    
    Serial.begin(9600);
    //9600의 속도로 시리얼 통신을 시작합니다.
    pinMode(pin,INPUT);
    //아두이노의 A0핀을 INPUT 모드로 설정합니다.
    //이제 A0핀에서 전기신호를 읽을 수 있습니다.
    
    }
    
    void loop() { //위의 Setup() 실행 이후, 여기 안에 있는 코드는 무한히 반복실행됩니다. 
    
    int data = analogRead(pin); 
    //여기 loop안에서만, ‘pin’에서 읽히는 정보를 ‘data’라 부르겠습니다.
    Serial.println(data); 
    //시리얼 모니터에 ‘data’의 값을 출력합니다.
    delay(500); 
    //0.5초 동안 아무것도 하지 않고 기다립니다. (1000 = 1초)    
    }

    - - - - - - - - - -

    Step 3. 동작시키기 Working

    ● 코드를 아두이노 우노에 업로드해 주세요. (업로드 완료 후에도 USB선은 뽑지 않고 유지합니다.)

    ● 화분에 토양습도 센서를 꽂고, 시리얼 모니터를 열어서 값이 출력되는지 확인해 주세요.

    ● 화분에 분무기로 물을 뿌려가며 진짜 센서의 값이 변하는지 확인해 주세요.

    (분무기가 아닌, 컵 등으로 직접 물을 부으면 변하는 값을 확인하기 어려울 수 있습니다.)


    오늘의 레시피는 여기까지입니다~ 더 깊은 맛을 원하시는 분은 아래 과학시즈닝을 참고해 주세요!


     

     

    과학으로 양념하기” Seasoning

    센서에 대한 과학적 원리와 세부내용으로 레시피에 더 깊은 맛을 넣어봅시다.

    - - - - - - - - - -

    센서에 대하여

    토양 습도센서는 토양 내 수분함량에 따른 저항의 변화를 측정하는 센서입니다.

    이 전기저항은 토양 내 수분과 토양을 구성하는 입자의 크기 및 다양성에 영향을 받아요.

    때문에 토양 내 수분함량이 많으면 저항값이 작아지고, 수분함량이 적으면 저항값이 커집니다.

    이 원리를 이용하여,

    센서에서는 젖은 흙에 전기를 흘려보내 저항값을 측정하고,

    아두이노에서 이를 받아 우리가 보는 시리얼 모니터에 보여주게 되는 겁니다.

    그러나 토양 내 수분함량이 매우 많을 때는

    전기저항이 둔감하여 오차가 크다는 단점도 가지고 있습니다.

    그냥 물에 담근 것처럼 되니까요ㅎㅎ

    - - - - - - - - - -

    코드의 동작 알고리즘

    알고리즘은 쉬운 말로 ‘진행절차’라고 할 수 있습니다.

    코드가 어떻게 동작되는지 알아볼까요?

    이번 코드는 아주 단순한 절차를 가집니다.

    “읽는다.” → “출력한다.”

    읽기 위해서, pinMode 함수로 A0핀을 읽기 모드(INPUT)로 설정해 주었고

    출력을 위해, 시리얼통신의 println 함수를 이용해서 모니터창에 출력했어요.

    pinMode, println 함수가 이번 레시피 동작의 핵심이랍니다~

    만약 다른 센서를 사용하더라도,

    “센서의 값을 모니터에 출력하여 확인”하는

    이 ‘진행절차’는 크게 달라지지 않아요.

    - - - - - - - - - -

     

    센서요약 카드

    이름 : 토양 습도 센서
    설명 : 토양의 수분이 얼마큼 있는지 측정하는 센서이다. 수분이 얼마나 함량 되어 있는가에 따라서 그 값이 달라지며 수분이 많을 경우 값이 낮아지고, 수분이 적을 경우 값이 커진다.

    센서의 구성 : 센서는 토양에 직접 꽂는 전도성 부분과 전원부인 VCC(+), GND(-) 핀, 그리고 아날로그 데이터를 측정하는 A0, 디지털 데이터를 측정하는 D0로 구성되어 있다. 파란색 가변저항을 조절하면 센서의 민감도를 조정할 수 있다.
Designed by Tistory.