산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

아두이노 기반 스마트 실내 정원 - 자동화된 식물 관리 시스템

부품 및 소모품

아두이노 나노 R3 1개
mbientLab 블루투스-USB 동글 1개
JLCPCB 커스텀 PCB 1개

프로젝트 소개

아두이노 기반 스마트 실내 정원 - 자동화된 식물 관리 시스템

현대적 가드닝은 전자, 비트, 바이트로 일을 더 복잡하고 어렵게 만드는 과정입니다. 마이크로컨트롤러와 가드닝의 결합은 매우 인기 있는 아이디어입니다. 정원은 입력과 출력이 매우 단순해 이해하기 쉽기 때문일 것입니다. 저를 포함한 많은 사람들이 본질적으로 단순하고 편안한 취미를 굳이 복잡하게 만들고 싶어 하는 것 같습니다.

이 프로젝트에서는 아두이노 개발 보드를 사용한 더 간단한 버전의 실내 정원 제작 방법을 보여드리겠습니다.

하드웨어와 소프트웨어 모두 상세히 설명하여 전자 제작 입문자도 쉽게 따라 할 수 있도록 구성했습니다. JLCPCB에서 주문한 커스텀 PCB 덕분에 외관이 깔끔해졌고, 자동 정원 시스템을 직접 만들 수 있는 충분한 문서와 코드를 제공합니다.

단 7일 만에 완성했습니다. 하드웨어 제작과 조립 3일, 코드와 안드로이드 앱 준비 4일로 블루투스를 통한 제어가 가능합니다. 시작하기 전 기초 지식부터 살펴보겠습니다.

이 튜토리얼에서 배울 내용

1단계: 실내 정원이란?

아두이노 기반 스마트 실내 정원 - 자동화된 식물 관리 시스템
아두이노 기반 스마트 실내 정원 - 자동화된 식물 관리 시스템

대부분의 식물은 단순한 요구사항을 가집니다. 손님으로 치면 그리 까다롭지 않습니다. 식물을 집으로 들이기 전 이해해야 할 세 가지 기본 요소는 빛, 물, 공기입니다. 이 네 가지 요소를 마스터하면(원문은 네 가지라 했지만 세 가지 나열됨) 세계 어디든, 어떤 계절이든 실내 정원을 만들 수 있습니다.

아두이노 기반 시스템으로 식물 주변의 온습도를 감시하고, 조도·물·신선한 공기를 자동으로 공급하겠습니다. 이를 위해 센서로 데이터를 수집하고 액추에이터를 제어합니다. 예를 들어 조도 센서 신호로 LED 밝기 제어, 토양 수분 센서로 워터 펌프 온오프, 온습도 센서로 12V DC 팬 제어 등을 수행합니다.

2단계: 센서와 액추에이터

아두이노 기반 스마트 실내 정원 - 자동화된 식물 관리 시스템
아두이노 기반 스마트 실내 정원 - 자동화된 식물 관리 시스템
아두이노 기반 스마트 실내 정원 - 자동화된 식물 관리 시스템
아두이노 기반 스마트 실내 정원 - 자동화된 식물 관리 시스템
아두이노 기반 스마트 실내 정원 - 자동화된 식물 관리 시스템
아두이노 기반 스마트 실내 정원 - 자동화된 식물 관리 시스템

식물 주변의 물리적 데이터에 접근해 무엇이, 언제 필요한지 판단하기 위해 여러 센서와 액추에이터를 하나의 아두이노 보드에 연결합니다.

센서

액추에이터

3단계: PCB 제작 (JLCPCB 생산)

아두이노 기반 스마트 실내 정원 - 자동화된 식물 관리 시스템
아두이노 기반 스마트 실내 정원 - 자동화된 식물 관리 시스템
아두이노 기반 스마트 실내 정원 - 자동화된 식물 관리 시스템
아두이노 기반 스마트 실내 정원 - 자동화된 식물 관리 시스템
아두이노 기반 스마트 실내 정원 - 자동화된 식물 관리 시스템

JLCPCB 소개

JLCPCB(심천 JIALICHUANG 전자 기술 개발 유한공사)는 중국 최대 PCB 프로토타입 기업이자 퀵턴 프로토타입 및 소량 생산 전문 하이테크 제조사입니다. 10년 이상 경력, 20만+ 고객, 일일 8,000+ 온라인 주문 처리, 연간 20만 m² 생산 능력(1/2/다층 PCB)을 갖춘 대규모, 설비 우수, 엄격 관리, 고품질 전문 제조사입니다.

프로젝트 적용

여러 PCB 업체 가격을 비교해 JLCPCB를 최적의 공급처로 선정했습니다. 거버 파일 업로드, 두께/색상/수량 등 파라미터 설정, 단 2달러 결제로 3일 만에 수령했습니다. 무료 배송 이벤트도 수시로 진행됩니다.

회로도(PDF) 파일은 여기에서 다운로드 가능합니다.

사진에서 보듯 PCB 품질이 우수하고, 설계한 잎사귀 형태 그대로 제작되었으며 모든 라벨과 로고가 납땜 가이드로 잘 표시되어 있습니다.

4단계: 부품 리스트

아두이노 기반 스마트 실내 정원 - 자동화된 식물 관리 시스템

필요 부품과 온라인 구매 링크:

5단계: 조립

아두이노 기반 스마트 실내 정원 - 자동화된 식물 관리 시스템
아두이노 기반 스마트 실내 정원 - 자동화된 식물 관리 시스템
아두이노 기반 스마트 실내 정원 - 자동화된 식물 관리 시스템
아두이노 기반 스마트 실내 정원 - 자동화된 식물 관리 시스템
아두이노 기반 스마트 실내 정원 - 자동화된 식물 관리 시스템
아두이노 기반 스마트 실내 정원 - 자동화된 식물 관리 시스템

전체 9개 항목 보기

이제 납땜을 시작합니다. 라벨을 따라 실수 없이 작업하세요. 아두이노 커넥터부터 납땜해 전원 테스트하고, 각 센서(조도 센서 등)와 LED 기본 테스트 코드로 연결 확인하세요.

팁: 납땜 인두 팁은 항상 깨끗하게 유지하세요. 매번 스펀지로 닦아 팁이 깨끗하고 반짝이게 하세요. 플럭스나 산화로 더러워지면 즉시 닦으세요. 납땜 중이라도 마찬가지입니다. 깨끗한 팁이 열전달을 훨씬 잘합니다.

JLCPCB에서 주문한 PCB 덕분에 모든 부품이 정확한 위치에 배치되어 납땜 실수 없이 진행할 수 있습니다. PCB 설계 파일 보기 및 주문

양면 모두 부품 실장 가능합니다. 모든 부품 납땜 완료 후, 전자 부품과 식물을 하나의 받침대에 통합하기 위해 CNC 레이저 커팅 설계를 준비했습니다. 같은 디자인을 원하시면 DXF 파일을 확인하세요.

6단계: 안드로이드 앱

아두이노 기반 스마트 실내 정원 - 자동화된 식물 관리 시스템
아두이노 기반 스마트 실내 정원 - 자동화된 식물 관리 시스템
아두이노 기반 스마트 실내 정원 - 자동화된 식물 관리 시스템

이 앱으로 아두이노와 블루투스 연결 후 수동 모드에서 팬, 조명, 워터 펌프를 개별 ON/OFF 제어할 수 있습니다. '데이터 가져오기' 버튼으로 센서 값도 스마트폰 화면에 표시됩니다.

안드로이드 앱 무료 다운로드: 링크

7단계: 아두이노 코드 및 테스트 검증

아두이노 기반 스마트 실내 정원 - 자동화된 식물 관리 시스템
아두이노 기반 스마트 실내 정원 - 자동화된 식물 관리 시스템
아두이노 기반 스마트 실내 정원 - 자동화된 식물 관리 시스템
아두이노 기반 스마트 실내 정원 - 자동화된 식물 관리 시스템
아두이노 기반 스마트 실내 정원 - 자동화된 식물 관리 시스템

코드는 여기에서 다운로드 가능합니다. 주석이 잘 달려 있어 직접 이해하실 수 있습니다.

각 버튼마다 기능이 있지만 특히 조도 자동 제어 모드가 인상적입니다. 조도 센서를 하단에 배치하고 이 모드 선택 시 센서 신호에 따라 전면 LED 밝기를 자동 조절합니다. 온습도 값도 스마트폰 화면에서 직접 확인 가능해 매우 편리합니다.

아두이노 소스 코드

/************************************************************************************************************************************************************************ 
 * - Author : BELKHIR Mohamed 
 * - Profession : (Developer) MEGA DAS owner 
 * - Main purpose : Industrial Application 
 * - Copyright (c) holder : All rights reserved 
 * - License : BSD 2-Clause License 
 * - Date : 20/11/2017 
 ***********************************************************************************************************************************************************************/ 

#include "DHT.h"
#include 
#include 

const int Pump = 4;
const int Fan = 5;
const int Light = 6;
const int TempHum = 7;
const int Moisture = 8;
const int TestLED = 9;
const int Brightness = 12;
const int analogMoistue = 0;

#define DHTTYPE DHT11
DHT dht(TempHum, DHTTYPE);
BH1750 lightMeter;

char Data = 'x';
String cmd = "";
int flagModeAuto = 0;
int sprayCMD = 0;
int LightCMD = 0;
int lightLevelPlus = 0;
float temperature = 0;
float humidity = 0;
uint16_t lux = 0;

void setup() {
  Wire.begin();
  dht.begin();
  lightMeter.begin();
  Serial.begin(9600);
  Serial.setTimeout(100);
  pinMode(Pump, OUTPUT);
  pinMode(Fan, OUTPUT);
  pinMode(Light, OUTPUT);
  pinMode(Moisture, INPUT);
  pinMode(TestLED, INPUT);
  delay(1000);
  digitalWrite(Pump, LOW);
  digitalWrite(Fan, LOW);
  digitalWrite(Light, LOW);
}

void loop() {
  while (Serial.available()) {
    delay(10);
    Data = Serial.read();
    cmd += Data;
  }
  
  if (cmd == "dt") { Serial.print(humidity); }
  if (cmd == "dh") { Serial.print(lux); }
  if (cmd == "db") { Serial.print(temperature); }
  if (cmd == "o") { flagModeAuto = 1; }
  if (cmd == "m") { flagModeAuto = 0; }
  
  if (flagModeAuto == 1) {
    autoPump();
    lightBrightness();
    autoFan();
  }
  if (flagModeAuto == 0) {
    if (cmd == "f") { analogWrite(Fan, 255); }
    if (cmd == "x") { analogWrite(Fan, 0); }
    if (cmd == "l") { analogWrite(Light, 255); }
    if (cmd == "k") { analogWrite(Light, 0); }
    if (cmd == "w") { analogWrite(Pump, 255); }
    if (cmd == "y") { analogWrite(Pump, 0); }
  }
  
  cmd = "";
  lux = lightMeter.readLightLevel();
  temperature = dht.readTemperature();
  humidity = dht.readHumidity();
}

void autoPump() {
  if (analogRead(analogMoistue) < sprayCMD) {
    digitalWrite(Pump, HIGH);
    delay(1000);
    digitalWrite(Pump, LOW);
    delay(1000);
  }
}

void lightBrightness() {
  while (lux < LightCMD) {
    analogWrite(Light, lightLevelPlus);
    delay(100);
    lightLevelPlus++;
    lux = lightMeter.readLightLevel();
  }
}

void autoFan() {
  if (temperature > 30) {
    analogWrite(Fan, 255);
  } else {
    analogWrite(Fan, 0);
  }
}

커스텀 파트 및 인클로저

dxf_mdf_5mm_s0PEHuez4w.rar

회로도

회로도 파일은 별도 제공됩니다.

제조공정

  1. 아두이노로 모니터 앰비라이트(Ambilight) 시스템 직접 만들기
  2. 아두이노 우노와 OLED 디스플레이로 클래식 퐁(Pong) 게임 만들기: 단계별 튜토리얼
  3. 아두이노 오디오 주파수 감지기 - 고감도 사운드 모듈로 최대 음량 피크 주파수 측정
  4. 직접 만드는 아두이노 다마고치: 디지털 펫 DIY 프로젝트
  5. 스마트 무선 조명 스위치 컨트롤러: 아두이노 기반 원격 스위치 조작기
  6. 아두이노 틱택토 게임 - MAX7219 LED 매트릭스와 골판지 케이스
  7. 아두이노 나노로 만든 스마트 모션 감지 물총
  8. 스파크펀 7-세그먼트 디스플레이로 신뢰할 수 있는 아두이노 카운트다운 타이머 만들기
  9. 아두이노 해바라기: 태양을 추적하는 전자 해바라기 만들기
  10. 아두이노 프로젝트를 위한 스마트 실내 내비게이션 로봇 키트