스마트팜(Smart Farm) 구축 중 하나인 자동관수 시스템에 자주 사용되는 솔레노이드 밸브(Solenoid Valve)에 대해 알아보겠습니다.
솔레노이드 밸브는 전자밸브 중 하나인데 전기신호를 받아 밸브를 on/off 할 수 있는 밸브를 전자밸브라고 합니다. 다양한 종류의 전자밸브가 있으며 그중에 솔레노이드 밸브는 솔레노이드의 특성을 이용한 밸브장치라고 생각하시면 되며, 솔레노이드 밸브 종류 또한 다양한 종류가 있습니다.
오늘 소개해 드릴 솔레노이드 밸브는 자동관수에 일반적으로 가장 많이 사용하는 형태로 아래와 같이 생긴 솔레노이드 밸브입니다.
위 제품은 관수밸브에서 꽤나 알려진 "버마드(Bermad)"라는 회사의 솔레노이드 밸브로 24VAC에 작동합니다. 솔레노이드 밸브의 구동전압이 다양한 제품들이 시중에서 판매되고 있지만 주로 12VDC 또는 24VAC를 많이 찾아볼 수 있습니다. 따라서 아두이노(Arduino)를 이용하여 솔레노이드 밸브를 작동하려면 12VDC/24VAC 또는 spec.에 맞는 외부전원을 사용해야 합니다. 외부전원을 사용하는 방법은 자동선풍기를 만들었던 방법과 동일하니 아래 링크 참조하시고, 뒤에서 다시 또 설명하도록 하겠습니다.
아두이노(Arduino)를 이용한 센서(Sensor) 작동 자동 선풍기 만들기
아두이노(Arduino)를 이용한 홈 IoT (생활응용)에 적용하는 시간으로 무더운 여름 시즌에 맞춰 자동 선풍기를 만들어보겠습니다. 2020년 여름은 예년보다 특히 더 덥다고 하니 똑똑한 자동 선풍기로
it-g-house.tistory.com
1. 솔레노이드 밸브(Solenoid Valve) 원리
앞서 설명한데로 솔레노이드 밸브는 솔레노이드 특성을 사용합니다. 다들 아시겠지만 솔레노이드는 긴 원통에 코일을 감아놓은 것입니다. 여기에 전류가 흐르면 자기장이 발생하는 데 그 원리를 이용하여 밸브를 열고 닫고 합니다.
동작 방식을 설명하기 앞서 솔레노이드 밸브 구성은 아래와 같이 빨간 점선 부분의 솔레노이드 부분과 파란색 점선 부분의 밸브로 두 부분으로 나눌 수 있습니다.
아래는 위키피디아에 있는 그림인데 동작 방식을 잘 설명해주고 있습니다. 빨간색 부분의 솔레노이드에 해당하는 부분이 E 부분이며 밸브가 나머지라고 생각하시면 됩니다. 위에 그림이 밸브가 닫혀 있을 때, 아래 그림이 밸브가 열렸을 때(솔레노이드에 전기신호를 주었을 때 = 전류가 흐를 때)입니다.
A- Input side (물의 주입구)
B- 영어로 Diaphragm라고 되어 있는데 실제로 고무 판막입니다.
C- Pressure chamber
D- Pressure relief passage
E- Electro-Mechanical Solenoid (솔레노이드)
F- Output side (물의 출구)
밸브가 닫힌 상태에서 A로 물이 들어오면 B의 고무 판막 중앙에 뚫려있는 작은 구멍을 통해 C에 물이 가득 찹니다. 그래서 F의 출구 쪽 압력과 C의 압력 차이로 인해 밸브가 열리지 않는 상태가 됩니다. 밸브를 열기 위해 E 솔레노이드에 전기신호가 들어가면 E의 검은색으로 막고 있는 부분이 열리고 C의 물이 D쪽 통로로 빠져나가면서 B의 고무 판막이 들리게 되어 밸브가 열리고 A에서 F로 물이 통할 수 있는 길이 열립니다.
2. 12VDC 솔레노이드 밸브(Solenoid Valve)
위에서 설명을 위해 보여드렸던 "버마드" 제품은 비싸기도 하고 구동전력이 24VAC라서 외부전원으로 어댑터(변압기)도 구하기 쉽지 않습니다. 그래서 가격도 저렴하면서 12VDC에 구동하는 제품을 추천드립니다.
3. 솔레노이드 밸브(Solenoid Valve) 아두이노(Arduino) 배선
어댑터 및 변압기의 전선작업을 하실 때는 위험하니 꼭 주의하셔서 진행하시기 바랍니다.
4. Test 프로그램 코딩
배선 후 간단하게 테스트할 수 있는 프로그램 코드 아래 첨부하겠습니다. 3초 동안 on 하고 5초 동안 off 되는 동작을 반복하기 때문에 연결해서 정상 동작하는지 확인 가능합니다.
int Relay = 3;
void setup(){
pinMode(Relay,OUTPUT); // 릴레이를 출력으로 설정
}
void loop(){
digitalWrite(Relay,HIGH); // 릴레이 ON
delay(3000); // 3초동안 ON
digitalWrite(Relay,LOW); // 릴레이 OFF
delay(5000); // 5초동안 OFF
}
오늘은 솔레노이드 밸브(Solenoid Valve)에 대해 알아보고, 아두이노(Arduino)를 이용하여 어떻게 사용하는지 보았습니다. 전자밸브는 꼭 관수뿐만 아니라 가스관이나 유체 등의 밸브에도 많이 사용될 수 있기 때문에 알아두시면 프로젝트를 진행할 때 많은 도움이 되실 겁니다.
이를 응용하여 스마트팜에 토양수분센서를 이용하여 자동으로 관수하는 시스템을 만들어 보겠습니다.
오늘도 긴 글 읽어 주셔서 감사합니다.
'아두이노 (Arduino) > 아두이노 센서&모듈 (Sensor)' 카테고리의 다른 글
Arduino 아두이노 적외선 FIR 센서(HC-SR501) 사용하는 방법 (0) | 2021.01.23 |
---|---|
Arduino 아두이노 광센서, 조도센서(Light sensor) 사용 방법 (0) | 2020.06.11 |
Arduino 아두이노 Wifi ESP8266 쉴드(shield) 모듈 사용방법 (2) | 2020.04.22 |
Arduino 아두이노 멀티플렉서(Multiplexer, MUX) 사용방법 (5) | 2020.04.21 |
아두이노(Arduino)에서 토양수분센서(soil moisture sensor) 사용 (3) | 2020.03.15 |
아두이노(Arduino)를 이용한 센서(Sensor) 작동 자동 선풍기 만들기
아두이노(Arduino)를 이용한 홈 IoT (생활응용)에 적용하는 시간으로 무더운 여름 시즌에 맞춰 자동 선풍기를 만들어보겠습니다. 2020년 여름은 예년보다 특히 더 덥다고 하니 똑똑한 자동 선풍기로 조금이나마 더위를 식혀보자고요 ^^
기획은 진작에 해놓고.. 여름 다 지나가고... 업로드 하게 되었네요 ㅠㅠ 그래도 아직은 8월이니까;; 도움이 되었으면 합니다..
1. 준비물
1) 아두이노 우노 R3 (Arduino UNO R3)
프로젝트가 간단해서 우노 R3 제품으로 충분한데 혹시 나노(Nano)를 보유하신 분은 나노가 더 적합한 거 같습니다.
2) HC-SR04 초음파 센서
온라인에서 '초음파 센서'를 검색하면 아두이노용으로 많이 사용하는 모델인 'HC-SR04' 모듈입니다. 초음파 센서에 관한 자세한 내용은 앞선 포스팅에서 소개해 드렸으니 아래 링크 참조 부탁드리며, 이번 포스팅에서는 넘어가도록 하겠습니다.
Arduino 아두이노 초음파(거리) 센서(ultrasounds sensor) 사용방법
앞서 포스팅에서 온습도 센서(Temperature and Humidity sensor)만 가지고 아두이노의 기본적인 동작법이나 파일 저장법, 그래프 그리기, 엑셀(Excel)과 연동하는 방법들을 알아보았습니다. 그리고 인터넷(
it-g-house.tistory.com
3) AM2305 온습도 센서 (Temperature and Humidity sensor)
DHT11와 DHT22에 비해 조금 더 비싸지만 측정오차가 가장 작고 회로를 감싸는 외부 케이스가 있어서 실외에서도 사용하기 좋아 개인적으로 AM2305 모듈을 많이 사용합니다. 이번 프로젝트는 DHT11 모듈으로도 충분하니까 AM2305 모듈이 없으신 분은 DHT11 또는 DHT22 모듈을 사용하시면 됩니다.
▼ 같은 제품 구매하시려면 아래 링크!! ▼
AM2305 온도 습도 디지털 센서 : 스토어플랜트
[스토어플랜트] 안녕하세요 스토어플랜트입니다.
smartstore.naver.com
4) DC-DC 승압형 5V 600mA USB 모듈
아두이노 및 외부전력의 5V 전압을 활용하여 USB 구동 전자기기들을 사용할 수 있게 연결해주는 모듈입니다.
5) 릴레이(Relay)
아두이노에서 스위치로 자주 사용되는 릴레이 모듈로 1 채널짜리로 준비하였습니다. 초음파 센서와 온습도 센서의 측정 데이터를 기반으로 설정된 조건에 따라 전원의 스위치를 On/Off 하는 데 사용합니다. 릴레이 사용 방법에 대한 자세한 내용은 아래 링크 걸어두겠습니다 ^^
Arduino 아두이노 릴레이 (Relay, 스위치) 사용방법
아두이노(Arduino)는 컨트롤러(controller)인 만큼 외부기기나 센서의 전원을 on/off 하는 경우가 많이 있습니다. 보통 이런 기능은 스위치(switch)가 하죠 ^^ 전자기기에서 전기신호를 받아서 스위치 역��
it-g-house.tistory.com
6) 220V AC-5V DC 어댑터
가정의 220V 교류(AC) 전원을 5V DC로 변환시켜 USB 선풍기로 공급을 위해 어댑터를 준비하였습니다. 릴레이(Relay)와 USB 모듈에 연결시켜 전원공급에 사용됩니다.
2. 아두이노 배선
온습도 센서와 릴레이는 앞서 포스팅한대로 아두이노와 연결하면 됩니다. 릴레이의 VCC와 GND는 아두이노의 5V와 GND pin에 연결하고, IN 단자는 아두이노의 디지털 3번 핀에 연결하였습니다. 온습도 센서의 VCC와 GND는 아두이노의 3.3V와 GND pin에 연결하고, data 선은 디지털 2번 핀에 연결하였습니다. 릴레이 COM 포트에 어댑터의 '+' 선을 연결하고 NO 포트와 USB 모듈의 '+' 부분과 연결합니다. 어댑터의 '-' 선은 USB 모듈의 '-'와 연결하고 USB 선풍기를 USB 모듈에 연결하면 모든 준비가 완료됩니다.
3. 동작 알고리즘
우선 실내 온도를 계속 모니터링 하면서 실내 온도를 기준으로 너무 덥지 않으면 선풍기가 작동하지 않게 설정 온도 이상일 때만 선풍기가 동작하도록 프로그램을 코딩합니다. 그리고 초음파 센서를 이용하여 사람이 가까이 오면 릴레이에 신호를 주어 어댑터를 통해 들어오는 전원이 USB 모듈에서 선풍기로 전달될 수 있게 스위치 ON 상태가 되도록 프로그램을 코딩합니다. 다시 사람이 멀어지거나 실내온도가 설정 온도 이하가 되면 선풍기는 릴레이가 스위치 OFF가 되어 선풍기가 자동으로 꺼지게 설계합니다.
4. 아두이노 프로그램 코딩
#include<dht.h>
dht DHT;
#define DHT21_PIN 2
float hum; //Stores humidity value
float temp; //Stores temperature value
int Relay = 3;
int echo = 8;
int trig = 12;
void setup() {
Serial.begin(9600);
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
pinMode(Relay, OUTPUT);
}
void loop() {
DHT.read21(DHT21_PIN);
hum = DHT.humidity;
temp = DHT.temperature;
float cycletime;
float distance;
digitalWrite(trig, HIGH);
delay(10);
digitalWrite(trig, LOW);
cycletime = pulseIn(echo, HIGH);
distance = ((340 * cycletime) / 10000) / 2;
Serial.print("Distance:");
Serial.print(distance);
Serial.println("cm");
Serial.print("Humidity: ");
Serial.print(hum);
Serial.print(" %, Temp: ");
Serial.print(temp);
Serial.println(" Celsius");
if(distance < 100 and temp > 25){
digitalWrite (Relay, LOW);
}
else{
digitalWrite (Relay, HIGH);
}
delay(1000);
}
프로그램은 앞서 포스팅한 온습도 센서, 릴레이(Relay) 모듈, 초음파 센서(HC-SR04)의 프로그램을 합치면 됩니다.
여기서 초음파 센서를 다룰때는 LED를 점멸하기 위해 'Power' 변수를 Pin 13으로 설정한 부분을 조건에 맞게 릴레이를 on/off 하기 위해 'Relay' 변수로 Pin 3번으로 변경합니다.
그리고 IF 조건문에서 원하는 distance 거리와 temp 온도 설정을 하면 됩니다. 저는 100 이하 25도 이상으로 설정하였습니다.
그리고 업로드 해주시면 완료~! 예시 동영상처럼 원하는 온도조건에서 사람이 가까이 있으면 선풍기가 켜집니다~ 와우!
여기까지 아두이노(Arduino)를 이용한 홈IoT (사물인터넷) 응용으로 스마트 자동 선풍기를 만들어 보았습니다.
역시나 이런 간단한 알고리즘을 더하고 더해서 좀 더 스마트하고 Fancy 한 기능을 가진 제품들이 탄생합니다. 더 나아가서 와이파이를 연결하여 원격제어 및 생성되는 데이터를 축적하여 빅데이터가 만들어지고, 빅데이터를 분석하여 학습시키면 인공지능이 탄생하는 겁니다.
세상이 급변하는 것처럼 보이지만 차근차근 하나씩 따라해봐도 늦지 않습니다. 다들 화이팅!!
오늘도 긴 글 읽어주셔서 감사합니다. 궁금한 점이나 추가적인 조언 있으면 언제든지 댓글로 남겨주세요~
'아두이노 응용 > 생활응용 (홈 IoT)' 카테고리의 다른 글
아두이노(Arduino) 응용, 적외선 FIR센서를 이용한 무드등 만들기 (1) | 2021.03.11 |
---|
Arduino 아두이노 릴레이 (Relay, 스위치) 사용방법
아두이노(Arduino)는 컨트롤러(controller)인 만큼 외부기기나 센서의 전원을 on/off 하는 경우가 많이 있습니다. 보통 이런 기능은 스위치(switch)가 하죠 ^^ 전자기기에서 전기신호를 받아서 스위치 역할을 하는 부품을 릴레이(Relay: 전자계전기)라고 합니다. 지난 포스팅에서 초음파 센서를 사용하여 사람이 접근하면 외부기기에 전원을 공급하는 방법에서도 릴레이 모듈을 사용할 수 있습니다. 오늘은 아두이노에서 주로 사용되는 릴레이 모듈을 알아보고 사용하는 방법을 알아보겠습니다.
Arduino 아두이노 초음파(거리) 센서(ultrasounds sensor) 활용: 사람 인식하는 전자기기 작동 시스템
아두이노(Arduino)의 센서들을 알아보는 시간으로 지난 포스팅에서 초음파 센서 사용법과 이를 이용하여 거리를 측정하는 방법을 알아보았습니다. 오늘은 이를 활용하여 사람이 다가가면 전자기기가 자동으로 작동..
it-g-house.tistory.com
1. 릴레이(Relay: 전자계전기)
우선 릴레이는 스위치입니다. 아두이노에서 제공하는 전력만으로 구동할 수 없는 외부기기를 컨트롤하고 싶을 때 외부 전원을 릴레이와 연결하여 (설정)조건이 만족할 때 아두이노에서 신호를 보내 컨트롤하기 위해 주로 사용합니다.
저희가 알고 있는 일반적인 스위치는 버튼(button)형이나 텀블러(tumbler)형 같이 손으로 수동으로 on/off 해야 하지만 릴레이는 전기신호로 자동으로 on/off 할 수 있습니다. 보통 릴레이는 '전자석(철심에 코일을 감은 것)'의 원리로 움직이는데 전자석은 전류가 흐르면 자기장이 형성되는 자석입니다. 그래서 릴레이 모듈에 전기신호가 들어오면, 즉 전류가 흐르면 자기가 형성되어 그림과 같이 자석이 열려있는 스위치를 끌어당겨 on 시켜줍니다.
릴레이 종류는 동작 방식이나 허용 전력 용량에 따라 여러 종류가 있습니다. 더 자세한 내용이 궁금하면 아래 '메카솔루션' 링크 참조 부탁드립니다.
릴레이란? (릴레이 구조, 릴레이 원리, 릴레이 종류, 릴레이 작동원리, 릴레이 스위치, 아두이노 릴레이, 무접점 릴레이, 릴레이 접점)
[ 전자부품 릴레이(Relay) 에 대해 알아보기 ] 출처 [메카솔루션] [ 릴레이란? 릴레이의 작동 원리 ] 릴레이는 쉽게 말해 ON OFF가 있는 일종의 스위치 입니다. 하지만 우리가 일반적으로 알고있는 불을 켜고 끌때 누르는 스위치와는 동작원리가 다릅니다. 우리가 일반적으로 접하는 스위치는 수동으로 ON OFF 해주지만 릴레이는 자동…
makeshare.org
2. 릴레이 모듈
위 사진은 1채널 릴레이 모듈이며, 채널 수에 따라 아래 4 채널 모듈과 같이 릴레이 수가 늘어납니다. 모듈에서 파란색 네모 박스가 실제적인 릴레이인데 상단에 JQC3F-5VDC-C (5VDC: 5V 직류 구동)라고 모델명이 있고 아래에 10A 250VAC (교류전압), 10A 30VDC (직류전압) 표시는 최대 입력전압(input voltage)을 나타내고, 하단에 10A 125VAC, 10A, 28VDC는 기본 입력 전압을 나타냅니다. 이에 맞게 허용 전력을 사용하면 됩니다.
제가 구입한건 중국산이라 한자 (常开, 公共端 ,常闭)로 적혀있는데 보통 NC (Normally Close), COM, NO (Normally Open) 이렇게 표시되어 있습니다.
NC (Normally Close, 常闭): 평상시에 닫혀있다는 뜻으로, 릴레이에 전류가 흐르면 Open 되므로 평상시에 전원을 on 상태로 유지하다가 신호를 주어 off 할 때 사용합니다.
NO (Normally Open, 常开): 반대로 평상시에 열려있다는 뜻으로, 릴레이에 전류가 흐르면 Close 되므로 평상시에 전원을 off 상태로 유지하다가 신호를 주어 on 할 때 사용합니다.
COM (Common port, 公共端)는 공통 단자로 전력 또는 외부기기의 한쪽 선을 항상 연결해야 하는 단자입니다.
VCC, GND, IN는 릴레이(전자석)을 구동하기 위한 전력 단자 (VCC, GND)와 신호를 주기 위한 IN (input) 단자입니다.
3. 릴레이 배선
그림과 같이 아두이노의 5V 단자와 릴레이 모듈의 VCC와 연결하고, GND는 GND pin에 연결합니다. 그리고 아두이노 프로그램에서 설정한 디지털 PIN 번호(저는 3번과 연결하겠습니다.)와 IN 단자와 연결합니다. 다음으로 전원을 컨트롤하고 싶은 전자기기와 외부 전력을 연결하고 한쪽 단자 중간에 릴레이(스위치)를 장착한다고 생각하시면 됩니다.
* 주의: 만약 전선작업을 직접 하시면 전원 반드시 뽑아서 안전 주의하세요!!!
4. 아두이노 프로그램
int Relay = 3;
void setup(){
pinMode(Relay,OUTPUT); // 릴레이를 출력으로 설정
}
void loop(){
if(조건)
{
digitalWrite(Relay,HIGH); // 조건 만족하면 1채널 릴레이 ON
delay(500);
}
else
{
digitalWrite(Relay,LOW); // 아니면 1채널 릴레이 OFF
delay(500);
}
}
릴레이를 동작하기 위한 아두이노 스케치 프로그램 코드입니다. 저는 아두이노의 디지털 pin 3번에 릴레이 IN 단자와 연결하였기 때문에 int Relay = 3; 으로 설정하고 pinMode를 OUTPUT으로 설정하였습니다. void loop()에서 if 조건문을 사용해서 조건에 맞으면 릴레이에 HIGH 신호를 줘서 릴레이 스위치를 on 하고, 조건이 맞지 않으면 off 되는 간단한 프로그램 코드입니다. 다양한 센서를 사용해서 if()에 원하는 설정 조건을 직접 작성하시면 됩니다.
아두이노 명령어가 익숙하지 않으신 분은 pinMode 및 if문에 대한 명령어는 아래 링크 참조하시면 됩니다.
아두이노(Arduino) 프로그램 코딩 초급 (pinMode, digitalWrite, if 명령어)
지난 시간 스케치로 프로그램을 코딩할 때 자주 사용되는 꼭 필요한 명령어 몇 가지를 알아보았습니다. IT 비전공자가 프로그램 언어를 기본부터 완전히 이해하면서 배우는 것은 쉬운 일은 아닙니다. 그렇기 때문..
it-g-house.tistory.com
여기까지 아두이노(Arduino)에서 자주 사용하는 릴레이(Relay: 전자계전기)에 대해 알아보았습니다. 릴레이는 앞으로 추진하는 IoT 프로젝트에 반드시 필요한 모듈 중 하나라 사용방법을 알아두면 좋습니다. 다음 포스팅에는 릴레이에 외부기기와 전원을 연결하여 동작하는 작은 프로젝트를 하나 진행해 보겠습니다.
오늘도 긴 글 읽어주셔서 감사합니다. 궁금한 부분은 댓글로 언제든지 남겨주세요 ^^
'아두이노 (Arduino) > 아두이노 센서&모듈 (Sensor)' 카테고리의 다른 글
Arduino 아두이노 멀티플렉서(Multiplexer, MUX) 사용방법 (5) | 2020.04.21 |
---|---|
아두이노(Arduino)에서 토양수분센서(soil moisture sensor) 사용 (3) | 2020.03.15 |
Arduino 아두이노 초음파(거리) 센서(ultrasounds sensor) 활용: 사람 인식하는 전자기기 작동 시스템 (2) | 2019.12.14 |
Arduino 아두이노 초음파(거리) 센서(ultrasounds sensor) 사용방법 (2) | 2019.11.26 |
Arduino 아두이노 온도 습도 센서(Temperature and Humidity sensor) 종류 및 사용법 (0) | 2019.11.03 |