우리는 Arduino를 사용하여 식물의 자동 급수를 합니다. Arduino의 자동 급수 실내 식물 다른 무엇을 할 수 있습니까?


ArdAutomatic 관개 시스템은 실내 꽃 관리 작업을 자동화합니다. 테마 상점에서는 그런 디자인을 미친 가격에 판매합니다. 그러나 기계가 식물의 수분 "부분"을 독립적으로 조절하기 때문에 그만한 가치가 있습니다.

이 기사에서 독자는 arduino에서 자신만의 자동 급수를 만들도록 초대됩니다. 이 경우 마이크로 컨트롤러는 주변 장치의 제어 시스템 역할을 합니다.

Arduino 마이크로 컨트롤러를 기반으로 하는 "자동 급수" 프로젝트의 구현에 필요한 도구 및 주변 장치

관개기는 토양 수분을 조절하는 장치입니다. 이 장치는 습도 센서에 데이터를 전송하여 작업 시작 시 설계된 자동 관개를 나타냅니다. 프로그램을 구성하기 위해 프로그래밍 언어 C ++가 사용됩니다.

필요한 재료가 있는 테이블:

요소 설명
아두이노 우노 마이크로컨트롤러 플랫폼은 주변 장치를 연결하며 소프트웨어와 하드웨어의 두 부분으로 구성됩니다. 가전 ​​제품을 만들기 위한 코드는 Arduino IDE라는 무료 환경에서 프로그래밍됩니다.

마이크로 컨트롤러에서 프로그램을 구성하고 구현하려면 USB 케이블을 구입해야 합니다. 자율 작동을 위해서는 10V 전원 공급 장치를 구입해야 합니다.

플랫폼에는 12개의 핀이 있으며 그 역할은 디지털 입력 및 출력입니다. 사용자는 각 핀의 기능을 개별적으로 선택합니다.

USB 케이블 코드를 전달하기 위한 "arduino용 자동 급수" 시스템 설계에서 필수입니다.
센서 연결 보드 - Troyka Shield 보드의 도움으로 센서 주변 장치는 일반 케이블을 사용하여 연결됩니다. 가장자리에는 3핀 접점(S + V + G)이 있습니다.
푸쉬온 단자대 묶음 와이어의 클램프 역할을 합니다. 구조는 스프링 버튼으로 고정됩니다.
USB 입력이 있는 전원 공급 장치

토양 수분 분석기

플랫폼 연결에 이상적입니다. 작업 시작을 나타내는 손전등이 디자인에 제공됩니다.

이 장치는 토양이 과도하게 또는 불충분하게 축축한 경우 신호를 보냅니다. 보드에 대한 연결은 3개의 와이어를 사용하여 이루어집니다.

● 지면에 담그기 위한 최대 깊이 - 4cm;

● 최대 전력 소비 - 50mA;

● 전원 공급 전압 - 최대 4V.

침수 튜브가 있는 펌프 관리는 스위치를 사용하여 수행됩니다. 케이블 길이는 최대 2미터입니다.
전원 키 전기 회로를 열고 닫도록 설계되었습니다. Arduino 자동 관개를 설계할 때 장치를 사용하면 추가 접착이 필요하지 않습니다. 메인 패널에 대한 연결도 3선으로 수행됩니다.
연결 와이어 - "아버지 - 아버지" 여러 와이어가 주변 장치를 연결합니다.
연결 와이어 - "어머니 - 아버지" 배선은 주변 장치도 연결합니다.
실내 꽃 이 시스템은 다양한 유형의 실내 식물에 적합합니다.

MK Arduino를 기반으로 하는 "Avtopoliv" 프로젝트의 연결 다이어그램 및 작업 알고리즘

아래는 arduino 플랫폼에서 프로젝트의 알고리즘 및 연결 다이어그램입니다. 자동 급수는 다음과 같이 구성됩니다.

  1. 마이크로 컨트롤러에 센서용 보드를 놓습니다.
  2. 위에서 설명한 보드를 사용하여 수분 분석기를 유사한 핀인 A0에 연결합니다.
  3. 마이크로 컨트롤러에 센서를 연결합니다.
    1. CS 핀은 보드의 핀 번호 9에 연결됩니다.
    2. SPI 디스플레이 핀은 동일한 보드의 해당 커넥터에 연결됩니다.
  4. 4번 핀에 전원 키를 삽입합니다.
  5. 우리는 문자 p +, p-로 표시된 커넥터의 전원 스위치에 스위치를 연결합니다.
  6. 이제 터미널 블록을 사용하여 l + 및 l- 문자가 있는 접점에 워터 펌프를 튜브와 연결합니다. 점차적으로 디자이너 앞에서 다이어그램이 만들어집니다.
  7. 수분을 분석하는 터치 패널을 화분에 붙입니다.
  8. 튜브의 끝을 물로 토양에 삽입하십시오. 화분과 식물의 무게가 2kg을 초과하지 않으면 호스를 별도로 고정합니다. 그렇지 않으면 물방울이 꽃을 넘어뜨릴 수 있습니다.
  9. 우리는 물이 채워진 병에 워터 펌프를 내립니다.
  10. 구조를 전원 공급 장치에 연결합니다.

아래에서 장치에 대한 두 가지 대체 회로를 제공합니다.

센서는 지구의 산도를 측정하여 수분 상태를 분석합니다. 세척기를 시스템에 삽입하기 전에 장비를 테스트하고 보정해야 합니다.

  1. 디스플레이에 표시된 정보를 기록합니다. 이 경우 센서는 마른 냄비에 갇혀 있습니다. 이것은 최소 습도로 표시됩니다.
  2. 우리는 식물로 땅에 물을줍니다. 우리는 물이 토양을 끝까지 포화시키기를 기다리고 있습니다. 그런 다음 터치 스크린의 판독값은 한 수준을 표시합니다. 받은 정보를 기록할 필요가 있습니다. 이것은 최대 습도를 의미합니다.
  3. 노트북에서 HUM_MIN 및 HUM_MAX 상수를 보정 결과 얻은 값으로 수정합니다. 프로그램에 값을 등록한 다음 마이크로 컨트롤러로 전송합니다.

위는 한 꽃에 대한 자동 급수 설계를 설명합니다. 그러나 실내 식물 애호가들 사이에서는 집에 화분이 있습니다. 한편으로 이 질문은 복잡해 보입니다. 여러 펌프와 토양 수분 분석기를 연결해야 합니다. 그러나 자동 관개 설계를 위한 더 저렴하고 간단한 솔루션이 있습니다.

펌프의 호스에는 송곳을 사용하여 25cm 구멍이 만들어집니다. 볼 형식 펜 조각이 결과 구멍에 붙어 있습니다. 결과는 다음과 같습니다.

  • 창턱에 식물 화분이 늘어서 있습니다.
  • 튜브는 화분에 설치되어 각 구멍의 물이 별도의 화분으로 흘러 들어갑니다.
  • 짜잔: 이 발명은 동시에 모든 식물에 물을 줍니다.

사용자는 물을주는 시간을 독립적으로 선택하지만 하나의 꽃에 대해서만 선택합니다. 꽃은 종종 무게와 크기가 같습니다. 결과적으로 화분에 심은 토양은 같은 시간에 건조됩니다. 이를 위해 조합 방법이 발명되었습니다. 냄비의 수는 동일한 무게와 크기의 그룹으로 나뉩니다.

"자동 급수" 프로젝트를 위한 Arduino용 샘플 코드

코드 프로그래밍으로 넘어 갑시다.

// 디스플레이용 라이브러리를 다운로드하고 프로그램에 연결합니다. #include "QuadDisplay2.h"; // 워터 펌프가 연결된 핀을 나타내는 상수 생성 // #define VODPOMPA_PIN 4; // 연결된 접점을 나타내는 상수 생성 // 토양 수분 분석기 #define HUM_PIN A0; // 최소 습도 #define HUM_MIN 200; // 최대 습도 #define HUM_MAX 700; // 급수 확인 사이의 시간 #define INTER 60000 * 3; // 습도 값을 저장할 변수 선언 unsigned int hum = 0; // 이 변수에 시간 간격을 unsigned long Time = 0으로 저장합니다. // QuadDisplay 클래스에서 객체를 선언한 다음, // 연락처의 번호판을 전달합니다. CS QuadDisplay dis (9); // 디스플레이의 작동을 담당하는 메서드를 만듭니다. void setup(void) (// begin() 메서드를 실행합니다. // // contact pinMode( VODPOMPA_PIN, OUTPUT); // 디스플레이에 숫자가 켜짐 - 0 dis.displayInt (0);) // 현재 습도 값을 담당하는 메소드 생성 void 루프(void) (// 현재 습도 값 계산 int humNow = analogRead (HUM_PIN); // 값 표시기가 이전 값과 같지 않으면 ... if (humNow! = hum) (// 지금 얻은 값을 저장합니다 hum = humNow; // 값을 표시합니다. 화면에 displayInt (humNow);) // 조건 설정: 지정된 사용자 시간이 경과하고 // 토양의 수분 상태가 필요 미만인 경우 ... if ((Time == 0 || millis () - 시간> INTER) && 윙윙거림< HUM_MIN) { // Даем сигнал о начале работы водяной помпы digitalWrite(VODPOMPA_PIN, HIGH); //Объявляем потом, длящийся 2 секунды delay(2000); // Завершаем работу помпы digitalWrite(POMP_PIN, LOW); // Ставим в значение переменной Time текущее время и добавляем 3 минуты Time = millis(); } }

또한 동료의 흥미로운 비디오 몇 개를 볼 수 있습니다.

오늘날 식물의 관리를 용이하게하기 위해 다양한 관개 시스템이 사용되며 식물 유형별로 물의 양을 조절하고 점적 관개 또는 스프링클러를 적용 할 수 있습니다. 물이 절약되고 식물에 가장 유리한 개발 조건이 만들어집니다. 이러한 시스템의 유일한 단점은 지속적인 모니터링이 필요하며 켜기 / 끄기가 수동으로 수행된다는 것입니다. 이것은 다소 불쾌한 활동이며 식물의 유형, 기후 조건 및 특정 시스템에 따라 급수 기간은 최대 2 시간이 될 수 있습니다. 이 문제를 해결하려면 중력 시스템용 급수 타이머를 설치해야 합니다.

먼저 "중력 시스템"의 개념을 설명해야 합니다. 그렇지 않으면 일부 출처에서 작동 원리에 대한 재미있는 설명과 유체 역학에 대한 완전한 이해 부족을 찾을 수 있습니다.

정원용 자동 급수 시스템 - 다이어그램

중력 시스템의 관개 타이머가 너무 좋아서 0에서 6 기압의 수압으로 작동 할 수 있다고 주장하는 전문가가 있습니다. 그들은 제로 압력에서 작동하며 아무 것도 물을주지 않을 것입니다. 중력은 물리적 개념이 아니라 순전히 일상적인 개념입니다. 그리고 그것은 압력이 없다는 것이 아니라 끊임없이 작동하는 워터 펌프가 없다는 것을 의미합니다. 중력 시스템에서 펌프는지면에서 일정 거리에 위치한 저장 탱크에만 물을 공급합니다. 물의 상층부와 출구 위치 사이의 높이 차이로 인해 압력이 생성되며, 이것이 물의 흐름을 움직이는 압력입니다.

대부분의 경우 중력 시스템에 타이머가 사용되는 이유는 무엇입니까? 고압에서 작동할 수 없기 때문에 폐쇄 밸브가 너무 약하고 구동 메커니즘이 약합니다. 대부분의 장치의 경우 최대 수압은 0.5 기압을 초과할 수 없습니다. 이러한 압력의 경우 물이 담긴 용기는 지표면에서 5m 거리에 있어야 합니다. 대부분의 관개 시스템에는 훨씬 낮은 위치에 저장 탱크가 있습니다.

타이머 유형

현재 세 가지 유형의 타이머를 구입할 수 있습니다.

  • 기계적.가장 간단한 것은 반자동 제어 시스템입니다. 전원 켜기는 수동으로 수행되며 지정된 시간(최대 120분) 후에 자동으로 꺼집니다. 전원 공급 장치가 필요하지 않으며 폐쇄 밸브는 스프링으로 작동됩니다. 장점은 저렴한 비용과 높은 신뢰성입니다. 단점 - 전원을 켜는 동안 사람이 없으면 할 수 없습니다.

  • 기계적 제어가 가능한 전자식.급수 모드는 완전히 자동화되어 있으며 급수 일정은 7일 동안 조정할 수 있으며 급수 시간은 최대 120분입니다. 장점 - 비교적 저렴한 비용, 프로그래밍 및 관리 용이성. 단점 - 추가 장비를 연결할 수 없음;

  • 프로그래밍된 제어가 있는 전자식.가장 현대적인 장치에는 최대 16개의 특수 기능을 설정할 수 있는 기능이 있습니다. 단점 - 높은 비용. 또한 교육을 받지 않은 사용자가 프로그램을 설치하는 것이 어려울 수 있습니다.

기계식 타이머는 거의 사용되지 않으며 대부분의 경우 관개 시스템은 전자 장치 유형 중 하나로 제어됩니다. 급수는 솔레노이드(전자기) 밸브 또는 볼 밸브로 조절됩니다.

2 라인에 물을주는 타이머, 기계식 "전문가 정원"

  1. 솔레노이드 벨브.특정 시간에 전자기 코일에 전원이 공급되고 전자기장의 작용에 따라 코어가 솔레노이드로 당겨져 물의 흐름을 차단합니다. 전원이 차단되면 스프링에 의해 코어가 위로 밀려 올라가 배관이 열립니다. 타이머에서는 작동 원리를 바꿀 수 있습니다. 장력이 없으면 밸브가 스프링으로 닫히고 강한 자기장이 발생하면 열립니다. 이 작동 원리로 인해 배터리 전원이 절약됩니다. 솔레노이드 밸브의 작동은 개폐 시 딸깍하는 특성으로 구별할 수 있습니다.
  2. 볼 밸브.개폐는 전기 모터로 구동되는 기어박스에 의해 수행됩니다. 전력을 절약하기 위해 지속적으로 닫힌 위치에 있으며 관개를 위해 시스템이 켜진 기간 동안만 열립니다. 볼 밸브가 있는 타이머 작동 중 전기 모터 및 기어박스 작동에서 짧은 소음이 들립니다.

중요한. 서리의 위험이 있는 즉시 타이머를 꺼야 합니다. 왜요? 시동하는 동안 고정자 권선에 큰 전류가 나타나고 로터가 회전하기 시작하면 전류가 작동 모드로 떨어집니다. 서리 중에는 볼 밸브가 약간 얼어 붙을 수 있으며 전기 모터의 힘이 그것을 차단하기에 충분하지 않습니다. 즉, 시동 전류가 권선을 통해 오랫동안 흐르게 되어 필연적으로 과열 및 단락이 발생합니다. 그리고 기어 박스 자체는 상당한 노력을 위해 설계되지 않았으므로 구동 기어가 고장날 수 있습니다. 이러한 오작동에는 복잡한 수리 또는 장치의 완전한 교체가 필요합니다.

기계식 전자 타이머(텀블러 타입)

작동이 매우 쉽고 안정적이고 내구성이 뛰어난 장치입니다. 관개 시스템의 작동 모드를 선택하려면 다음 단계를 수행해야 합니다.

  • 상단 투명 플라스틱 덮개의 나사를 푸십시오. 조심스럽게 작업해야하며 밀봉 가스켓을 잃지 마십시오. 떨어질 수 있습니다.
  • 왼쪽 토글 스위치를 사용하여 시스템 켜기 빈도를 설정하고 최대 기간은 72시간입니다.
  • 오른쪽 토글 스위치로 특정 물주기 시간을 최대 120분으로 설정합니다.

중요한. 전자 장치의 초기 카운트다운 시간은 타이머가 켜진 시간부터 시작됩니다. 즉, 예를 들어 아침 5시에 주기적으로 급수를 켜려면 첫 번째 타이머 설정을 동시에 수행해야 합니다. 앞으로 관개 시스템을 켜는 시간은 변경되지 않습니다.

타이머가 완비된 제조업체는 플라스틱 파이프 또는 다양한 직경의 가요성 호스를 연결하기 위한 완전한 피팅 세트를 구현합니다. 타이머는 2개의 AAA 1.5V AA 배터리로 작동됩니다.

급수 타이머 - 사진

소프트웨어 제어가 가능한 전자 타이머

최신 장치에는 상당히 고급 기능이 있습니다. 배송 세트에는 파이프라인과 다양한 직경의 유연한 호스를 연결하기 위한 어댑터가 포함되어 있습니다. 소프트웨어 제어 구성다음과 같이 실행됩니다.

  • 플라스틱 덮개를 제거하십시오. 제조 공장에서 꽤 빡빡하게 꼬여서 상당한 노력을 기울여야 할 것입니다.
  • 시간 버튼을 누르면 프로그램 설치 매개변수가 전자 디스플레이에 나타납니다. 현재 시간과 요일을 설정하려면 설정 버튼을 눌러 작업을 확인해야 합니다.
  • 요일별로 차례로 이동하여 전자 타이머의 시간과 지속 시간을 선택합니다. 이 매개변수는 전체 사용 기간 동안 저장됩니다.
  • 원하는 경우 장치에서 최대 16개의 다른 프로그램을 구성할 수 있습니다. 이렇게 하려면 Prog 버튼을 누른 다음 필요한 프로그램 수를 설정합니다. 입력된 모든 데이터는 설정 버튼을 눌러 확인해야 합니다.

다소 큰 커패시터가 장치 내부에 설치됩니다. 중요한 배터리 방전을 알리고 타이머를 자율 전원 모드로 전환하도록 설계되었습니다. 배터리 전원이 부족하면 디스플레이에 경고 신호가 나타납니다. 배터리는 등장 당시부터 관개 시스템의 빈도와 기간에 따라 2-3일 동안 계속 작동할 수 있습니다.

완전 자율 모드에서 콘덴서는 3-4일 동안 타이머를 제공할 수 있습니다. 이 시간 동안 배터리를 교체하지 않으면 타이머가 취소됩니다. 그런 다음 이전에 설정한 모든 급수 모드가 메모리에서 지워지며 처음부터 설치 단계를 반복해야 합니다.

대기 모드에서 타이머는 1.2mA 이상을 소비하지 않으며 작동 중에는 전류 소비가 350mA로 증가합니다. 이 값은 매우 작은 값이므로 장치가 최소한 한 시즌 동안 배터리만으로 작동할 수 있습니다. 제조업체는 이번에 고의적으로 관개 시스템의 연례 정기 검사 기간 동안 새 배터리를 설치하는 것이 좋습니다.

크고 복잡한 관개 시스템에서 작동하도록 설계된 타이머 모델이 있습니다. 그들은 여러 밸브를 가지고있어 여러 개별 구역의 관개 모드를 제어 할 수 있습니다. 각 구역마다 자체 매개 변수가 설정됩니다. 다중 밸브 장치는 220V의 전압에 연결하거나 최대 8개의 AAA 1.5V 배터리를 사용할 수 있습니다.

센서를 구성할 때 고려해야 할 데이터

식물을 재배하기 위한 조건은 타이머 프로그램의 올바른 설정에 크게 좌우됩니다. 무엇을 고려해야 합니까?

작물의 유형을 고려하여 관개 지역을 별도의 구역으로 나눕니다. 그들 각각에는 자체 요구 사항이 있으며 경우에 따라 다중 밸브 타이머를 구입해야합니다.

최대 물 소비량을 기반으로 한 유압 계산. 타이머는 총 저장 용량을 고려해야 합니다. 자동 펌핑이 없으면 물의 존재를 독립적으로 제어하고 필요한 경우 용기를 채워야합니다.

관개 시스템 배치의 추적 분석. 개별 관개 라인의 높이 차이가 크면 생산성에 상당한 영향을 미칠 수 있습니다. 설정할 때 관수 시간뿐만 아니라 이 시간 동안 식물에 공급되는 물의 양도 염두에 두어야 합니다.

타이머 설치 완료 후 시스템 작동 여부를 확인하는 것이 좋습니다. 이를 위해 최소 전환 기간이 설정되고 밸브 드라이브의 올바른 작동이 확인됩니다. 타이머가 일반 모드에 있으면 특정 프로그래밍을 시작하고 시스템을 자동 작동 모드로 전환할 수 있습니다.

타이머 프로그램을 설치하는 과정은 함께 추가 센서를 구입하면 훨씬 쉽습니다.

추가 타이머 기능

센서 보조 관개용 전자 타이머는 몇 가지 추가 기능을 수행할 수 있어 온실이나 야외에서 작물을 재배하는 것이 훨씬 쉽습니다.

  1. 레인 센서.이러한 장비는 열린 지역에 관개를 설치하는 동안 사용됩니다. 레인 센서는 자연 강수가 존재한다는 신호를 전자 장치에 보냅니다. 타이머는 이러한 신호에 반응하여 비가 오는 기간과 일치하는 한 번의 급수를 건너뜁니다. 센서는 3mm에서 25mm의 강우 범위에서 조정 가능합니다. 이 넓은 범위를 통해 기상 조건에 따라 관개 비율을 보다 정확하게 조정할 수 있습니다. 가속 회수 기능이 있으면 비가 시작된 후 가능한 한 짧은 시간에 관개를 중단할 수 있으며 장치는 추가 유지 관리가 필요하지 않습니다. 환기 링의 설정에 따라 dacha가 대기 모드로 돌아갈 때까지 지연이 설정됩니다. 원래 위치로 돌아가는 시간은 습도와 주변 온도에 직접적으로 의존합니다. 이를 통해 상당한 물 절약을 달성할 수 있습니다.
  2. 다이어프램 펌프.타이머가있는 조인트에 장착하거나 별도의 케이스에 장착하여 저장 탱크의 수위를 모니터링 할 수 있습니다. 물의 양이 임계 수위 아래로 감소하면 펌프가 자동으로 켜져 예비를 보충합니다. 탱크를 채우고 나면 펌프가 꺼집니다.
  3. 라디오 채널 토양 수분 센서.가장 현대적인 장치로 식물 관리를 크게 촉진합니다. 화단의 여러 곳에 설치하여 토양수분이 높을 경우 관수 타이머 명령을 차단합니다. 가장 현대적인 장치는 농작물의 수확량을 10% 이상 증가시킵니다.
  4. 정수 필터.고품질 정수를 수행하고 타이머 작동 시간을 크게 늘립니다.

추가 모니터링 및 제어 장치는 관수 타이머와 함께 또는 별도로 구입할 수 있습니다.

비디오 - 중력 시스템용 급수 타이머

얼마 전에 나는 나라에서 물을 자동화하는 것이 좋을 것이라고 생각했습니다. 일부 muska 사용자의 리뷰도 이러한 결정을 내리는 데 중요한 역할을 했습니다. 그러나 전자는 내 프로필이 아니므로 프로젝트의 하드웨어 부분을 가능한 한 단순화하고 가능하면 LUT, 보드 에칭 및 기타 어려움 없이 수행하기로 결정했습니다. 요컨대, 나는 표준 구성 요소에서 조립된 일종의 생성자로 내 시스템을 구현하고 싶었지만 작동 여부는 사용자에게 달려 있습니다.

UPD: Arduino용 스케치가 추가되었습니다.

1. 프로젝트의 소원 이해 및 생각 정리
이 프로젝트는 원래 4개의 강력한 스프링클러(향후 8개), 동일한 수의 솔레노이드 밸브, 릴레이 모듈, 16x2 화면, 실시간 시계 및 두뇌로서의 Arduino와 같은 것으로 생각되었습니다.
나는 현재 시간, 물주기 시작 시간 및 작업 시간을 설정할 수있는 밸브를 제어하는 ​​데 간단한 메뉴로 충분할 것이라고 기대했습니다.
그런 다음 키보드에 arduins의 8 입력을 제공하는 것이 너무 많다고 생각했습니다. 그리고 일반적으로 모든 키보드가 디지털 블록만 사용하는 것이 정당화되는 모든 곳에서 동등하게 유용하지는 않습니다. 결국 숫자를 입력해야 할 뿐만 아니라 메뉴 탐색을 구현해야 합니다.
그렇다면 조이스틱을 사용하는 것이 좋습니다. 이것은 숫자 키패드보다 더 다재다능한 솔루션이며 제어가 "직관적"이 됩니다... 물론, 이렇게 할 수 있다면 ... 그리고 화면, 그리고 2~3월에 스프링클러 스케치를 디버깅하기 시작했습니다.
소프트웨어 부분을 개발하는 동안 초기 프로젝트에 몇 가지 추가 변경 사항이 적용되었습니다. 특히 몇 개의 온습도 센서와 수동 밸브 제어 장치를 추가했습니다. 또한 모터의 공회전을 방지하기 위해 유량이 장기간 부족할 경우 모터를 비상 정지시키기 위해 입력에 유량 센서를 설치하기로 했습니다.
센서가 왜 이렇게 많아? 예, 그들은 매우 비싸지 않고 보드에 빈 입력이 남아 있으며 사이트의 다른 부분의 온도와 습도를 아는 것이 유용합니다. 나는 온실, 거리 및 펌핑 스테이션의 구덩이에 센서를 설치하고 토양 수분 센서와 토양 온도 센서를 정원 어딘가에 배치 할 계획이었습니다.
일반적으로 arduin의 센서 및 핀 표를 더 잘 보여 드리겠습니다.

2. 필요한 부품의 구입
다음은 중국에서 구입한 시스템 구성 요소 목록입니다(대부분 aliexpress에서 구입했지만 Ebay에서 몇 개 구입했습니다. 더 저렴했습니다). 2개의 로트가 이미 판매에서 제거되었으므로 해당 링크 대신 스냅샷이 표시되어 관심 있는 사람들이 무엇을 찾아야 하는지 알 수 있습니다.
1, 가격 $ 6.36 (내 판매자가 판매에서 이 센서를 제거했기 때문에 다른 판매자의 로트)
1, 가격 $ 0.74
1, 가격 $ 0.63
1, 가격 $ 1.16
1, 가격 $ 0.56
1, 가격 $ 1.79
1, 가격 $ 1.1
1, 가격 $ 0.66
1, 가격 0.5 $
1, 가격 $ 1.35
1, 가격 $ 3.56
1, 가격 $ 0.84
3, 개당 가격 0.99 $, 단 2.97 $
4, 개당 가격 $5.59, 단 $22.36
4, 가격은 개당 $3.62, 단 $14.48입니다. 아날로그는 쉽게 검색됩니다.
4, 가격은 한 쌍당 $ 0.95, 단 $ 1.9
총 인터넷 비용 - $ 60.96

다음 품목은 지역 철물점에서 구입했습니다.
급수 호스 2 코일 5/8 (각 30m) - 540,000 벨로루시 루블 또는 약 $ 28
8 커플 링 1/2 - 112,000 BYN 또는 약 $ 5.8
3 티 1/2 - 60,000 벨로루시 루블 또는 약 $ 3
8 피팅 15 * 16 - 92,000 벨로루시 루블 또는 약 $ 4.8
총 오프라인 비용 - 804,000 벨로루시 루블 또는 $ 41.2

이 목록에 포함되지 않은 항목도 언급할 가치가 있습니다. 이 목록의 일부 항목은 셰어웨어(오래된 정크)가 되었고 일부 항목은 가격을 잊어버렸습니다. 그것:
온도 센서 연결을 위한 4-와이어 신호 케이블 40미터;
솔레노이드 밸브에 12볼트를 전달하기 위한 가장 저렴한 2선식 구리 케이블 40미터;
온도 및 습도 센서를 연결하기 위한 출력으로 사용된 2개의 RJ-11 스플리터와 센서가 있는 케이블용 커넥터 4개;
집에 있는 제어 장치를 펌프 옆에 있는 외부에 있는 릴레이 및 토양 센서 장치와 연결하기 위한 2개의 RJ-45 스플리터 및 케이블용 커넥터 4개;
오래된 케이블 (트위스트 페어) - 30-40 미터, arduina와 trustushki 연결용;
오래된 마더보드에서 납땜된 플로피 드라이브와 플로피 드라이브의 리본 케이블을 연결하기 위한 커넥터;
오래된 24볼트 전원 공급 장치;
시스템 용 상자 제조를 위해 12-16mm 두께의 가구 보드 트리밍.

나는 사용하기 전에 스플리터의 사진을 만들지 않았으며 다음과 같이 보입니다.

3. 사지 않은 것을 만들기
이런저런 이유로 일부 작업은 스크랩 재료와 독립적으로 수행해야 했습니다. 나는 그것이 무엇을, 어떻게 했는지, 왜 이런 식으로 했고 다른 방식으로는 하지 않았는지 여기에서 설명하려고 노력할 것입니다.

3.1 토양 수분 센서(오래 살았으면 좋겠다)
보시다시피 프로젝트에서 발표되었지만 쇼핑 목록에는 토양 수분 센서가 없습니다. 사실 얇은 금속 스트립이있는 PCB 조각을 땅에 묻는다는 생각 자체가 나에게는 매우 망상 인 것처럼 보였으므로 더 나은 방법을 찾기로 결정했습니다. 인터넷을 뒤져 주제 포럼에서 좋은 팁과 예를 찾았습니다. 일반적으로 2개의 컨덕터, 저항 및 3선식 와이어와 같이 동일한 작업을 수행하기로 결정했습니다. 하나의 자전거 스포크가 음극과 양극으로 사용되었으며 무자비하게 물린 상태였습니다. 여기, 비교를 위해 기증자의 조각과 전체 스포크


우리는 와이어, 저항기 및 스포크 조각을 납땜합니다. 일반적으로 포럼에 작성된 대로 모든 작업을 수행합니다.


그런 다음 핫멜트 접착제로 바느질 작업을 밀봉하기 위해 일시적으로 플라스틱에 양극과 음극을 고정합니다.


다음으로 작은 컵의 베이비 요거트를 틀로 만들어 그 안에 철사용 구멍을 만들고 내부에 조심스럽게 구조물을 설치하고 Ceresit CX-5 고정 컴파운드로 채웠습니다.






포럼 회원들은 석고를 추천하지만 가까이에 있지 않았으므로 속건성 시멘트가 더 나쁘지 않을 것이라고 생각합니다.
건조 - 개봉






만일을 대비하여 완성된 센서에서 센서가 콘크리트 조각의 수분 함량이 아니라 토양의 수분 함량을 측정하도록 두 층으로 유성 페인트로 걸었습니다.

이 메가디바이스를 사용하려면 사전 교정이 필요합니다. 이것은 기본적인 방법으로 수행됩니다. 건조한 토양을 가져 와서 집에서 만든 센서를 찔러 얻은 수분 값을 확인하고 기록합니다. 그런 다음 작은 늪을 만들기 위해 너무 많은 물을 붓고 다시 센서에서 값을 제거합니다.
포럼에서 이 스케치로 빠르게 보정:
#define PIN_SOIL_LEFT 6 #define PIN_SOIL_RIGHT 7 #define PIN_SOIL_HUMIDITY 0 무효 설정() (Serial.begin(9600), pinMode(PIN_SOIL_LEFT, OUTPUT), pinMode(PIN_SOIL_RIGHT, OUTPUTT)(if, pinMode flip) , HIGH); digitalWrite (PIN_SOIL_RIGHT, LOW);) else (digitalWrite (PIN_SOIL_LEFT, LOW); digitalWrite (PIN_SOIL_RIGHT, HIGH);)) 무효 루프 () (setSensorPolarity (true) ; 지연 (1000); 아날로그 읽기 (int val1 =) PIN_SOIL_HUMIDITY); 지연(1000); setSensorPolarity(거짓); 지연(1000); // 판독값 반전 int val2 = 1023 - analogRead(PIN_SOIL_HUMIDITY); reportLevels(val1, val2) ;) void reportLevels(int val2), int (int 평균 = (val1 + val2) / 2; 문자열 msg = "avg:"; msg + = 평균; Serial.println(msg);)
제 경우 센서의 값은 건조한 토양에서 200을 약간 넘었고 젖은 토양에서 840보다 약간 작습니다.
이제 특정 토양에 대한 최소 및 최대 수분 수준이 있으므로 기본 스케치의 해당 상수에 입력해야 합니다. 그게 다야!

3.2 밸브용 전원
물론 중국에서 최소 1암페어를 생산하는 일반 12볼트 전원 공급 장치를 사는 것이 가능했지만 조국의 쓰레기통에서는 죽은 스크루 드라이버의 충전기에서 오래된 쓰레기 더미가 발견되어 절반을 제공했습니다. 24볼트의 전압에서 암페어. 따라서 LM2596 벅 컨버터를 구입한 다음 이전 블록에 성공적으로 통합했습니다. 과정은 따로 사진을 찍지 않았지만 이번 리뷰는 아니고... 여기 밸브와 함께 수정된 블록이 있는데 예시로 넘어가겠습니다


편리한 전압 조절을 위해 블록 몸체에 구멍을 만들었습니다. 이제 드라이버와 멀티미터를 사용하여 5볼트에서 24볼트 사이의 모든 전압을 설정할 수 있습니다. 그것은 꽤 좋은 것으로 밝혀졌습니다. 불행히도 다운 컨버터에 대해 Aloha_를 클릭했습니다 ... 그러나 제 경우에는 모든 것이 잘되는 것 같습니다. 과열은 감지되지 않았습니다.

3.3 스프링클러 홀더
당신은 확실히 상점에서 이것을 살 수 없을 것입니다! 특주로 4개 수량으로 제작하였기 때문에 :) 여기는 모든 것이 간단하지만 높이가 1m인 반인치 파이프, 아래에서 90도 굽힘을 만들고 30-40cm 길이의 모서리가 용접되어 있으므로 홀더를 사이트의 원하는 부분에 지면에 고정할 수 있습니다. 상단에서 실은 0.5인치 내부에 있어야 합니다(제 경우에는 슬리브가 거기에 용접되어 있음). 하단은 누구에게나 더 편리하기 때문입니다. 제 경우에는 외부 1/2인치 나사산이 있지만 실습에서 알 수 있듯이 내부 나사산이 있는 것이 더 나을 것입니다. 그러면 먼저 커플 링을 조인 다음 피팅 또는 밸브를 나사로 조일 필요가 없습니다 ... 일반적으로 사전에 미처 생각하지 못해서 커플링 비용을 추가로 받았습니다 :(
홀더 예시 사진 - 여기:




그리고 조금 더 가면 사용중인 홀더 사진이 있습니다.

3.4 제어 장치 및 릴레이용 상자
처음에는 폴리베이터의 모든 부품을 하나의 상자에 넣고 밸브(12볼트), 펌프(220볼트) 및 센서 자체에 대한 출력을 장착할 계획이었습니다. 그러나 그 다음 나는 폴리베이터의 전원 및 저전류 부분을 부수기로 결정했고 이른 아침에 릴레이를 클릭하는 것은 매우 모호한 즐거움이 될 것입니다. 따라서 arduino, 조이스틱, 버튼, 화면 및 실시간 시계가 있는 보드는 "홈" 상자에 남아 있고 릴레이는 모터 및 밸브에 더 가까운 외부 상자에 배치됩니다.
제어 장치를 조립하려면 가구 보드 조각, 단추와 조이스틱 구멍용 깃털 드릴, 스크린 구멍용 퍼즐이 필요했습니다.

스포일러 아래 상자를 드릴, 톱 및 조립하십시오.













다음으로 스플리터(전화 및 트위스트 페어)를 열고 와이어를 납땜한 다음 핫멜트 접착제에 붙입니다. 여기에서 더 자세히 보기






이렇게 화면과 실시간 시계가 하나의 전체로 결합되었습니다.


그런 다음이 구조는 상자의 셀프 태핑 나사로 엄숙하게 고정되었습니다. 조이스틱도 나사로 고정했습니다. 이제 제어 장치는 다음과 같이 보입니다.


두뇌를 상자에 던지는 것만 남아 있으며 제어 장치가 준비되었습니다.
이제 주의를 기울이십시오. 미인, 어린이 및 임산부는 다음 스포일러를 열지 않는 것이 좋습니다 ... Yurok, ksiman 및 기타 유명 인사가 만들 수있는 아름다운 보드를 볼 수 없기 때문입니다. 그러나 ChinaPodvalProm의 최고의 전통에서 보드 설치를 볼 수 있습니다. 트랙 대신 배선 및 핫멜트가 모두 떨어져 나가지 않도록 합니다. 따라서 다시 한 번 경고합니다. 스포일러를 열지 마십시오! 제 말을 믿으세요. 이 보드는 작동하지만 안 보는 것이 좋습니다. :)

스포일러, 열지 마십시오. uzhos와 kyshmar가 있습니다!

그래서 개봉한거야, 응? 글쎄요, 존경합니다 ... 토마토를 던지지 마십시오!









제어 장치는 두 개의 꼬인 쌍으로 릴레이 장치에 연결됩니다. 밸브 및 모터와 "두뇌"의 상호 작용을 위해 5개의 제어 라인으로 충분하고 릴레이에 전원을 공급하는 2개의 라인(5볼트 및 접지)이 더 있지만 유량계도 있습니다(이미 전원이 있으므로 만 1개 라인 필요), 토양 수분 센서(3개 라인) 및 밸브의 현재 상태를 보여주는 4개의 LED. 총 16개 라인 중 15개 라인이 사용됩니다.
릴레이 블록에는 릴레이 자체 외에도 모터 및 밸브 전원 공급 장치용 소켓과 모터 강제 시작을 위한 기존 스위치가 내장되어 있습니다. 장치 자체는 제어 장치와 동일한 가구 보드 스크랩으로 만들어졌지만 일반 나무 상자처럼 보입니다. 입구에서 모터 릴레이, 밸브 릴레이, LED, 습도 센서 및 수류 센서용 커넥터를 통해 두 개의 꼬인 쌍이 보드에 배선됩니다. 밸브, 스위치 및 모터 릴레이를 통해 제어되는 소켓에 대한 전선을 위해 벽에 구멍을 신중하게 만들었습니다.


터미널 블록에서 와이어가 솔레노이드 밸브로 나옵니다.


외부에서 arduino로 제어되는 모터용 소켓과 모터를 수동으로 켜기 위한 스위치를 나사로 조였습니다.


모든 전선은 라우팅되고 필요한 곳에서 꺼내집니다 ... 것처럼 보입니다.


12볼트 전원 공급 장치용 소켓이 내벽에 나타 났으며 여기에서도 볼 수 있습니다.


완성된 형태에서는 다음과 같이 보입니다.


무엇을, 어떻게 설명할지 조금 설명하겠습니다. 상자에 전원이 공급되고 12볼트 밸브용 블록, 모터릴레이, 밸브릴레이가 내부에 숨겨져 있다. 모터(소켓)에 전원이 들어오고 모터를 수동으로 제어하기 위한 스위치도 나온다(릴레이와 병렬). 또한 토양 수분 및 물 흐름에 대한 센서를 연결할 수 있지만 비어 있습니다. 이유 - 조금 더 말씀드리겠습니다.
4. 기능 설명
사실, 여기에 조립을 위한 불완전한 전자 부품 세트가 있습니다.


처음에는 이 "문어" 같은 것이 arduina와 작은 주변 장치 세트에서 조립되었습니다. 스케치를 디버깅하는 데 사용한 것이 이 기적이었습니다.


최소는 이미 말했듯이 조이스틱 컨트롤을 만들기로 결정했으며 다음과 같은 최소한의 필요한 메뉴 항목 집합이 나타났습니다.
1. 날짜 및 시간 설정
2. 물주기 일정 설정
3. 센서의 정보
4. 강제 재부팅 가능성

나는 그것을 구현할 수 있었고 심지어 영어 디스플레이 1602를 사용할 수 있었습니다. LCD_1602_RUS 라이브러리가 도움이 되어 8개의 키릴 문자를 "만드는" 것이 가능해졌습니다. 그 이후에는 영어를 섞어서 러시아어로 된 메뉴 이름을 고령자(부모님)도 충분히 이해할 수 있는 구성으로 만들 수 있었습니다. 최종 스케치 크기는 45KB로 압축된 1400줄 미만입니다.
컴파일 결과:
스케치는 19,626바이트(63%)의 장치 메모리를 사용합니다. 총 30,720바이트를 사용할 수 있습니다.
전역 변수는 1,316바이트(64%)의 힙을 사용하고 지역 변수용으로 732바이트를 남깁니다. 최대: 2,048바이트.

다행히 메모리 부족에 대한 경고는 없습니다.
스케치 자체는 아직 여기에 없습니다. 시간이 지나면 포스팅하겠습니다. 코드를 조금 다듬고 싶습니다 :)
무엇이 효과가 있었고 무엇이 효과가 없었습니까? 글쎄, 모든 것이 문어에서 해결되었습니다. :) 불행히도 인생은 자체 조정을하고 두뇌, 릴레이 및 센서가 분리 된 후 작동이 중지되었습니다 ... 첫째, 아날로그 센서. 아아, 이제 케이블의 길이로 인해 작동하지 않습니다. 따라서 "SOIL" 메뉴 항목에 온도와 습도가 0으로 표시됩니다. 이 문제를 해결하는 방법에 대한 특정 생각이 있지만 지금까지는 시간이 없습니다. 다차에서 부모님을 자주 뵙지 못하고 스프링클러 뿐만 아니라 또 다른 출장도 가는데.. 어찌됐든 독자님들의 실질적인 조언 잘 받겠습니다.
둘째, 유량계를 즉시 연결할 수 없었습니다. 이번에는 케이블 길이 때문에 전혀 연결되지 않았습니다. 나는 그것을 체크 밸브 바로 직후에 모터 입구에 성급하게 넣었습니다. 그것은 거기에 자리가 없었습니다. 분명히 센서는 완전히 밀봉되지 않았으며 물이 상승하면 하우징의 마이크로 슬롯을 통해 공기가 누출되어 결과적으로 펌프가 물을 끌어들이지 않습니다. 그것을 제거하는 동안 펌프 배출구에 넣으려고 노력할 것입니다. 작동해야하지만 약간 누출 될 것입니다.
이제 작업 기능을 위해. 음, 일정은 분명합니다. 이것이 바로 프로젝트가 시작된 이유입니다. 그러나 때로는 잠시 동안 스프링클러를 켜야 하는 경우가 있으며 이를 위해 제한 및 무한의 두 가지 강제 급수 모드를 만들었습니다. 제한 모드는 버튼을 짧게 눌러 활성화되며 이러한 급수 기간은 설정에서 지정할 수 있습니다. 버튼을 다시 누르면 예정보다 일찍 물주기가 종료됩니다. 길게 누르면 끝없는 급수가 켜집니다. 버튼을 눌러 다시 끌 수 있습니다.
글쎄, 그리고 좋은 추가 사항 - 펌핑 스테이션이있는 구덩이, 온실 및 거리에서 온도를 보는 것.
arduina의 강제 재부팅은 하루에 한 번 예약됩니다.

5. 폴리셔 조립
여기에서 나는 약간의 여백을 만들고 수압 구성 요소의 기술적 특성을 설명할 것입니다.
펌프제조업체에 따르면 폴란드 회사 Omnigena의 JY1000에는 다음과 같은 특성이 있습니다.
생산성: 60리터/분;
최대 인양 높이: 50m;
소비 전력: 1100W;
최대 자체 프라이밍 깊이: 8m.

또한 이러한 유용한 그래프가 발견되었습니다.

여기


물론 생산성은 우물의 깊이와 필터 막힘에 크게 의존한다는 것을 잊지 마십시오.

솔레노이드 벨브이름은 없지만 많은 페이지(예:)에서 다음과 같은 내용을 찾았습니다.
전압: DC 12V;
전류: 0.5A;
압력: 0.02-0.8MPa;
생산성은 3-25 l / min입니다.
또한 낙관적 인 진술이 있습니다. 수압: 1.2 MPa의 정수압, 5분 지속, 파열, 변형, 누출 없음.... 저것들. 5분 이내에 밸브는 표준 "0.8 MPa 이하"보다 훨씬 더 높은 압력을 견딜 수 있습니다.
다양한 각도에서 밸브를 볼 수 있습니다.


또한 약한 전원 공급 장치에서 밸브를 테스트했으며 9볼트에서 문제 없이 열렸습니다.
그리고 습기가 많은 정원에서 밸브가 문제 없이 작동하려면 독창성을 발휘하고 오래된 플라스틱 병을 사용해야 했습니다.
안녕하세요 보나쿠아입니다!


여기 그런 옷에 하나의 밸브가 있습니다. 여기에서 더 잘 볼 수 있습니다.

성능 살포기, 데이터에 따르면 0.21-0.35 MPa의 액체 압력에서 각각 700-1140 l/h 또는 약 11.7-19 l/min입니다.
보시다시피 이상적인 조건에서 펌프는 너무 많은 유량을 전달하며 이는 스프링클러는 물론 밸브도 "압도"하는 것이 물리적으로 불가능합니다. 앞으로 내 경우의 우물은 이상적이지 않고 60 l / min에 도달하지 못했다고 말할 것입니다. 그러다가 모터에서 가장 먼 스프링클러(거의 30미터)까지 이어지는 호스의 길이 때문에 압력도 떨어질 거라 생각하고 너무 신경쓰지 않기로 했다. 그런 다음 "생산 테스트"과정에서 3 개의 스프링클러를 모터에 동시에 연결했습니다. 그들은 매우 약하게 붓고 압력조차도 회전 방향을 바꾸기에 충분하지 않은 것으로 나타났습니다. 스프링클러는 섹터 리미터에 도달할 때까지 회전하고 회전이 멈춥니다. 섹터 제한기를 제거하면 원에서 회전은 다소 문제가 없지만 관개 반경은 2-3m입니다. 스프링클러 1개 버렸는데 좀 나아져서 빙글빙글 돌기도 했지만 반경은 여전히 ​​최대 4미터 였는데 스프링클러 1개는 잘 작동하네요 아주 멀리 쳐요 도중에만) 회전에 문제가 없습니다 ...
스프링클러 자체는 필요에 맞게 조정할 수 있습니다.
- 노즐 반대편의 나사를 풀어 제트를 끊습니다.
- 노즐 반대쪽 플레이트를 올리거나 내려 각도와 그에 따라 분사 거리를 변경합니다.
- 리미터를 사용하여 급수 구역을 변경하거나 리미터 잠금 장치를 완전히 제거하십시오.
다음은 "컨트롤"의 클로즈업 사진입니다.








홀더와 제공된 호스/와이어의 스프링클러는 다음과 같습니다.

6. 일
제어 장치는 현재 시간 외에도 온도 및 습도와 같은 유용한 정보를 표시할 수 있습니다. 거기에서 일정에 따라 물주기 시작 및 시간을 설정할 수 있으며 버튼으로 활성화할 때 물주기 시간을 설정할 수도 있습니다.
4 개의 버튼 중 하나를 짧게 누르면 특정 시간 동안 물을 켤 수 있습니다 (설정에서 설정), 길게 누르면 "무한"모드, 즉 동일한 버튼으로 만 주어진 라인에서 급수를 끌 수 있거나 일정에 따라 라인을 꺼야하는 경우 꺼집니다. 왜 나는 나를 반복합니까? 슬라이드를 주세요!
여기에서 설정을 볼 수 있습니다.











여기 - 우리는 온도와 습도를 봅니다.






우리는 여기에서 정보를 얻습니다

이것이 센서의 집단 농장이 실제로 국가 조건에서 보이는 방식입니다. 현관


피트


온실


이 센서는 아직 아무 말도하지 않습니다. 이유는 위에서 설명했습니다.



그리고 마지막으로 ... 일곱 가지 문제 - 한 번의 재설정 :

그리고 지금 - 비디오, 그것 없이는 어디로 갈 수 있습니까?
1. 미니 소풍 - irrigator의 메뉴에 있는 것. 센서가 연결되지 않았으므로 모든 것이 0으로 표시됩니다.


2. 1분 동안 2,3 라인이 켜지도록 폴리베이터 설정


3. 테스트를 위해 설정된 일정에 따라 물주기는 어떻게됩니까?


4. irrigator 화면에서 예정된 관개가 어떻게 보이는지


5. 버튼에서 급수 테스트 - 켜고 끄기. 나는 스프링클러의 작업을 보여주지 않지만 정직하게 - 모든 것이 작동합니다.


6. 스프링클러와 그 조정: 어디를 돌리고, 돌리고, 고치는가


7. 근거리 소규모 구역의 스프링클러 작동

7. 시장 제안과의 비교
러시아 시장에서 사용 가능한 옵션은 OBI에서 판매되는 Gardena 시스템입니다. 제어 장치를 13,590루블과 다른 3990루블에 사용할 수 있으며 최종 가격은 29550에 불과합니다. 물론 훌륭하고 아름답게 보입니다. 그러나 거의 500 미국 돈을 제공하기 위해 ... 그리고 내가 이해하는 한 - 여기에는 스프링클러, 커넥터 및 호스가 포함되어 있지 않습니다! 좋아, 더 봅시다.
다시 Gardena는 같은 상점에 있지만 이미 6 라인 시스템이 있습니다. 그것은 11190 루블과 6990 루블의 급수 타이머로 구성됩니다 - 총 18180 또는 거의 300 바쿠 ... 이전의 경우와 마찬가지로 호스와 스프링클러는 별도로 구입해야합니다.
Ebay는 즉시 밸브와 함께 제어 장치를 약 $ 60에 ~ $ 35 운송 비용으로 제공했습니다. 결국 거의 100입니다. 옵션으로 Rain Bird ESP-RZX Series 4 및 Hunter XC 400i 컨트롤러(밸브 제외)는 배송비를 제외하고 $75 이상의 가격으로 제공됩니다. 밸브는 분리되어 있습니다. 예를 들어 사냥꾼의 경우 개당 22달러부터 시작하며 도매는 더 저렴합니다.

그리고 뒷말 대신. 이미 시장에 나와 있는 자전거를 발명하는 데 신경을 쓰는 것이 말이 됩니까? 맞는 것 같아요. 나는 이것을 통해 개인적으로 무엇을 얻었습니까? 첫째, 상당한 비용 절감, 둘째, 내가 필요로 하는 방식으로 시스템을 구현할 수 있는 능력, 셋째, 저에게 흥미로웠습니다. 프로젝트를 구현하고 실수를 두려워하지 마십시오. 아무것도 하지 않는 사람만이 틀리지 않는다!

이제 arduina에 대한 약속된 코드입니다.다운로드할 수 있습니다. 가능하면 텍스트에 주석을 추가했지만 특히 이 코드에서는 유량계가 작동하지 않거나 제대로 작동하지 않을 수 있습니다.

나는 +101을 살 계획이다 즐겨 찾기에 추가 리뷰가 마음에 들었습니다 +128 +247

식물이 물을 주어야 할 때 의사 소통을 하고 싶습니까? 아니면 그냥 토양 수분 수준에 대한 정보를 유지하고 계십니까?

이 기사에서는 토양 수분 레벨 센서를 사용하는 자동화된 관개 프로젝트를 살펴보겠습니다.

토양 수분 센서 개요

이 센서는 연결하기 쉽습니다. 3개의 커넥터 중 2개는 전원(VCC) 및 접지(GND)입니다. 센서를 사용할 때는 산화 가능성을 방지하기 위해 주기적으로 전원을 차단하는 것이 좋습니다. 세 번째 출력은 신호(sig)이며, 이 신호에서 판독값을 얻을 수 있습니다. 센서의 두 접점은 가변 저항기의 원리로 작동합니다. 토양에 수분이 많을수록 접점이 전기를 더 잘 전도하고 저항이 떨어지고 SIG 접점의 신호가 증가합니다. 아날로그 값은 공급 전압과 마이크로컨트롤러 아날로그 핀의 분해능에 따라 다를 수 있습니다.

몇 가지 옵션을 사용하여 센서를 연결할 수 있습니다. 아래 그림에 표시된 커넥터:

두 번째 옵션은 더 유연합니다.

물론 접점을 센서에 직접 납땜할 수도 있습니다.

아파트 외부에서 센서를 사용할 계획이라면 먼지와 직사광선으로부터 접점을 보호하는 것에 대해 추가로 생각해야 합니다. 하우징을 고려하거나 수분 센서 접점 및 도체에 직접 보호 코팅을 적용하는 것이 좋습니다(아래 그림 참조).

다음 연결을 위한 접점 및 절연 도체에 보호 코팅이 된 토양 수분 레벨 센서:

토양 수분 레벨 센서의 취약성 문제

이 유형의 센서의 단점 중 하나는 민감한 요소의 취약성입니다. 예를 들어 Sparkfun은 추가 코팅(Electroless Nickel Immersion Gold)을 사용하여 이 문제를 해결합니다. 센서의 수명을 연장하기 위한 두 번째 옵션은 판독값을 가져올 때 센서에 직접 전원을 공급하는 것입니다. Arduino를 사용할 때 모든 것은 센서가 연결된 핀에 HIGH 신호를 인가하는 것으로 제한됩니다. Arduino가 제공하는 것보다 더 많은 전압으로 센서에 전원을 공급하려면 항상 추가 트랜지스터를 사용할 수 있습니다.

토양 수분 제어 - 프로젝트 예

아래 프로젝트에서는 Arduino 보드의 아날로그인 RedBoard와 토양 수분 수준에 대한 데이터를 표시하는 LCD 디스플레이인 수분 수준 센서가 사용됩니다.

SparkFun 토양 수분 센서:

빨간색 리드(VCC)는 Arduino의 5V에 연결되고 검은색 리드는 접지(GND)에 연결되고 녹색 리드는 아날로그 핀 0(A0)에 대한 신호에 연결됩니다. Arduino에서 다른 아날로그 핀을 사용하는 경우 아래의 마이크로컨트롤러 스케치를 적절하게 변경해야 합니다.

LCD 디스플레이는 직렬 통신 프로토콜을 사용하여 마이크로 컨트롤러와 통신하기 위해 5V, 접지 및 디지털 핀 2(코드를 변경하고 변경할 수도 있음)에 연결됩니다.

센서의 수명을 연장하려면 센서의 전원을 디지털 핀에 연결하고 데이터를 읽을 때만 전원을 켠 다음 끌 수 있습니다. 센서에 계속 전원이 공급되면 감지 요소가 곧 녹슬기 시작합니다. 토양에 수분이 많을수록 부식이 더 빨리 발생합니다. 또 다른 옵션은 변환기에 파리 석고를 바르는 것입니다. 결과적으로 수분이 유입되지만 부식이 현저히 느려집니다.

아두이노 프로그램

스케치는 매우 간단합니다. LCD 디스플레이로 데이터를 전송하려면 소프트웨어 직렬 라이브러리를 포함해야 합니다. 없는 경우 여기에서 다운로드할 수 있습니다. Arduino GitHub

코드에 대한 주석에 추가 설명이 제공됩니다.

// LCD 디스플레이와 함께 토양 수분 레벨 센서를 사용하는 예.

소프트웨어 직렬 mySerial(3,2); // 핀 2 = TX, 핀 3 = RX(사용하지 않음)

정수 임계값Up = 400;

정수 임계값다운 = 250;

int sensorPin = A0;

문자열 DisplayWords;

정수 센서 값;

mySerial.write(254);

mySerial.write(128);

// 디스플레이 지우기:

mySerial.write("");

mySerial.write("");

// 커서를 LCD 디스플레이의 첫 번째 줄의 시작 부분으로 이동합니다.

mySerial.write(254);

mySerial.write(128);

// "말리고, 물을 주세요!"

mySerial.write(254);

mySerial.write(192);

mySerial.print(디스플레이워드);

) else if (sensorValue> = thresholdUp) (

// 커서를 디스플레이의 두 번째 줄의 시작 부분으로 이동합니다.

mySerial.write(254);

mySerial.write(192);

mySerial.print(디스플레이워드);

// 커서를 디스플레이의 두 번째 줄의 시작 부분으로 이동합니다.

mySerial.write(254);

mySerial.write(192);

mySerial.print(디스플레이워드);

프로그램은 다른 최소값과 최대값을 사용합니다. 결과적으로 평균값은 토양이 젖었는지 건조되었는지에 따라 수분을 특성화할 수 있습니다. 이 평균을 사용하지 않으려면 최대값과 최소값을 동일하게 가정할 수 있습니다. 그러나 실험을 통해 제안된 접근 방식이 토양에서 발생하는 과정을 보다 정확하게 특성화할 수 있음을 보여줍니다. 현실 세계에는 명확하고 정확한 평균 값이 없습니다. 따라서 범위를 샘플링하여 놀 수 있습니다. 물과 상호 작용할 때 토양에서 발생하는 과정에 관심이 있다면 여기를 읽으십시오(예: Wiki). 그 과정은 상당히 복잡하고 흥미롭습니다.

어쨌든 토양의 종류, 필요한 수분 수준 등 자신의 조건에 맞게 변수를 조정해야 합니다. 따라서 올바른 값을 찾을 때까지 테스트하고 실험하십시오.

습도 센서의 데이터 읽기를 구성하고 표시한 후 자동 관개 시스템을 구성하여 프로젝트를 추가로 개발할 수 있습니다.

Arduino 기반 자동 관개 시스템의 일부인 습도 수준 센서:

관개를 자동화하려면 풀리, 기어, 모터, 커플 링, 트랜지스터, 저항과 같은 추가 부품이 필요합니다. 목록은 프로젝트에 따라 다릅니다. 글쎄, 일상 생활에 올 수있는 모든 것. 한 가지 예가 아래에 더 자세히 나와 있습니다.

이것은 자동 관개 시스템용 모터를 설치하기 위한 많은 옵션 중 하나입니다. 바퀴는 물에 직접 설치할 수 있습니다. 이 경우 빠른 회전으로 식물에 물이 공급됩니다. 일반적으로 상상력을 보여줄 수 있습니다.

SparkFun의 Arduino 사본의 예를 사용한 DC 모터 연결 다이어그램()은 다음과 같습니다.

아래는 Arduino에 대한 스케치입니다(사실, 모터를 제어하기 위한 약간의 추가가 있는 위의 것과 동일합니다).

// 스케치는 센서에서 데이터를 읽고 토양 수분 수준을 표시합니다.

// 흙이 마르면 엔진 시동

// 소프트웨어 직렬 라이브러리는 디스플레이 작업에 사용됩니다.

#include & ltSoftwareSerial.h & gt

// 직렬 RX 프로토콜을 사용하여 LCD 디스플레이를 사용하여 통신하기 위한 핀을 Arduino의 디지털 핀 2에 연결합니다.

소프트웨어 직렬 mySerial(3,2); // 핀 2 = TX, 핀 3 = RX(사용하지 않음)

// 핀 9를 사용하여 엔진을 제어합니다.

// 이 핀은 반드시 PWM 변조를 지원해야 합니다.

const int motorPin = 9;

// 여기에 몇 가지 상수를 설정합니다.

// 상수 설정은 센서가 사용되는 외부 환경의 조건에 따라 다릅니다.

정수 임계값Up = 400;

정수 임계값다운 = 250;

// 센서와 함께 작동하도록 Arduino의 핀 A0을 설정합니다.

int sensorPin = A0;

핀모드(모터핀, 출력); // 모터가 연결된 핀을 출력으로 설정

mySerial.begin(9600); // 전송 속도를 9600 보드로 설정

지연(500); // 디스플레이가 로드될 때까지 기다립니다.

// 여기에 표시할 데이터를 저장하는 문자열을 선언합니다.

// 액정 디스플레이에서. 값이 변경됩니다

// 토양 수분 수준에 따라

문자열 DisplayWords;

// sensorValue 변수는 핀 A0의 센서 아날로그 값을 저장합니다.

정수 센서 값;

sensorValue = analogRead(센서 핀);

mySerial.write(128);

// 디스플레이 지우기:

mySerial.write("");

mySerial.write("");

// 커서를 LCD 디스플레이의 첫 번째 줄의 시작 부분으로 이동합니다. mySerial.write (254);

mySerial.write(128);

// 디스플레이에 필요한 정보를 씁니다.

mySerial.write("수위:");

mySerial.print(센서값); // 값에 .write 대신 .print 사용

// 이제 이전에 설정한 수치 상수와 비교하여 수분 수준을 확인합니다.

// 값이 thresholdDown보다 작으면 다음 단어를 표시합니다.

// "말리고, 물을 주세요!"

// 커서를 디스플레이의 두 번째 줄의 시작 부분으로 이동합니다.

mySerial.write(254);

mySerial.write(192);

DisplayWords = "말리고 물을 주세요!";

mySerial.print(디스플레이워드);

// 낮은 회전수로 엔진 시동(0 - 정지, 255 - 최대 속도):

analogWrite(모터핀, 75);

// 값이 thresholdDown보다 작지 않은 경우 검사를 수행해야 하며,

// thresholdUp보다 크거나 크면

// "Wet, Leave it!"이라는 비문을 표시합니다.

) else if (sensorValue> = thresholdUp) (

// 커서를 디스플레이의 두 번째 줄의 시작 부분으로 이동합니다.

mySerial.write(254);

mySerial.write(192);

DisplayWords = "젖은 채로 놔두세요!";

mySerial.print(디스플레이워드);

// 엔진 끄기(0 - 정지, 255 - 최대 속도):

analogWrite(모터 핀, 0);

// 수신된 값이 최소값과 최대값 사이의 범위에 있는 경우

// 이전에는 흙이 젖었지만 지금은 건조합니다.

// "Dry, Water it!"이라는 비문을 표시합니다. (즉, 우리가

// thresholdDown에 접근). 흙이 말랐다면 지금

// 빠르게 수분을 공급하고 "Wet, Leave it!"이라는 단어를 표시합니다. (즉, 우리가

// thresholdUp에 접근):

// 커서를 디스플레이의 두 번째 줄의 시작 부분으로 이동합니다.

mySerial.write(254);

mySerial.write(192);

mySerial.print(디스플레이워드);

지연(500); // 판독 사이의 0.5초 지연

당신의 식물에 자동으로 물을 주는 행운을 빕니다!

다음 꽃이 마르고 나면 물주는 과정을 어떻게든 자동화하면 좋겠다는 생각이 들었습니다. 왜냐하면 그녀는 물 부족으로 죽었다고 확신하기 때문입니다.
나는 나를 위해 꽃에 물을 줄 구조물을 조립하기로 결정했습니다. 결과적으로, 나는 그 임무에 아주 잘 대처하는 그러한 장치를 얻었습니다.

두 개의 조절기를 사용하여 한 번에 관개하는 물의 양과 물을 주는 간격을 조정할 수 있습니다. 누가 상관 - 그러한 장치를 만드는 방법에 대한 자세한 지침. 나는 두뇌의 기초를 위해 Arduino Mega를 사용했습니다.
스프링클러를 조립하려면 여러 구성 요소가 필요하며 30분 이하의 자유 시간이 필요합니다.

사용된 구성 요소:

  • Arduino Mega (그냥 가까이에 있었지만 다른 사람은 할 수 있음)
  • 펌프 및 실리콘 튜브(자동차 앞유리 와셔 펌프로 가능 - 모든 자동차 부품에서 구입하거나 eBay에서 소형 수중 펌프를 구입할 수 있음)
  • 전원 공급 장치
  • 조정용 가변 저항 2개(임의)
  • IRL3705N 바이폴라 트랜지스터
  • 2개의 저항기(100ohm 및 100kohm)
  • 다이오드(모든)
  • 물탱크(내 경우에는 이케아의 플라스틱 상자)
  • 형세

우리는 다음 계획에 따라 모든 것을 수집합니다.

또는 더 명확하게:

내가 얻은 것은 다음과 같습니다.

먼저 펌프를 테스트해 보겠습니다. 5V를 공급합시다. 그가 윙윙 거리면 모든 것이 정상입니다. 계속 진행하십시오.

이제 펌프를 Arduino에 연결해 보겠습니다. arduino로 펌프를 제어하기 위해 브레드보드에 작은 하네스를 만들어 봅시다.

Arduino로 펌프를 제어해 봅시다. 그런 코드를 채워보자

정수 펌프핀 = 5; 무효 설정()(pinMode(pumpPin, OUTPUT); digitalWrite(pumpPin, LOW);) 무효 루프()(digitalWrite(pumpPin, HIGH); 지연(1000); digitalWrite(pumpPin, LOW); 지연(1000);)

주기적으로 윙윙 거리면 모든 것이 다시 정상입니다.

이제 두 개의 컨트롤을 추가해야 합니다. 가변 저항기를 장치에 연결하고 성능을 확인합시다.

아두이노에 그런 코드를 채워보자

int volumePin = A0; 무효 설정 () (pinMode (volumePin, INPUT); Serial.begin (9600);) 무효 루프 () (Serial.println (analogRead (volumePin)); 지연 (100);)

직렬 모니터로 이동하여 노브 회전에 대한 반응이 있는지 확인합니다. 약 0에서 1024로 변경되어야 합니다.

이제 모든 것이 함께 작동하도록 하는 것이 남아 있습니다.

스프링클러 코드 자체는 다음과 같습니다.

// 첫 번째 조절기는 물이 흐르는 시간을 제어합니다(4~15초). #define MAX_FLOWTIME 15 // 초 #define MIN_FLOWTIME 4 // 초 // 두 번째 조절기는 하루에 한 번에서 일주일에 한 번으로 급수 빈도를 제어합니다.#define MAX_PERIOD 7 // 일 #define MIN_PERIOD 1 // 일 #define MAX 1015 #define MIN 0 int volumePin = A0; // 관개수의 양을 담당하는 조절기가 연결된 핀정수 periodPin = A1; // 조절기가 연결된 핀으로 급수 사이의 기간을 담당합니다.정수 펌프핀 = 5; // 펌프 컨트롤이 연결된 핀정수 볼륨; 정수 기간; // volume에 지정된 시간 동안 펌프를 켜는 절차 void water() (digitalWrite(pumpPin, HIGH); // 펌프를 켭니다.지연(볼륨); digitalWrite(펌프핀, 낮음); // 펌프 끄기지연(기간); ) 무효 설정() (pinMode(pumpPin, OUTPUT); digitalWrite(pumpPin, LOW);) 무효 루프() ( // 조정기(가변 저항기)의 값을 읽고 지정된 한계로 가져옵니다.볼륨 = 맵(analogRead(볼륨핀), MIN, MAX, MIN_FLOWTIME, MAX_FLOWTIME) * 1000; 기간 = 맵(analogRead(periodPin), MIN, MAX, MIN_PERIOD, MAX_PERIOD) * 1000 * 60 * 60 * 24; 물 (); )

다 준비 됐어. 우리는 휴식을 즐깁니다. 그리고 당신은 항상 당신의 식물이 물을 받고 있다는 것을 알게 될 것입니다.

이 공유