며칠 동안 마을을 나갈 때마다 우리는 식물이 정기적으로 물을 필요로하기 때문에 항상 식물에 대해 걱정했습니다. 그래서 여기서 우리는 Arduino를 사용하여 자동 식물 관개 시스템을 만들고 있습니다.이 시스템 은 식물에 자동으로 물을 공급하고 휴대 전화로 메시지를 보내 업데이트를 유지합니다.
이 식물 급수 시스템 에서 토양 수분 센서 는 토양 의 수분 수준을 확인하고 수분 수준이 낮 으면 Arduino가 물 펌프를 켜서 식물에 물을 공급합니다. 시스템이 토양에서 충분한 수분을 발견하면 워터 펌프가 자동으로 꺼집니다. 시스템이 펌프를 켜거나 끌 때마다 GSM 모듈을 통해 사용자에게 메시지가 전송되어 물 펌프 및 토양 수분의 상태를 업데이트합니다. 이 시스템은 농장, 정원, 가정 등에서 매우 유용합니다.이 시스템은 완전히 자동화 되어 있으며 사람이 개입 할 필요가 없습니다.
Arduino 식물 급수 시스템 프로젝트에 필요한 구성 요소
- Arduino Uno
- GSM 모듈
- 트랜지스터 BC547 (2)
- 전선 연결
- 16x2 LCD (옵션)
- 전원 공급 장치 12v 1A
- 릴레이 12v
- 워터 쿨러 펌프
- 토양 수분 센서
- 저항기 (1k, 10k)
- 가변 저항기 (10k, 100k)
- 터미널 커넥터
- 전압 레귤레이터 IC LM317
GSM 모듈:
여기에서는 TTL SIM800 GSM 모듈을 사용했습니다. SIM800은 고객이나 애호가가 쉽게 내장 할 수있는 완전한 쿼드 밴드 GSM / GPRS 모듈입니다. SIM900 GSM 모듈은 산업 표준 인터페이스를 제공합니다. SIM800은 낮은 전력 소비로 음성, SMS, 데이터에 GSM / GPRS 850 / 900 / 1800 / 1900MHz 성능을 제공합니다. 이 SIM800 GSM 모듈의 디자인은 얇고 컴팩트합니다. 시장이나 eBay에서 온라인으로 쉽게 구할 수 있습니다.
- 작은 크기의 쿼드 밴드 GSM / GPRS 모듈.
- GPRS 사용
- TTL 출력
여기에서 GSM 모듈 및 AT 명령에 대해 자세히 알아보십시오. 또한 GSM 및 Arduino를 사용하는 다양한 프로젝트를 확인하여 인터페이스를 올바르게 이해하십시오.
회로 설명:
이 식물 관개 시스템 에서는 수제 토양 수분 센서 프로브 를 사용하여 토양 수분 수준을 감지했습니다. 프로브를 만들기 위해 아래 그림과 같이 구리 클래드 보드를 자르고 에칭했습니다. 프로브의 한쪽은 Vcc에 직접 연결되고 다른 프로브 단자는 BC547 트랜지스터의베이스에 연결됩니다. 전위차계는 센서의 감도를 조정하기 위해 트랜지스터의 바닥에 연결됩니다.
Arduino 는이 자동 식물 급수 시스템 의 전체 프로세스를 제어하는 데 사용됩니다. 토양 센서 회로의 출력은 Arduino의 디지털 핀 D7에 직접 연결됩니다. 센서 회로에는 LED가 사용되며,이 LED의 ON 상태는 토양에 수분이 있음을 나타내고 OFF 상태는 토양에 수분이 없음을 나타냅니다.
GSM 모듈 은 사용자에게 SMS를 보내는 데 사용됩니다. 여기서는 TTL 로직을 직접주고 받는 TTL SIM800 GSM 모듈을 사용했습니다 (사용자는 모든 GSM 모듈을 사용할 수 있음). LM317 전압 조정기는 SIM800 GSM 모듈에 전력을 공급하기 위해 사용된다. LM317은 정격 전압에 매우 민감하므로 사용하기 전에 데이터 시트를 읽는 것이 좋습니다. 작동 전압 등급은 3.8v ~ 4.2v입니다 (작동하려면 3.8v를 선호하십시오). 아래는 TTL sim800 GSM 모듈에 제공된 전원 공급 장치 의 회로도입니다.
SIM900 TTL 모듈을 사용하려면 5V를 사용하고 SIM900 모듈을 사용하려면 보드의 DC 잭 슬롯에 12V를 적용해야합니다.
12V 릴레이 220VAC 소형 워터 펌프를 제어하는 데 사용된다. 릴레이는 Arduino의 디지털 핀 11에 추가로 연결된 BC547 트랜지스터에 의해 구동됩니다.
옵션 LCD 는 상태 및 메시지 표시에도 사용됩니다. LCD, RS 및 EN의 제어 핀은 Arduino의 핀 14 및 15에 연결되고 LCD D4-D7의 데이터 핀은 Arduino의 핀 16, 17, 18, 19에 직접 연결됩니다. LCD는 4 비트 모드에서 사용되며 Arduino의 내장 LCD 라이브러리에 의해 구동됩니다.
아래는 arduino 및 토양 수분 센서가있는이 관개 시스템의 회로도입니다.
작동 설명:
이 자동 식물 관개 시스템의 작동 은 매우 간단합니다. 우선 완전 자동화 된 시스템으로 시스템 을 제어 할 인력이 필요 없습니다. Arduino는 전체 프로세스를 제어하는 데 사용되며 GSM 모듈은 휴대폰에서 사용자에게 경고 메시지를 보내는 데 사용됩니다.
토양에 수분이 있으면 토양 수분 센서의 두 프로브 사이에 전도가 있으며이 전도로 인해 트랜지스터 Q2는 트리거 / 온 상태로 유지되고 Arduino 핀 D7은 Low로 유지됩니다. Arduino가 D7에서 LOW 신호를 읽으면 사용자에게“Soil Moisture is Normal. 모터가 꺼지고 물 펌프가 꺼진 상태로 유지됩니다.
이제 토양에 수분이 없으면 트랜지스터 Q2가 꺼지고 핀 D7이 High가됩니다. 그런 다음 Arduino는 핀 D7을 읽고 물 모터를 켜고 "낮은 토양 수분이 감지되었습니다."라는 메시지를 사용자에게 보냅니다. 모터 켜짐”. 토양에 수분이 충분하면 모터가 자동으로 꺼집니다. 프로젝트 작업 프로세스를 더 잘 이해 하려면 데모 비디오 및 코드 (마지막에 제공됨)를 확인하십시오.
프로그래밍 설명:
이 프로그램의 코드는 쉽게 이해할 수 있습니다. 우선 우리는 2 번과 3 번 핀을 Rx & Tx로 만들기위한 SoftwareSerial 라이브러리를 포함 시켰 으며 LCD 용 LiquidCrystal 도 포함 했습니다 . 그런 다음 모터, 토양 수분 센서, LED 등에 대한 몇 가지 변수를 정의했습니다.
#포함
그런 다음 void setup () 기능에서 직렬 통신은 9600bps로 초기화되고 다양한 핀에 방향이 주어집니다. GSM 모듈을 초기화하기 위해 gsmInit 함수가 호출됩니다.
Serial1.begin (9600); Serial.begin (9600); pinMode (led, OUTPUT); pinMode (모터, OUTPUT); pinMode (센서, INPUT_PULLUP); lcd.print ("Water Irrigaton"); lcd.setCursor (4,1); 지연 (2000); lcd.clear (); lcd.print ("회로 다이제스트"); lcd.setCursor (0,1); lcd.print ("환영합니다"); 지연 (2000); gsmInit ();
그러면 void loop () 기능으로 센서를 읽어 내고 센서 상태에 따라 모터를 켜거나 끄고 sendSMS 기능을 사용하여 사용자에게 SMS도 전송 합니다. 마지막에 주어진 전체 코드에서 다양한 기능을 확인하십시오.
void loop () {lcd.setCursor (0,0); lcd.print ("자동 모드"); if (digitalRead (sensor) == 1 && flag == 0) {지연 (1000); if (digitalRead (sensor) == 1) {digitalWrite (led, HIGH); sendSMS ("낮은 토양 수분이 감지되었습니다. 모터가 켜졌습니다."); lcd.begin (16,2); lcd.setCursor (0,1);…………………
여기서 gsmInit () 함수가 중요하며 사용자는 대부분 올바르게 설정하는 것이 어렵다는 것을 알게됩니다. GSM 모듈 을 초기화하는 데 사용 되며 먼저 GSM 모듈에 'AT'명령을 전송하여 GSM 모듈의 연결 여부를 확인합니다. OK 응답이 수신되면 준비가 된 것입니다. 시스템은 모듈이 준비 될 때까지 또는 'OK'가 수신 될 때까지 모듈을 계속 확인합니다. 그런 다음 ATE0 명령을 전송하여 ECHO를 끄고 그렇지 않으면 GSM 모듈이 모든 명령을 에코합니다. 마지막으로 'AT + CPIN?'을 통해 네트워크 가용성을 확인합니다. 명령, 삽입 된 카드가 SIM 카드이고 PIN이있는 경우 READY 응답을 제공합니다. 네트워크를 찾을 때까지 반복적으로 확인합니다. 이것은 아래 비디오에서 명확하게 이해할 수 있습니다.
void gsmInit () {lcd.clear (); lcd.print ("모듈 찾기.."); 부울 at_flag = 1; while (at_flag) {Serial1.println ("AT"); while (Serial1.available ()> 0) {if (Serial1.find ("OK")) at_flag = 0; } 지연 (1000); }……………….
따라서이 자동 관개 시스템 을 사용하면 집에서 멀리 떨어져있을 때 식물에 대해 걱정할 필요가 없습니다. 인터넷을 통해 작동 및 모니터링되도록 더욱 향상 될 수 있습니다.