수경재배 주제별 자료/환경 제어

DWC 방식의 스마트 재배기; 프로그램 완성(2024.08.26)

플랜타트 2024. 8. 26. 06:16

DWC(Deep Water Culture) 방식으로 환경제어가 되는 재배기를 만들기 위해 프로그램을 개발했습니다. 


1. 재배기의 전체 구성

 

{DWC 방식의 스마트 수경재배기_2024-04-01.bmp}

 

2. 프로그램 개발 단계의 제어기

 

{DWC방식_controller_modified_2024-08-24.JPG}

 

프로그램을 개발하는 단계라서 큰 브레드보드에 회로를 연결했다. 실제 제어기로 사용할 때는 좀 더 콤팩트하게 해서 케이스에 넣어야 한다. (수위 센서를 연결하기 전에 찍은 사진이라 수위 센서는 사진에 없다.)

 

2. 프로그램 관련 목표

(1) 환경 제어 및 제어 정도

  • 빛 공급: LED ON/OFF 시각 설정. 시각은 NTP(Network Time Protocol) 적용
  • 공기 순환: 팬 사용. ON/OFF 시나, 속도는 팬을 연결 후에 보완 예정
  • 기온: 낮 기온과 밤 기온 적용. 쿨러와 히터 사용
  • 습도: 제습기 적용
  • 양액 공급: 양액용기에 수동으로 공급

 

(2) 환경 설정 방법: 와이파이를 통해 스마트폰으로

 

(3) 모니터링 대상: 스마트폰으로 모니터링 할 수 있는 항목

  • 재배기 내부의 온습도
  • 양액 부족 여부

 

(4) 환경 설정 대상

  • 낮 내부 온도 목표(min, max)
  • 밤 내부 온도 목표(min, max)
  • 내부 습도 목표(max)
  • 낮 시간, 밤 시간

 

3. 온습도 제어

T: 재배기 내부 기온
Tmin: T의 하한치
Tmax: T의 상한치
Ta: 외부 기온
H: 재배기 내부 습도
Hmin: H의 하한치
Hmax: H의 상한치
Ha: 외부 습도

 

  • 재배기 내부에 물이 많기 때문에 Hmin은 고려하지 않았다.
  • Tmin, Tmax은 낮/밤에 따라 값이 바뀐다.

 

4. 낮 기온과 밤 기온 적용

  1. NTP로 현재 시각을 받고, 설정한 LED ON/OFF 시각과 비교하여 LED ON/OFF를 결정한다. LED가 ON일 동안에 낮 기온을 적용하고, LED가 OFF일 동안에 밤 기온을 적용한다. 
  2. 어떤 이유로 LED ON 시각과 OFF 시각 사이에 자정(24:00 = 00:00)이 있는 시간대로 사용하게 되면 ON시각이 OFF시각보다 크게 된다. 이럴 경우에도 LED ON/OFF가 문제 없도록 했다.

 

5. 스마트폰이 IP 주소 기억하도록

재배기가 켜지면 OLED로 IP 주소를 알려준다. 처음에는 스마트폰 앱에 이 주소를 넣어 재배기와 접속한다. 넣어준 IP 주소는 스마트폰에 저장된다. 이후부터는 앱을 열면 자동으로 재배기에 연결된다. 혹시 WiFi 환경이 바뀌어 재배기의 IP 주소가 바뀌면 처음 접속하는 것처럼 하면 된다.

 

6. pin 부족 문제

LOLIN D1 mini(ESP8266)를 사용했다. 입력으로 온습도 센서 2개를 사용하고, 출력으로 릴레이 6개, OLED 1개를 사용하려고 하니 출력으로 사용할 핀이 부족했다. 아두이노 나노가 출력을 맡고, ESP8266과 시리얼 통신으로 해결했다.

 

7. 각 부위 설명

(1) OLED

 

{DWC방식_controller_OLED_modified_2024-08-24.JPG}

 

OLED에는 IP 주소, 현재 시각, 재배기 내부의 온습도를 표시하게 했다. 

 

(2) 아두이노 나노

 

{DWC방식_controller_arduino_modified_2024-08-24.JPG}

 

아두이노 나노 보드는 LOLIN 보드로부터 시리얼 통신으로 신호를 받아 해당 릴레이를 구동한다. 

 

(3) ESP8266(LOLIN 보드)

 

{DWC방식_controller_ESP8266_modified_2024-08-24.JPG}

 

ESP8266을 사용하는 LOLIN 보드이다. 다음의 기능을 한다.

  • NTP 시각을 받아서
    • 낮밤 시각과 비교하여 LED ON/OFF를 판단한다.
    • 현재 시각을 OLED에 디스플레이한다.
  • 온습도를 읽어
    • 히터, 쿨러, 제습기 ON/OFF를 판단한다.
    • 온습도를 OLED에 디스플레이한다.
    • 온습도를 휴대전화로 보낸다.
  • 수위를 읽어 스마트폰으로 알려준다.
  • 휴대전화에서 입력한 LED ON/OFF 시각을 받아서 저장한다.
  • 휴대전화에서 입력한 IP 주소를 받아서 저장한다.

 

(4) 릴레이

 

012
{DWC방식_controller_relay-1~3_modified_2024-08-24.JPG}

 

아두이노 보드로부터 신호를 받아 각 부품을 ON/OFF한다. 릴레이는 총 6개이다.

 

(5) 온습도 센서

 

01
{DWC방식_controller_TH meter(앞)_2024-08-24.JPG; DWC방식_controller_TH meter(뒤)_2024-08-24.JPG}

 

온습도 센서는 AM2302(일명 DHT-22)을 사용했다. 프로그램을 하는 단계라서 내부 온습도 센서와 외부 온습도 센서를 나란히 두었다. 테스트 할 때는 손으로 잡아 온도와 습도의 변화를 주었고, 온습도 상/하한치를 바꾸면서 조건대로 동작하는지 확인했다.

 

(6) 수위 센서

 

{정전용량 방식 수위 센서_modified_2024-09-02.JPG}

 

수위 센서는 비접촉식의 일종인 정전용량 방식을 사용했다. 용기 밖에 붙여서 수위를 측정할 수 있다. esp8266에 연결했다.

 

 

{DWC 방식의 스마트 수경재배기_수위 모니터링_2024-09-02.MOV}

 

수위 센서의 동작을 확인하는 모습이다. 정전용량식 수위 센서는 손으로 감싸 쥐면 물이 있는 것처럼 동작한다. 이 특징을 이용해서 esp8266이 수위를 받아서 스마트폰으로 보내는 것을 확인했다.

 

(7) 앱

 

01
{DWC방식_controller_icon_2024-08-24.jpg; DWC 방식의 스마트 수경재배기_앱_2024-09-02.jpg}

 

스마트폰을 캡춰한 것이다. 제일 아래에 있는 앱이다. 실행시키면 슬라이드 오른쪽 사진과 같이 화면이 나타난다.

 

{DWC 방식의 스마트 수경재배기_제어부_2024-09-02.MOV}

 

스마트폰의 앱을 열어 사용하는 모습이다. 온습도와 수위를 모니터링하고, LED ON/OFF 시각을 설정하는 모습을 볼 수 있다. LED ON 시각이 되면 제일 왼쪽 LED용 릴레이가 동작하는 것을 볼 수 있다. 

 


이상으로 DWC 방식의 수경재배기에 적용할 제어기의 프로그램 개발 결과를 소개했습니다.