반응형

얼마뒤면 베트남으로 가족 여행을 떠날 예정입니다. 7박이나 하고 올 예정이므로 집을 비우기 전 준비해야 할 것들이 많습니다. 이것저것 여행준비를 하던 찰나 베란다에 내어 둔 화분이 걱정이 되었습니다. 출발하기 전에 물을 듬뿍 주고 간들 요즘처럼 더운 날씨에 화분이 마르는건 금방이지요. 아마 이틀이면 마르지 않을까 싶습니다. 7일뒤에 돌아왔을때 딸내미가 애지중지 물을 주던 나팔꽃이 매말라 버릴까 걱정이 되었습니다. 그래서 부랴부랴 있는 부품을 찾아 모아 간단하게 자동으로 물을 주는 시스템을 만들어 보았습니다.

뎃글, 공감 은 블로그 작성자에게 큰 힘이 된답니다. 
도움이 되었다 생각되시면 클릭!!  부탁드려요~

 

 

제 작업실에서 주워 모은 부품은 아래와 같습니다.

 

사용된 부품 리스트

토양 수분 측정 센서 

초소형 DC 모터 펌프 (3V)

아두이노 나노

drv8833 DC 모터 드라이버

링거 줄 

T 형 분배 소켓

소형 방열판 (전자제품 분해하면서 떼어냈던 것)

대형 식초 병 (코스트코에서 샀던 식초, 4L )

 

화분 물주기 시스템을 만들기 위하여 필요한 부품들

 

집에 이런것들이 왜 있나 싶지만 저처럼 DIY 를 좋아하는 사람이라면 알리익스프레스 눈팅하면서 하나둘 사모은 부품들이 있게 마련입니다. 토양 수분 측정 센서는 수위 센서라고도 하는데 언젠가 한번은 사용하겠지 싶어 사두었고 DC 모터 펌프는 물고기 수조에 공기 공급을 위하여 구입했던 부품이었습니다. DRV8833 모터 드라이버가 좀 특이한데 RC 카 만들어 보겠다면서 구입했던 보드였습니다. 

 

원리는 간단합니다.

 

토양 수분 센서를 통해 토양의 습도를 측정한뒤 일정 값 미만으로 내려가게 되면 아두이노는 DC 모터드라이버로 모터를 동작시키도록 신호를 보냅니다. 모터가 동작되면 펌프는 물을 끌어올려 화분에 뿌리게 됩니다. 화분의 흙이 일정 수준 이상 젖게 되면 센서 값에 의해 모터가 멈추게 되는 방식 입니다. 

 

이렇게 해두면 며칠을 비워도 문제가 없을 것입니다. 물론 물통이 4L 이므로 그 물이 다 소진될때 까지 비우면 안되겠지만요.

 

배선은 아래와 같이 하면 됩니다.

 

토양 수분 센서

  • GND : GND
  • VCC : VCC (5V)
  • AO : 아두이노 A0 핀
  • DO : 연결 안함

 

DRV8833

  • GND : GND
  • VCC : VCC (5V)
  • IN1 : 아두이노 9번 핀 (PWM 이 출력되지요)
  • IN2 : GND (코드에서는 10번에 연결하는것이 맞지만 최종 적으로 한쪽 방향으로만 돌릴꺼라서 그냥 GND 에 연결)
  • OUT1 : motor +
  • OUT2 : motor -

그림은 나중에 다시 올리도록 하겠습니다.

 

 

 

먼저 간단하게 아두이노 코드를 작성해 보았습니다. 별도의 라이브러리 없이 간단히 작성이 가능합니다.

 

int soilPin = A0;


void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);

  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
    int value = analogRead(soilPin);

    if (value > 800)
    {
      analogWrite(9, 128);
      digitalWrite(10, LOW);
    }else{
      digitalWrite(9, LOW);
      digitalWrite(10, LOW);
    
    }
    
    Serial.print("read sensor value : ");
    Serial.println(value);

    delay(600000); // 10분에 한번 체크하는 것으로 수정하였습니다.
}

토양 센서로 부터 받는 신호는 A0 번 핀을 통해 전달받으며 코드상에서는 analogRead 라는 명령어로 입력 받습니다. 테스트를 해보니 해당 센서는 흙속의 수분에 의해 전기 전도가 이루어 지고 이 정도를 파악하는 센서인데요. 공기중에 노출시킨상태, 즉 토양이 완전히 마른상태에서는 1023 의 값을 출력하고요, 물에 담갔을 때, 즉 완전히 젖은 상태에서는 200 미만의 값이 출력이 되는 것을 확인하였습니다. (아마 물 속의 전해질의 농도에 따라서 최소 값은 차이가 있을 것 같았습니다)

 

저는 완전히 마를때 까지 둘 것이 아니었으므로 800 이라는 값보다 커지게 되면 모터를 동작하도록 한 것이죠.

 

DRV8833 으로는 PWM 신호를 보내서 모터의 속도를 제어할 수 있습니다. 두개의 모터를 각각 제어할 수 있는데요 IN1, IN2 를 통해 하나의 모터를, IN3 IN4 를 통해 다른 하나의 모터를 제어할 수 있습니다. 4개의 모터에 대하여 정방향, 역방향으로 각각 속도를 제어하기 위하여는 4개의 PWM 이 필요한데 만약 저처럼 단방향으로만 제어한다면 모터당 1개의 PWM 만 있으면됩니다.

 

IN1 : PWM / IN2 : GND --> 정방향 회전 (속도는 PWM에 따라)

IN1 : GND / IN2 : PWM --> 역방향 회전 (속도는 PWM에 따라)

IN1 : GND / IN2 : GND --> 정지

 

이런식으로 제어를 하시면 되겠습니다. 

 

위에 코드를 보시면 하나의 핀을 PWM 출력도 하고 GND 로 하기도 하는 코드가 있습니다.

 

저는 5V 를 전원으로 사용하고 모터의 정격 전압이 3V 이므로 PWM 은 안전빵으로 128을 출력하였습니다. 실제 모터에 몇 V 가 인가되는지는 확인하지는 않았으나 별다른 무리 없이 잘 동작 되었습니다.

참고로 DRV8833 으로 입력하는 전원은 모터가 워낙 작고 저전력을 사용하므로 그냥 아두이노의 5V 출력을 이용했습니다. (참고로 모터 구동은 왠만하면 별도의 전원을 사용하는 것이 좋고 노이즈 차단을 해주는 것도 좋습니다)

 

 

그럼 설치가 완료된 사진을 보시겠습니다

 

물주기 시스템 장착된 작은 화분, 나팔꽃과 수박, 참외가 자라고 있다.

 

알리익스프레스에서 2000 원 정도 주고 구입한 작은 펌프. N20 모터가 달려있다.

동작해보니 모터에서 열이 조금 나는 것이 느껴져 방열판을 하나 달아 주었습니다. 버리는 전자제품을 뜯어 보면 저런 방열판이 흔히 발견되므로 보는 족족 적출하여 보관하는 습관을 가집시다.

 

토양 수분 센서를 화분에 꼽아 주었다.
좌측이 아두이노 나노, 가운데가 DRV8833, 우측은 토양 수분 센서와 연결된 보드
전체 모습이다. 좀 지저분 하지만 1주일 뒤에 철거 할 예정이므로 적당히...

이렇게 해서 설치가 모두 완료 되었습니다. 내일 모레 출발 전에 물은 다시 한통 가득 채워놓을 예정입니다.

설치된 모습이 좀 지저분 하기는 하지만 1주일 뒤 귀국하면 다시 치울 예정이므로 적당히 저렇게 두기로 합니다. 물도 물이지만 18650 배터리 2개를 직렬로 연결하여 두었는데 과연 1주일을 버틸지는 의문입니다. 내일이라도 아답터를 연결해 놓는것이 좋을까요... 

 

암튼 아주 간단하게 자동으로 화분이 마르지 않도록 물을 주는 시스템을 만들어 보았습니다.

 

사실 시골에서 밭농사라도 한다면 밭의 수분 측정 및 자동으로 물 주는 시스템은 요긴하게 사용될수 있는 시스템입니다. 작은 태양광 전지, NRF24L01 같은 무선 송수신 장치, 스프링클러 등을 이용하면 시골의 밭에서 자동으로 경작지에 물을 줄 수 있는 시스템을 손쉽게 만들 수 있을 것 입니다. 간단한 노력으로 쓸모있는 스마트 팜을 만들어 가실 수 있는 것이죠.

 

이상 자동으로 화분에 물주기 장치 만들기였습니다.

 

뎃글, 공감 은 블로그 작성자에게 큰 힘이 된답니다. 
도움이 되었다 생각되시면 클릭!!  부탁드려요~

 

 

궁금하신 것은 뎃글로~ 재밌으셨거나 도움이 되셨으면 공감 부탁드립니다.

 

이 시스템은 이후 수경재배용 장치를 만드는데 거의 동일하게 사용되었습니다.

https://diy-dev-design.tistory.com/60

 

[DIY] 아두이노를 이용한 수경재배 시스템

아두이노는 정말 놀라운 하드웨어가 아닐수 없죠. 우리가 생각하는 이런건 자동으로 해주는거 없나? 이런게 자동으로 되면 좋을텐데... 이런걸 왜 자동으로 안하는거야?? 같은 대부분의 자동화 장치, 기계장치를..

diy-dev-design.tistory.com

 

20191206 내용 추가

저와 동일한 센서 또는 유사한 센서를 이용하시는 분들께 안내 말씀을 드립니다.

해당 센서를 이용하였을 경우 센서의 표면의 부식이 상당히 빠르게 진행이 됩니다. 진작에 올렸어야 하는데 깜박하고 있었네요. 

아마 한쪽 핀에서 다른쪽 핀으로 전기 신호를 보내서 도착하는 전류량을 측정하는 듯한데요. 이런 과정에서 금속 표면이 부식이 되는 문제가 있었습니다. 제 생각으로는 센서로 보내는 신호를 상시 측정 하지 마시고 한시간에 한번 또는 하루에 한번 정도씩 측정 주기를 늘려주어 절대적인 전류 측정 시간을 줄여주는 것이 좋을 것 같습니다.

토양의 수분이 매순간 측정해야 할 만큼 빠르게 변하는 요소는 아니기에 측정의 인터벌을 길게 잡아주면 센서의 부식을 막고 좀더 오래 사용이 가능할 것으로 판단 됩니다.

 

 

 

자동으로 텃밭(화단) 물주기 장치

여러분들 집에는 작은 텃밭 하나씩 있으신가요? 저는 없습니다만 처갓집에는 작은 비닐 하우스와 텃밭이 있습니다. 요즘처럼 날씨가 가물거나 하우스 안에 텃밭을 가지고 계신 분들은 매일매일

diy-dev-design.tistory.com

 

 

[DIY] micro:bit - 병아리 부화기 만들어 보기 (초딩도 가능)

딸내미 : "아빠! 할머니 집에서 가져오는 계란은 유정란이야?" 나 : "그럼~. 암탉도 있고 수탉도 있으니 유정란이겠지?" 딸내미 : "그럼 내가 저거 품으면 병아리가 나오는 거야?" 나 : "흠... 아니....

diy-dev-design.tistory.com

 

 

0.96 inch OLED 디스플레이 구동하기

가끔 아두이노로 무엇인가를 만들어 보려고 하다보면 디스플레이가 있으면 하는 생각이 들때가 있습니다. 아두이노는 작은 컴퓨터이기는 하지만 모름지기 컴퓨터라 한다면 입력장치 - 중앙처��

diy-dev-design.tistory.com

 

 

미니 테슬라코일 만들기 - 알리 DIY KIT

어렸을적 위대한 발명가, 과학자 하면 단연 손꼽는 일인자가 있었는데 누군가 물어본다면 100 이면 100 다 토마스 에디슨을 떠올릴 것입니다.. 그런데 커보니 에디슨은 발명가나 과학자라기보다��

diy-dev-design.tistory.com

 

 

Arduino(아두이노) 무작정 시작하기

아두이노, Arduino 여기저기서 많이 들었을 겁니다. 이걸 해야 된다는 말이 귀에 못이 박히도록 이야기 합니다. 대충 뭔지는 알겠는데 개발자도 아닌 내가 과연 이걸로 뭘 할 수 있을까 싶기도 하��

diy-dev-design.tistory.com

 

 

C# 에서 아두이노로 시리얼 통신 하기

카테고리를 c# 으로 해야 할지 Arduino 로 해야할지 조금 고민이 되는 포스트 입니다. 음.... arduino 로 하는게 좋겠네요. 따지고 보면 C# 으로 만든 어플이 중요한게 아니라 아두에노에서 시리얼 통신

diy-dev-design.tistory.com

2019/11/10 - [DIY/Arduino] - [DIY] 아두이노로 만능 (통합) 리모콘 만들기 1/3

2019/11/10 - [DIY/Arduino] - [DIY] 아두이노로 통합(만능) 리모콘 만들기 2/3

2020/06/17 - [DIY/Arduino] - [DIY] 아두이노로 통합(만능) 리모콘 만들기 3/3

반응형

+ Recent posts