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

Arduino 실내 정원

구성품 및 소모품

Arduino Nano R3
× 1
mbientLab 블루투스-USB 동글
× 1
JLCPCB 맞춤형 PCB
× 1

이 프로젝트 정보

현대의 원예는 전자, 비트 및 바이트를 사용하여 일을 더 복잡하고 힘들게 만드는 것을 의미합니다. 마이크로컨트롤러와 원예를 결합하는 것은 정말 인기 있는 아이디어입니다. 정원에는 머리를 감쌀 수 있는 매우 간단한 입력과 출력이 있기 때문이라고 생각합니다. 제 생각에 사람들(저를 포함)은 악명 높은 단순하고 편안한 취미를 보고 너무 복잡하게 생각하지 않을 수 없습니다.

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

나는 당신의 아름다운 정원을 만드는 방법을 보여주기 위해 완전한 단계별 지침을 제공하고 있으며 이 지침을 가장 간단하게 시도할 수 있는 방법으로 전환하기 위해 하드웨어와 소프트웨어 부분 모두를 자세히 설명하고 있습니다. 전자 제작에 대한 자신의 기술. 이 프로젝트는 우리 차의 외관을 개선하기 위해 JLCPCB에서 주문한 맞춤형 PCB를 얻은 후 특별히 만들기에 매우 편리합니다. 또한 이 가이드에는 자동 정원 시스템을 만들 수 있는 충분한 문서와 코드가 있습니다.

단 7일 만에 이 프로젝트를 만들었습니다. 하드웨어 제작과 조립을 마치는 데 3일, 코드와 안드로이드 앱을 준비하는 데 4일이 걸렸습니다. 그것을 통해 정원을 제어하기 위해. 시작하기 전에 먼저 살펴보겠습니다.

이 튜토리얼에서 배울 내용:

<울>
  • 프로젝트 기능에 따라 올바른 구성요소 선택
  • <울>
  • 선택한 모든 구성 요소를 연결하는 회로 만들기
  • <울>
  • 모든 프로젝트 부품을 조립하고 테스트 시작
  • <울>
  • Android 앱 사용. Bluetooth를 통해 연결하고 시스템 조작 시작
  • 1단계:실내 정원이란 무엇입니까!

    대부분의 식물에는 간단한 요구 사항이 있습니다. 손님이 가면 상대적으로 까다롭습니다. 식물을 집에 초대하기로 결정하기 전에 이해해야 할 기본 사항은 빛, 물, 공기의 세 가지뿐입니다. 식물의 관점에서 이 4가지 요소를 마스터할 수 있다면 전 세계 어디에서나 일년 중 어느 계절에도 실내 정원을 만들 수 있습니다.

    <울>
  • - 대부분의 정원 식물은 하루에 최소 6시간의 빛이 필요합니다. 하지만 빛이 좋아야 합니다. 창 앞에 손을 대고 그림자를 드리우지 않는다면 대부분의 식물이 행복한 삶을 살기에 빛이 충분하지 않을 가능성이 있습니다. 그러나 항상 조명을 키우는 것으로 저조도 조건을 보완할 수 있습니다. 집에 적당한 자연광이 있고 특별한 조명으로 소란을 피우고 싶지 않다면 일반적으로 저조도 조건이 필요한 식물을 키우거나 정원을 다른 곳으로 옮기십시오. 햇볕이 잘 드는 창턱.
  • <울>
  • - 식물은 원래 서식지와 유사한 조건이 필요합니다. 사막의 고향이라고 부르는 식물은 습지에 사는 식물보다 물을 덜 자주 주어야 합니다. 식물이 어떤 물 상태를 선호하는지 아는 것은 성공적인 실내 정원을 유지하기 위한 좋은 첫 번째 단계입니다. 식물 자체가 종종 단서를 줄 것이기 때문에 생각보다 쉽습니다. 두꺼운 고무 같은 잎을 가진 식물은 물 저장고이며 일반적으로 얇고 섬세한 잎을 가진 식물보다 적은 양의 물로 생존할 수 있습니다. 식물에 물을 주는 것이 싫다면 적은 양으로 잘 자랄 수 있는 품종을 선택하거나 물을 주는 일을 줄이기 위해 숨겨진 저수지가 있는 화분을 선택하십시오.
  • <울>
  • 항공 - 식물은 광합성의 부산물로 산소를 생성하고 잎을 통해 가정 환경에서 포름알데히드와 같은 불쾌한 가스를 걸러냅니다. 식물을 건강하게 유지하려면 잎을 깨끗하게 유지하고 주변 공기를 움직이고 촉촉하게 유지해야 합니다. 이렇게 하려면 공기가 잘 통하는 곳에 두거나 작은 선풍기를 제공하면 됩니다.
  • 나는 Arduino 기반 시스템을 만들어 식물의 온도 및 습도 상태를 감독하고 광도, 물, 순수한 신선한 공기와 같은 필요한 요구 사항을 자동으로 제공할 것입니다. 이를 위해서는 일부 액추에이터를 제어하기 위한 센서가 필요합니다. 예를 들어 광도 센서에서 수신된 신호에 따라 광도를 제어합니다. 물주기와 동일 .

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

    이 시스템을 만드는 것은 공장 주변의 물리적 데이터에 액세스하고 공장에서 어떤 것을 요청하고 언제 공급해야 하는지 찾을 수 있도록 일부 센서와 액추에이터를 조립하는 것입니다.

    이것이 하나의 Arduino 보드에 연결된 일부 센서와 액추에이터를 사용해야 하는 이유입니다.

    센서

    <울>
  • 조도 센서 BH1750 :BH1750FVI는 I2C 버스 인터페이스용 디지털 조도 센서 IC인 디지털 조도 센서입니다. 이 IC는 휴대폰의 LCD 및 키패드 백라이트 전원을 조정하기 위한 주변광 데이터를 얻는 데 가장 적합합니다. 고해상도( 1 - 65535 lx )에서 넓은 범위를 감지할 수 있습니다.
  • <울>
  • 토양 수분 센서 :두 접점 사이의 토양 매트릭스에 걸쳐 저항 또는 전도도를 측정하는 수분 센서는 본질적으로 쓰레기입니다. 우선, 저항은 토양 pH, 물에 용해된 고형물 및 온도를 포함하여 정원마다 다를 수 있는 여러 요인에 크게 의존하기 때문에 수분 함량의 좋은 지표가 아닙니다. 둘째, 그들 대부분은 쉽게 부식되는 접점으로 품질이 좋지 않습니다. 대부분의 경우 한 시즌을 통해 지속되는 하나를 얻는 것은 운이 좋을 것입니다.
  • <울>
  • 온습도 센서 :DHT11은 기본형 초저가 디지털 온습도 센서입니다. 용량성 습도 센서와 서미스터를 사용하여 주변 공기를 측정하고 데이터 핀에 디지털 신호를 내보냅니다(아날로그 입력 핀 필요 없음). 사용은 매우 간단하지만 데이터를 가져오려면 신중한 타이밍이 필요합니다. 이 센서의 유일한 단점은 2초에 한 번만 새 데이터를 얻을 수 있다는 점입니다. 따라서 라이브러리를 사용할 때 센서 판독값은 최대 2초가 될 수 있습니다.
  • 액추에이터

    <울>
  • 백색 LED :발광 다이오드(LED)는 2리드 반도체 광원입니다. 활성화되면 빛을 방출하는 pn 접합 다이오드입니다.[5] 리드에 적절한 전압이 가해지면 전자가 장치 내의 전자 정공과 재결합하여 광자의 형태로 에너지를 방출할 수 있습니다.
  • <울>
  • 워터 펌프:펌프는 기계적 작용에 의해 유체(액체 또는 기체) 또는 때로 슬러리를 이동시키는 장치입니다. 펌프는 유체를 이동하는 데 사용하는 방법에 따라 직접 양력, 변위 및 중력 펌프의 세 가지 주요 그룹으로 분류할 수 있습니다. 펌프는 일부 메커니즘(일반적으로 왕복 또는 회전)으로 작동하고 에너지를 소모하여 이동하여 기계적 작업을 수행합니다. 체액. 펌프는 수동 작동, 전기, 엔진 또는 풍력을 비롯한 다양한 에너지원을 통해 작동하며 의료 응용 분야에 사용하기 위한 미세한 것부터 대형 산업용 펌프에 이르기까지 다양한 크기로 제공됩니다.
  • <울>
  • DC 12V 냉각 팬 :식물을 건강한 상태로 유지해야 하는 경우 식물 주변으로 신선한 공기를 이동시켜 식물의 수명을 보존하는 데 사용할 수 있는 냉각 기술을 이해하는 것이 중요합니다.
  • 3단계:PCB 제작(JLCPCB 제작)

    JLCPCB 소개

    JLCPCB(Shenzhen JIALICHUANG Electronic Technology Development Co., Ltd.)는 중국 최대의 PCB 프로토타입 기업이자 빠른 PCB 프로토타입 및 소량 PCB 생산을 전문으로 하는 하이테크 제조업체입니다.

    PCB 제조 분야에서 10년 이상의 경험을 보유한 JLCPCB는 하루에 PCB 프로토타이핑 및 소량 PCB 생산에 대한 8,000개 이상의 온라인 주문을 통해 국내외 200,000명 이상의 고객을 보유하고 있습니다. 연간 생산 능력은 200,000 sq.m입니다. 다양한 1층, 2층 또는 다층 PCB용. JLC는 대규모, 유정 장비, 엄격한 관리 및 우수한 품질을 갖춘 전문 PCB 제조업체입니다.

    프로젝트로 돌아가기

    PCB를 생산하기 위해 나는 많은 PCB 생산자들의 가격을 비교했고 이 회로를 주문하기 위해 JLCPCB 최고의 PCB 공급 업체와 가장 저렴한 PCB 공급 업체를 선택했습니다. 내가 해야 할 일은 거버 파일을 업로드하고 PCB 두께 색상 및 수량과 같은 일부 매개변수를 설정하기 위해 몇 번의 간단한 클릭만 하면 됩니다. 그런 다음 3일 만에 내 PCB를 얻기 위해 단 2달러를 지불했고 거기에 있다는 것을 알았습니다. 이 온라인 주문 플랫폼에서 수시로 제공되는 무료 배송 혜택입니다.

    여기에서 회로(PDF) 파일을 얻을 수 있습니다.

    위의 그림에서 볼 수 있듯이 PCB는 매우 잘 제조되었으며 우리가 디자인한 것과 동일한 PCB 리프 모양을 가지고 있으며 모든 레이블과 로고가 납땜 단계를 안내하기 위해 있습니다.

    4단계:재료

    이제 이 프로젝트에 필요한 구성 요소를 검토하고 온라인 주문에 대한 모든 관련 링크를 찾을 수 있으므로 다음이 필요합니다.

    <울>
  • - JLCPCB에서 주문한 PCB
  • <울>
  • - 아두이노 나노 :http://amzn.to/2C7g0YW
  • <울>
  • - ESP01 모듈 :http://amzn.to/2CCRVdL
  • <울>
  • - HC-05 또는 HC-06 블루투스 모듈 :http://amzn.to/2CCRVdL
  • <울>
  • - 광센서 BH1750 :http://amzn.to/2CCRVdL
  • <울>
  • - 온습도 센서 :http://amzn.to/2CCRVdL
  • <울>
  • - 수분 센서 :http://amzn.to/2CCRVdL
  • <울>
  • - 워터펌프 :http://amzn.to/2CCRVdL
  • <울>
  • - 12V dc 팬 :http://amzn.to/2CCRVdL
  • <울>
  • - 백색 LED :http://amzn.to/2CCRVdL
  • <울>
  • - 일부 헤더 커넥터:http://amzn.to/2CCRVdL-
  • 5단계:조립

    9개 항목 모두 표시

    이제 준비가 되었으므로 구성 요소 납땜을 시작하고 납땜 실수를 피하기 위해 레이블을 따르는 것을 잊지 마십시오. 우리는 전원 공급 장치를 테스트하기 위해 Arduino 커넥터를 납땜하는 것으로 시작하고 광 센서와 같은 각 센서에 대한 올바른 연결을 확인하기 위해 몇 가지 기본 테스트 코드를 작성할 수도 있습니다. ) 따라서 전체 액세스 권한이 있습니다.

    참고 :납땜 인두를 깨끗하고 깨끗하게 유지해야 합니다. 즉, 사용할 때마다 스펀지에 닦으십시오. 납땜 인두의 끝은 깨끗하고 광택이 있어야 합니다. 팁이 플럭스나 산화로 더러워지는 것을 볼 때마다, 즉 광택을 잃는 것을 의미하므로 청소해야 합니다. 납땜 중이더라도. 깨끗한 납땜 팁을 사용하면 납땜 대상으로 열을 훨씬 쉽게 전달할 수 있습니다.

    JLCPCB에서 주문한 PCB가 모든 것을 올바른 위치에 유지하도록 안내할 것이므로 우리가 만든 PCB를 보고 온라인 주문을 하고 싶다면 주저하지 말고 이 링크를 방문하십시오.

    보시다시피, 이 PCB를 사용하는 것은 품질 때문에 매우 편리하고 거기에 있는 모든 레이블이 최고의 지침을 제공하므로 납땜 실수를 하지 않을 것이라고 100% 확신할 수 있습니다.

    각 구성 요소를 해당 위치에 납땜했으며 PCB의 양면을 사용하여 전자 부품을 납땜할 수 있습니다.

    이제 우리는 PCB를 준비하고 모든 구성 요소를 아주 잘 납땜했습니다. 그 후 전자 부품과 플랜트를 하나의 지지대에 삽입하기 위해 CNC 레이저 절단을 만들기 위해이 디자인을 준비했습니다. 따라서 동일한 디자인을 만들고 싶다면 광산 여기서 (DXF) 파일을 찾습니다

    6단계:Android 앱.

    이 앱을 사용하면 Bluetooth를 통해 Arduino에 연결할 수 있으며 수동 모드를 사용하면 팬, 조명 및 ON 및 OFF 제어용 워터 펌프에 액세스할 수 있으며 센서를 통해 데이터를 읽을 수 있습니다. "데이터 가져오기" 버튼을 누르면 해당 데이터가 모두 스마트폰 화면에 표시됩니다.

    이 링크에서 이 Android 앱을 무료로 다운로드할 수 있습니다.

    7단계:Arduino 코드 및 테스트 검증

    코드를 사용할 수 있으며 평소와 같이 이 링크에서 다운로드할 수 있습니다. 그리고 사진에서 볼 수 있듯이 코드는 매우 간단하고 주석이 잘 달려있어 자신이 소유한 코드를 이해할 수 있습니다.

    보시다시피 각 버튼에는 시스템에 기능이 있지만 제가 정말 감사한 것은 조명 밝기 제어를 위한 자동 모드입니다 센서 신호에 따라 전면 조명 LED의 또한 스마트폰의 화면에서 직접 온도와 습도 값을 읽을 수 있어 정말 인상적입니다.

    <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

    코드

    <울>
  • Arduino 소스 코드
  • Arduino 소스 코드Arduino
    <사전>/************************************************ ************************************************** ************************************************** ********************** * - 저자 :BELKHIR Mohamed * * - 직업 :(개발자) MEGA DAS 소유자 * * - 주요 목적 :산업용 응용 * * - Copyright (c) 소유자 :All rights reserved * * - 라이선스 :BSD 2조 라이선스 * * - 날짜 :2017-01-20 * * ******************* ************************************************** ************************************************** ************************************************/ / *********************************** 노트 ************** ************************/// 수정 여부에 관계없이 소스 및 바이너리 형식으로 재배포 및 사용은 다음 조건을 충족하는 경우 허용됩니다. are met:// * 소스 코드의 재배포는 위의 저작권 표시, this// 목록의 조건 및 다음 부인을 유지해야 합니다.// * 바이너리 형식의 재배포는 abo를 복제해야 합니다. ve 저작권 고지,// 이 조건 목록 및 문서// 및/또는 배포와 함께 제공된 기타 자료에 있는 다음 부인.// 이 소프트웨어는 저작권 소유자 및 기여자가 "있는 그대로"// 제공합니다 또는 상업성 및 특정 목적에의 적합성에 대한 묵시적 보증을 포함하되 이에 국한되지 않는 묵시적 보증/*________________________________________________________________________________________________ (`v)________________________________________________________________________________________________(`()) _)__(`())_________________________________________________________________________________________________(`v)(_.^._)__________________________________________________________________________________________________(`())(`v)__________________________________________________________________________ __________________________________________________(_.^._)(`())______________________________________________________________________________________________(`v)_____ (_.^._)(`v)________________________________________________________________________________________________________ (`())_ (`v)___(`())______________________________________________________________________________________________________________ (_ .^._)_(`())___(_.^._)_________________________________________________________________________________________ (`v) (_.^._) (`v)_________________________________________________________________________________________________________(`())____(`())__________________________________________________________________________________________________________(_ .^._)_____(_.^._)________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ ______________________________________________________.________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ ______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ __________________________________________________________ ______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________(`v)_____________________________________________________________________________________________________(`())__________________________________________________________________________________________ (_.^._)__________________________________________________________________________________________ (`v)____________________________________________________________________________________________ (`())_______________________________________________________________________________________ (`())__________________________________________________________________________________________________ ______________________(`v)_________________________________________________________________________________________________(`())__________________________________________________________________________________________________(_.^._)__________________________________________________________________________________________________________________________________________________________________________________________________ */#include "DHT.h" // DHT 센서와 인터페이스할 dht 라이브러리 포함#include // 광센서를 사용하기 위한 IC 라이브러리#include // 광센서를 사용할 수 있도록 BH1750 라이브러리를 import //------------------- -------------------------- 제어 핀 정의 ------ --------------------------------------- const int 펌프=4; // 모터 펌프를 제어하기 위해 이 핀을 사용했습니다. const int Fan=5; // 이 핀을 PWM 출력으로 사용하여 팬 속도를 제어합니다. const int Light=6; // LED 밝기를 제어하기 위해 이 핀을 사용합니다.const int TempHum=7; // DHT용 입력 핀 sensorconst int Moisture=8; // 수분 명령 신호를 읽기 위한 디지털 입력 핀const int TestLED=9; // 이 출력 핀을 사용하여 테스트 LED를 켜고 끔으로써 PCB의 올바른 납땜을 테스트합니다. const int Brightness=12; // 광센서 신호를 읽기 위한 입력 핀 const int analogMoistue=0; // 수분 센서의 아날로그 신호를 읽는 아날로그 입력 //------------------------------------ -------------------------------------------------- -------------------------------------------#define DHTTYPE DHT11 // DHT 22(AM2302), AM2321DHT dht(TempHum, DHTTYPE); // 온습도 센서 생성자BH1750 lightMeter; // 광센서 생성자 Data='x'; // 이 variableString cmd=""에 직렬 데이터를 저장합니다. // android appint flagModeAuto=0에서 보낸 전체 명령을 읽습니다. // 자동 모드를 활성화하는 플래그입니다. sprayCMD=0; // CMD 제한 스프레이int LightCMD=0; // CMD 제한 밝기int lightLevelPlus=0; // 조명 밝기를 제어하는 ​​변수float temperature=0; // 온도 값을 저장할 변수float 습도=0; // 습도 값을 저장할 변수uint16_t lux=0; // 광센서에서 빛의 밝기를 읽어오는 변수 //-------------------------------------- ----------- 핀 구성 시작 ----------------------------------- ------------------ 무효 setup() { Wire.begin(); // I2C 버스를 초기화합니다. (BH1750 라이브러리는 이것을 자동으로 하지 않습니다) dht.begin(); // 온도 및 습도 센서 읽기를 시작합니다. lightMeter.begin(); // 광센서 읽기 시작 Serial.begin(9600); // 블루투스를 통해 안드로이드 앱과 통신하기 위해 전송 속도를 최대 9600 BPS로 설정합니다. Serial.setTimeout(100); // Serial 포트를 닫기 전 데이터 대기 시간 설정(100ms 후) pinMode(Pump,OUTPUT); 핀모드(팬, 출력); 핀모드(빛,출력); 핀모드(수분,입력); 핀모드(테스트 LED, 입력); 지연(1000); 디지털 쓰기(펌프,낮음); 디지털 쓰기(팬,낮음); digitalWrite(Light,LOW);}//---------------------------------------- -------- 프로세스 코드 시작 -------------------------------------- ------------------void loop() { while(Serial.available()) // 직렬 데이터가 한 번 사용 가능하면 읽기 { delay(10); 데이터=Serial.read(); cmd+=데이터; } if(cmd=="dt") // 습도 값을 Android 앱으로 보냅니다. { Serial.print(humidity); } if(cmd=="dh") // 밝기 값을 Android 앱으로 보냅니다. { Serial.print(lux); } if(cmd=="db") // 온도 값을 Android 앱으로 보냅니다. { Serial.print(temperature); } if(cmd=="o") // 자동 모드 활성화 { flagModeAuto=1; } if(cmd=="m") // 자동 모드 비활성화 { flagModeAuto=0; } if(flagModeAuto==1) { 자동펌프(); 밝기(); 자동 팬(); } 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=""; // cmd 변수를 지워 다음 명령어에 사용할 수 있도록 합니다. lux =lightMeter.readLightLevel(); // 광 센서에서 밝기 레벨을 가져옵니다. temperature=dht.readTemperature(); // DHT 센서에서 온도 값 가져오기(C) 습도=dht.readHumidity(); // DHT 센서에서 습도 값 가져오기(%)}//---------------------------------- -------------- 펌프 스프레이 자동 제어 기능 --------------------------- -------------------------- 무효 autoPump() { if(analogRead(analogMoistue)30) { analogWrite(Fan,255); // 온도가 30C를 초과하면 팬을 켭니다. } else { analogWrite(Fan,0); // 온도가 30C를 초과하면 팬 끄기 }}

    맞춤형 부품 및 인클로저

    dxf_mdf_5mm_s0PEHuez4w.rar

    회로도


    제조공정

    1. Arduino를 사용하여 모니터 Ambilight 만들기
    2. Arduino Pong 게임 - OLED 디스플레이
    3. 오디오 주파수 감지기
    4. Arduino Tamagotchi 클론 - 디지털 애완동물
    5. 무선 조명 스위치 조작기
    6. Tech-TicTacToe
    7. 모션 센서 물총
    8. Arduino 카운트다운 타이머
    9. Arduino Sunflower:일렉트로닉 썬댄서
    10. 멋진 실내 내비게이션용 로봇