본문 바로가기

IoT 자동화

아두이노로 만드는 수경재배 장치; 1. 아두이노 시작하기

 

아두이노로 만드는 수경재배 장치 목차

1. 아두이노 시작하기

2. 아두이노 IDE

3. 첫 번째 아두이노 개발

4. 온도, 습도계 v 1.0

5. 온도, 습도계 v 2.0

6. 조도계 (광센서)

7. 시간 지연 릴레이 (자동 스위치)

8. 와이파이 연결 (ESP 01) - 1

9. 와이파이 연결 (ESP 01) - 2

최근에 물가가 많이 올랐다. 건강 때문에 꼭 챙겨 먹는 야채와 과일 가격이 동시에 많이 올랐다. 그래서 이번에는 수경재배장치를 만들어 보기로 했다. 갑자기 개발자가 장치라니... 그래도 기왕이면 작업하는 내용을 기록하고 공유해 보기로 했다.

 

0. 아두이노 vs 라즈베리파이

몇 년 전에 아이가 다니는 컴퓨터 학원에서 아두이노를 사용하는 것을 본 적이 있어서 내가 동영상 재생이나 미니 서버로 많이 사용하고 있는 라즈베리파이와 비교해 봤다.

 

- 가격라즈베리파이가 50,000원선인데 반해 아두이노가 5000원선으로 1/10 수준이다.

- 라즈베리파이는 CPU성능을 높여 소비전력이 늘어나고 있는 추세인데 이전모델인 라즈베리파이 3 모델이 보통 400mA 전 후에 최대 3A이고, 아두이노의 소비전력은 보통 40mA 전 후를 사용하므로 최소 1/10, 최대는 1/70 수준이다.

- 최신 라즈베리파이 4 모델은 64bit 1.5 GHz ARM CPU로 쿼드코어에 8GB 메모리에 microSD카드를 저장장치로 사용해서 모델 3부터는 용량의 제한이 없으며 아두이노는 8bit 16 MHz의 코어분리되지 않는 CPU와 외부저장매체 접근은 기본 제공되지 않으며 32KB의 프로그램 영역과 2KB의 변수영역을 가지고 있다. 일반적인 성능은 라즈베리파이가 압승.

- 라즈베리파이 3 모델은 4개의 USB 2.0, 3는 1개의 micro USB, 1개의 HDMI, 100MB 랜포트와 블루투스 4.2, 2.4 GHz 싱글 또는 듀얼밴드 Wifi와 함께 GPIO male pin인터페이스를 제공하지만 아두이노랜포트나 Wifi 없이 1개의 USB B 인터페이스만을 제공하며 대신 6개의 아날로그 인터페이스를 위한 female pin, 14개의 디지털 인터페이스 female pin과 함께 3.3V, 5V연결 핀을 제공한다. 쉽게 말해 기본으로 브레드보드(빵판)에서 점퍼선으로 연결하기 쉽게 연결하고 테스트할 수 있게 되어 있다.

 

아두이노가 네트워크 연결이 아쉽긴 하지만 하루종일 켜 놓기 때문에 전기소모량이 적어 좋았고 개발분량이 센서 인터페이스를 위한 간단한 프로그램 정도이기 때문에 라즈베리파이보다는 좋은 선택으로 보인다. 만일 데이터를 모으고 처리하는 기능을 가지고 싶다면 보다 강력한 라즈베리파이가 더 좋아 보이는데... 식물재배를 위한 센서 인터페이스만을 목적으로 하기엔 너무 과한 듯하다. 그냥 아두이노로 하기로 했다.

 

아두이노 보드의 종류를 살펴보니 많이 쓰이는 우노(UNO)를 포함하여 Nano, Micro, Mini, Pro, Mega 등 많은 종류가 있고, 우노에 연결하여 Wifi기능을 제공하는 Wifi 쉴드, 랜포트를 제공하는 이더넷 쉴드, Zigbee기능을 제공하는 Xbee 쉴드 등 다양한 쉴드가 존재하는데, 쉴드는 구매하여 사용하거나 필요에 따라 브레드보드에 직접 구현하면 될 것으로 보인다.

 

일단 나는 가장 기본적인 아두이노 우노와 필요한 몇 가지 센서 모듈만을 구매했다.

 

1. 아두이노 구매하기

아두이노 우노를 사용해서 개발하려면 시중에 나와있는 키트를 사용해도 되지만, 내게는 불필요한 부품도 많고 정작 필요한 부품은 없어 아래 부품을 개별적으로 구매했다. 중국이 저렴하기 때문에 알리익스프레스를 이용했는데 저렴하지만 배송시간이 오래 걸리는 단점은 있다.

  • 아두이노 우노 (정품이 아닌 저렴한 clone제품도 잘 동작함) + USB B 케이블

  • 한 번에 여러 모듈을 테스트를 할 수 있는 MB102 브레드보드

  • 편하게 테스트할 수 있는 프로토타입 쉴드

  • 점프선 male to male, male to female이 각각 10cm (프로토타입 쉴드에 적합), 15cm (브레드 보드와의 연결에 적합)

  • DHT11, DHT22 습도 센서 모듈 (둘 다 저렴한데, 정밀도와 속도 차이가 있어 테스트하려고 구매)

  • BH1750 또는 호환 광센서

  • ESP-01 Wifi 모듈과 어댑터 (어댑터가 없으면 male to female 점프선을 이용해서 연결)

  • lcd 1602 (수경재배 장치의 상태 확인)

  • 저항 1 set (1K, 2K, 220 옴 등이 필요)

  •  
  • 4 relay 모듈 (제어하고자 하는 스위치만큼 있는 relay 구매, 당장은 수중모터, LED, 환기팬, 전기히터 정도?)

이 외에도

  • 12V 10W DC 수중모터 (1m 이상으로 물을 올려야 할 일이 없을 것 같아 10W, 더 높은 W이면 더 높은 곳으로 물을 옮길 수 있고, 더 빠르게 옮길 수 있음)
  • LED 스트립과 전원 (햇볕이 많이 드는 베란다는 필요 없음)
  • 탄소섬유 난방 케이블 (겨울철만 아니면 꼭 필요하지는 않음)

등을 구매했다.

 

꼭 필요하지는 않지만 없으면 답답한 도구가

  • 전기인두 세트 (필요한 부분만 구매해도 무방할 듯)

  • 멀티미터 (가장 기본적인 디버깅 도구)

가 있는데 나는 예전에 집 내부에 전기공사할 때 구매했던 것을 사용했다. 요즘은 기능을 전환할 때 사용하는 로터리 스위치도 없고 연결단자를 바꾸지 않아도 되는 완전 전자식 멀티미터도 저렴한 가격으로 구매가 가능하다.

 

원래는 React, NextJS 사용방법을 먼저 올리려고 했는데, 수경 재배기 만드는 것이 재미있어 보여 아두이노 글을 먼저 올리게 되었다. 조만간에 NextJS글도 올릴 예정이다.

 

다음 글에서는 센서를 본격적으로 연결하기에 앞서, 아두이노 IDE와 아두이노 우노 보드를 연결하고 개발하는 방법과 LED를 켜고 끄고 밝기를 조절하는 기본적인 기능에 대해 기록하려고 한다.