방에 앉아 추위를 느끼고 히터가 자동으로 켜지고 실내 온도가 상승하면 얼마 후에 꺼지기를 원한다고 가정하면이 프로젝트는 온도에 따라 가전 제품을 자동으로 제어 할 수 있도록 도와줍니다. 여기서는 온도를 기준으로 아두 이노로 가정용 AC 기기를 제어하고 있습니다. 여기서 우리는 온도를 읽기 위해 서미스터를 사용했습니다. 우리는 이미 Thermistor를 Arduino와 인터페이스하고 LCD에 온도를 표시했습니다.
이 튜토리얼에서는 릴레이가있는 AC 기기를 연결하고 Arduino를 사용하여 온도 제어 홈 자동화 시스템을 만듭니다. 또한 회로에 연결된 16 * 2 LCD 디스플레이에 온도 및 기기 상태를 표시합니다.
필요한 재료
- Arduino UNO
- 릴레이 (5v)
- 16 * 2 LCD 디스플레이
- 전구 (CFL)
- NTC 서미스터 10k
- 전선 연결
- 저항기 (1k 및 10k 옴)
- 전위차계 (10k)
회로도
이 온도 기반 홈 자동화 시스템 은 Arduino 보드, LCD 디스플레이, 릴레이 및 서미스터와 같은 다양한 구성 요소로 구성됩니다. 작동은 주로 릴레이와 서미스터에 따라 온도가 증가함에 따라 릴레이가 켜지고 온도가 사전 설정 값 이하로 떨어지면 릴레이가 꺼집니다. 릴레이에 연결된 가전 제품도 이에 따라 켜지고 꺼집니다. 여기에서는 CFL 전구를 AC 기기로 사용했습니다. 전체 트리거링 프로세스 및 온도 값 설정은 프로그래밍 된 Arduino 보드에서 수행됩니다. 또한 0.5 초마다 온도 변화와 LCD 화면의 기기 상태에 대한 세부 정보를 제공합니다.
계전기:
릴레이는 작은 전류에 의해 제어되는 전자기 스위치로 상대적으로 훨씬 큰 전류를 켜고 끄는 데 사용됩니다. 작은 전류를 적용함으로써 훨씬 더 큰 전류가 흐르도록 릴레이를 켤 수 있습니다. 릴레이는 훨씬 더 작은 DC 전류를 사용하여 AC (교류) 장치를 제어하는 좋은 예입니다. 일반적으로 사용되는 릴레이는 SPDT (Single Pole Double Throw) 릴레이로 다음과 같은 5 개의 단자가 있습니다.
코일에 전압이인가되지 않으면 COM (공통)이 NC (상시 닫힘 접점)에 연결됩니다. 코일에 약간의 전압이 가해지면 전기자 (스프링에 연결된 레버)를 끌어 당기는 전자기장이 생성되고 COM과 NO (일반적으로 열린 접점)가 연결되어 더 큰 전류가 흐를 수 있습니다. 릴레이는 여러 등급으로 제공되며 여기서는 7A-250VAC 전류가 흐르도록하는 5V 작동 전압 릴레이를 사용했습니다.
릴레이는 트랜지스터, 다이오드 및 저항으로 구성된 작은 드라이버 회로 를 사용하여 구성됩니다. 트랜지스터는 전류를 증폭하는 데 사용되어 전체 전류 (DC 소스-9v 배터리)가 코일을 통해 흐르고 완전히 에너지를 공급할 수 있습니다. 저항은 트랜지스터에 바이어스를 제공하는 데 사용됩니다. 다이오드는 트랜지스터가 꺼질 때 역전 류 흐름을 방지하는 데 사용됩니다. 모든 인덕터 코일은 갑자기 꺼질 때 동일하고 반대의 EMF를 생성하므로 부품에 영구적 인 손상을 줄 수 있으므로 역전 류를 방지하기 위해 다이오드를 사용해야합니다. 릴레이 모듈은 보드의 모든 드라이버 회로 시장에서 쉽게 볼 수 있습니다 또는 구성 요소 위에 사용하여 만들 수 있습니다. 여기에서는 5V 릴레이 모듈을 사용했습니다.
서미스터를 사용하여 온도 계산:
전압 분배기 회로에서 다음을 알고 있습니다.
V 아웃 = (V 에서 * RT) / (R + RT)
따라서 Rt의 값은 다음과 같습니다.
Rt = R (Vin / Vout) – 1
여기서 Rt는 서미스터 (Rt)의 저항이되고 R은 10k 옴 저항이됩니다.
이 방정식은 출력 전압 Vo의 측정 된 값에서 서미스터 저항을 계산하는 데 사용됩니다. 아래의 Arduino 코드에서 볼 수 있듯이 Arduino의 핀 A0에있는 ADC 값에서 Voltage Vout 값을 얻을 수 있습니다.
서미스터 저항에서 온도 계산
수학적으로 서미스터 저항은 Stein-Hart 방정식을 통해서만 계산할 수 있습니다.
T = 1 / (A + B * ln (Rt) + C * ln (Rt) 3)
여기서 A, B 및 C는 상수이고 Rt는 서미스터 저항이고 ln은 로그를 나타냅니다.
프로젝트에 사용 된 서미스터의 상수 값은 A = 1.009249522 × 10 −3, B = 2.378405444 × 10 −4, C = 2.019202697 × 10 −7 입니다. 이러한 상수 값은 세 가지 다른 온도에서 서미스터의 세 가지 저항 값을 입력하여 여기 계산기에서 얻을 수 있습니다. 서미스터의 데이터 시트에서 직접 이러한 상수 값을 얻거나 다른 온도에서 세 개의 저항 값을 얻고 주어진 계산기를 사용하여 상수 값을 얻을 수 있습니다.
따라서 온도를 계산하려면 서미스터 저항 값만 필요합니다. 위에 주어진 계산에서 Rt 값을 얻은 후 값을 Stein-hart 방정식에 넣으면 온도 값을 Kelvin 단위로 얻을 수 있습니다. 출력 전압에 약간의 변화가 있기 때문에 온도가 변화합니다.
Arduino 코드
이 온도 제어 가전 제품에 대한 완전한 Arduino 코드 는이 기사의 끝에 제공됩니다. 여기서 우리는 그것의 몇 가지 부분을 설명했습니다.
수학적 연산을 수행하기 위해 헤더 파일 “#include
#포함
시작시 릴레이 (출력)와 LCD를 설정 하려면 void 설정 부분에 코드를 작성해야합니다.
Void setup () {lcd.begin (16,2); lcd.clear (); pinMode (RELAY, OUTPUT); }
서미스터의 전기 저항을 사용하여 Stein-Hart 방정식으로 온도를 계산하기 위해 위의 계산에서 설명한대로 코드에서 몇 가지 간단한 수학 방정식을 수행합니다.
플로트 a = 1.009249522e-03, b = 2.378405444e-04, c = 2.019202697e-07; float T, logRt, Tf, Tc; float Thermistor (int Vo) {logRt = log (10000.0 * ((1024.0 / Vo-1))); T = (1.0 / (a + b * logRt + c * logRt * logRt * logRt)); // Stein-Hart 방정식에서 온도 값을 켈빈으로 얻습니다. Tc = T-273.15; // 켈빈을 섭씨로 변환 Tf = (Tc * 1.8) + 32.0; // 켈빈을 화씨로 변환 return T; }
아래 코드에서 기능 서미스터는 Arduino의 아날로그 핀에서 값을 읽고 수학 연산을 수행하여 온도 값 을 인쇄합니다.
lcd.print ((서미스터 (analogRead (0))));
그리고 그 값은 Thermistor 기능에 의해 취해지고 계산은 인쇄를 시작합니다
플로트 서미스터 (int Vo)
온도가 섭씨 28도 이상 상승하면 불이 적게 꺼지면 불이 켜지는 것처럼 온도 값을 설정하므로 온도에 따라 불을 켜고 끄는 조건에 대한 코드를 작성해야합니다. 따라서 온도가 28도 이상으로 올라갈 때마다 릴레이 모듈을 켜기 위해 RELAY 핀 (PIN 8)을 높게 만들어야합니다. 그리고 온도가 28도 이하로 내려 가면 릴레이 모듈을 끄기 위해 RELAY 핀을 낮게 만들어야합니다.
if (Tc> 28) digitalWrite (RELAY, HIGH), lcd.setCursor (0,1), lcd.print ("Light status: ON"), delay (500); else if (Tc <28) digitalWrite (RELAY, LOW), lcd.setCursor (0,1), lcd.print ("Light status: OFF"), delay (500);
온도 제어 홈 자동화 시스템의 작동:
Arduino에 전원을 공급하려면 USB를 통해 노트북에 전원을 공급하거나 12v 어댑터를 연결할 수 있습니다. LCD는 Arduino와 인터페이스되어 온도 값을 표시하고 Thermistor 및 Relay는 회로도에 따라 연결됩니다. 아날로그 핀 (A0)은 매 순간 서미스터 핀의 전압을 확인하는 데 사용되며, Arduino 코드를 통해 Stein-Hart 방정식을 사용하여 계산 한 후 온도를 가져와 LCD에 섭씨와 화씨로 표시 할 수 있습니다.
온도가 섭씨 28도 이상 상승하면 Arduino는 온도가 28도 이하로 내려 가면 Pin 8을 HIGH (릴레이 모듈이 연결된 위치)로 만들어 릴레이 모듈을 켜게합니다. Arduino는 Pin을 LOW로 만들어 릴레이 모듈을 끕니다. 릴레이 모듈에 따라 CFL 전구도 켜지고 꺼집니다.
이 시스템은 온도 제어 팬 및 자동 AC 온도 컨트롤러 프로젝트에서 매우 유용 할 수 있습니다.
또한 다음 과 같은 다양한 기술과 마이크로 컨트롤러를 사용하는 다양한 유형의 홈 자동화 프로젝트를 확인하십시오.