- 필요한 재료 :
- 작업 방법론 :
- 전제 조건 :
- AC 리모컨 작동 :
- 회로도 및 설명 :
- AC 원격 신호 디코딩 :
- 주요 Arduino 프로그램 :
- 자동 AC 온도 제어 시스템의 작동 :
한때 명품으로 여겨 졌던 AC (에어컨)는 대형 호텔, 영화관, 레스토랑 등에서 만 볼 수 있었지만 이제는 거의 모든 사람들이 우리 집에 AC가있어 여름을 이길 수 있습니다. 겨울과 그것을 가진 사람들은 한 가지 공통점에 대해 걱정합니다. 그것은 높은 전력 소비와 그로 인한 충전기입니다. 이 프로젝트에서는 실내 온도 에 따라 자동으로 AC 온도 를 변경하여 충전기를 최소화 할 수있는 소형 자동 온도 제어 회로 를 만들 것 입니다. 설정 온도를 주기적으로 변경하면 AC가 장시간 낮은 온도 값으로 작동하도록하여 전력 소비를 줄일 수 있습니다.
우리 대부분은 하루 중 다른 시간 동안 에어컨의 설정 온도를 다른 값으로 변경해야하는 상황을 경험했을 것입니다. 이 프로세스를 자동화하기 위해이 프로젝트는 실내의 현재 온도를 읽는 온도 센서 (DHT11) 를 사용하고 그 값을 기반으로 AC의 리모컨과 유사한 IR 블래스터를 통해 AC에 명령을 보냅니다. AC는 마치 리모컨에 반응하는 것처럼 이러한 명령에 반응하여 온도를 조정합니다. 방의 온도가 변하면 Arduino 는 AC의 설정 온도를 조정하여 원하는 방식으로 온도를 유지합니다. 멋지죠?… 하나를 만드는 방법을 봅시다.
필요한 재료:
- Arduino Mega 2560
- TSOP1738 (HS0038)
- IR 주도
- DHT11 온도 / 습도 센서
- 모든 컬러 LED 및 1K 저항기 (옵션)
- 브레드 보드
- 전선 연결
작업 방법론:
TV, 홈 시어터, AC 등을 제어하는 데 사용하는 우리 집의 모든 리모컨은 IR 블래스터의 도움으로 작동합니다. IR 블래스터는 반복 펄스에 의해 신호를 블래스터 수있는 것도 있지만, IR LED 없다; 이 신호는 전자 기기의 수신기에서 읽습니다. 리모컨의 각 다른 버튼에 대해 수신기가 읽은 후 특정 미리 정의 된 작업을 수행하는 데 사용되는 고유 신호가 발파됩니다. 리모컨에서 나오는이 신호를 읽을 수 있다면 특정 작업을 수행해야 할 때마다 IR LED를 사용하여 동일한 신호를 모방 할 수 있습니다. 우리는 이전에 Universal IR Remote를위한 IR Blaster 회로를 만들었습니다.
TSOP는 원격지에서 오는 신호를 디코딩하는 데 사용될 수 있다는 IR 수신기이다. 이 수신기는 각 버튼에 대해 신호를 보내기 위해 Arduino와 인터페이스되고 필요할 때마다 신호를 모방하기 위해 Arduino와 함께 IR Led가 사용됩니다. 이렇게하면 Arduino를 사용하여 AC를 제어 할 수 있습니다.
이제 남은 것은 DHT11을 사용하여 온도 값을 읽고 그에 따라 IR 신호를 사용하여 AC에 지시하는 것입니다. 프로젝트를 더 매력적이고 사용자 친화적으로 보이게하기 위해 현재 온도, 습도 및 AC 설정 온도를 표시 하는 OLED 디스플레이 도 추가했습니다. Arduino와 함께 OLED를 사용하는 방법에 대해 자세히 알아보십시오.
전제 조건:
이 자동 AC 온도 컨트롤러 프로젝트 는 초급 수준에 비해 약간 고급이지만, 시간 문제로이를 구축 할 수있는 다른 튜토리얼은 거의 없습니다. 따라서 OLED, DHT11 또는 TSOP를 완전히 처음 접하는 분이라면 아래의 튜토리얼로 돌아가 기본 사항과 시작 방법을 배울 수 있습니다. 목록이 약간 길어 보일 수 있지만 쉽고 배울 가치가 있으며 많은 새로운 프로젝트에 대한 문을 열 것입니다.
- TSOP 및 IR LED를 사용하는 기본 회로
- Arduino와 DHT11을위한 기본 인터페이스 가이드
- Arduino와 OLED 용 기본 인터페이스 가이드
- TSOP와 Arduino를 연결하여 IR 원격 값 읽기
코드 크기가 무거 우므로 Arduino Mega 및 기타 Arduino 버전 이 있는지 확인하십시오. 또한 아래 링크를 통해 설치하지 않은 경우 다음 Arduino 라이브러리를 이미 설치했는지 확인하십시오.
- TSOP 및 IR Blaster 용 IR 원격 라이브러리
- OLED 용 Adafruit 라이브러리
- OLED 용 GFX 그래픽 라이브러리
- 온도 센서 용 DHT11 센서 라이브러리
AC 리모컨 작동:
프로젝트를 진행하기 전에 잠시 시간을내어 AC 리모컨이 어떻게 작동하는지 확인하십시오. AC 리모컨은 TV, DVD IR 리모컨과 약간 다른 방식으로 작동합니다.. 리모컨에는 10-12 개의 버튼 만있을 수 있지만 다양한 유형의 신호를 보낼 수 있습니다. 리모컨은 동일한 버튼에 대해 매번 동일한 코드를 전송하지 않습니다. 예를 들어 아래 버튼을 사용하여 온도를 24 ° C (섭씨)로 낮추면 일련의 데이터가 포함 된 신호를 받게되지만 다시 눌러 25 ° C로 설정하면 동일한 값을 얻지 못합니다. 온도가 이제 24가 아니라 25이므로 데이터가 저장됩니다. 마찬가지로 25에 대한 코드는 팬 속도, 절전 설정 등에 따라 달라집니다. 따라서 모든 옵션을 조작하지 말고 다른 설정에 대해 일정한 값으로 온도 값만 집중 해 보겠습니다..
또 다른 문제는 각 버튼을 누를 때마다 전송되는 데이터의 양입니다. 24 비트 또는 48 비트를 전송하는 일반 리모컨이지만 각 신호에는 온도, 팬 속도와 같은 많은 정보가 포함되어 있으므로 AC 리모컨은 최대 228 비트를 전송할 수 있습니다. 수면 타이밍, 스윙 스타일 등. 이것이 더 나은 저장 옵션을 위해 Arduino Mega가 필요한 이유입니다.
회로도 및 설명:
다행히이 자동 AC 온도 제어 프로젝트 의 하드웨어 설정 은 매우 쉽습니다. 간단히 브레드 보드를 사용하여 아래와 같이 연결할 수 있습니다.
다음 표를 사용하여 연결을 확인할 수도 있습니다.
S.No: |
부품 핀 |
Arduino 핀 |
1 |
OLED – Vcc |
5V |
2 |
OLED – Gnd |
Gnd |
삼 |
OLED- SCK, D0, SCL, CLK |
4 |
4 |
OLED- SDA, D1, MOSI, 데이터 |
삼 |
5 |
OLED- RES, RST, 리셋 |
7 |
6 |
OLED- DC, A0 |
5 |
7 |
OLED- CS, 칩 선택 |
6 |
8 |
DHT11 – Vcc |
5V |
9 |
DHT11 – Gnd |
Gnd |
10 |
DHT11 – 신호 |
13 |
11 |
TSOP – Vcc |
5V |
12 |
TSOP – Gnd |
Gnd |
13 |
IR Led – 양극 |
9 |
14 |
IR Led – 음극 |
Gnd |
연결이 완료되면 아래와 같이 보일 것입니다. 나는 Breadboard를 사용하여 물건을 정리했지만 남성과 여성 전선을 직접 연결하여 모든 구성 요소를 연결할 수도 있습니다
AC 원격 신호 디코딩:
AC를 제어하는 첫 번째 단계는 TSOP1738을 사용하여 AC 원격 제어 IR 코드 를 디코딩하는 것 입니다. 회로도에 표시된대로 모든 연결을 확인하고 언급 된 모든 라이브러리를 설치했는지 확인합니다. 이제 File- > Examples-> IRremote-> IRrecvDumpV2 에서 찾을 수있는 예제 프로그램“ IRrecvDumpV2 ”를 엽니 다. 프로그램을 Arduino Mega에 업로드하고 직렬 모니터를 엽니 다.
리모컨을 TSOP쪽으로 향하고 아무 버튼이나 누르십시오. 각 버튼을 누르면 TSOP1738에서 해당 신호를 읽고 Arduino에서 디코딩하여 직렬 모니터에 표시합니다. 리모컨의 온도가 변경 될 때마다 다른 데이터가 제공됩니다. 이 데이터를 저장하면 주 프로그램에서 사용할 수 있습니다. 직렬 모니터는 다음과 같이 표시되며 복사 된 데이터를 저장 한 Word 파일도 표시했습니다.
스크린 샷은 AC 리모컨의 온도를 26 ° C로 설정하는 코드를 보여줍니다. 리모컨에 따라 다른 코드 세트가 제공됩니다. 마찬가지로 모든 온도 수준에 대한 코드를 복사하십시오. 이 튜토리얼의 끝 부분에 제공된 Arduino 코드에서 모든 에어컨 리모컨 IR 코드를 확인할 수 있습니다.
주요 Arduino 프로그램:
전체 주요 아두 이노 프로그램은 이 페이지의 하단에서 찾을 수 있습니다,하지만 당신은 같은 프로그램을 사용할 수 없습니다. 위의 예제 스케치에서 방금 얻은 신호 코드 값을 변경해야합니다. Arduino IDE에서 기본 프로그램을 열고 아래에 표시된이 영역으로 스크롤하여 배열 값을 리모컨에 대해 얻은 값으로 대체해야합니다.
나는 것을 주 (10 개) 배열을 사용 ON을 켜고 나머지 8 개의 서로 다른 온도를 설정하는 데 사용되는 동안 AC 전원을 끄고하는 데 사용되는 두 개의 중. 예를 들어 Temp23은 AC에서 23 ° C를 설정하는 데 사용되므로 해당 배열의 해당 코드를 사용하십시오. 완료되면 Arduino에 코드를 업로드하고 AC 반대편에 놓고 Cool Breeze를 즐기십시오.
코드 설명은 다음과 같습니다. 먼저 DHT1 온도 센서를 사용 하여 온도 및 습도를 읽고 OLED에 표시해야합니다. 이것은 다음 코드에 의해 수행됩니다.
DHT.read11 (DHT11_PIN); // 온도 및 습도 측정 값 읽기 d_temp = DHT. temperature + temp_error; Measured_Humi = DHT. 습도; // 텍스트 디스플레이 테스트 display.setTextSize (1); display.setTextColor (WHITE); display.setCursor (0,0); display.print ("온도:"); display.print (Measured_temp); display.println ("C"); display.setCursor (0,10); display.print ("습도:"); display.print (Measured_Humi); display.println ("%");
방의 온도를 알고 나면 원하는 값과 비교하면됩니다. 이 원하는 값은 내 프로그램에서 27 ° C (섭씨)로 설정된 상수 값입니다. 따라서이 비교를 기반으로 아래와 같이 해당 AC 온도를 설정합니다.
if (Measured_temp == Desired_ temperature + 3) // AC가 ON이고 측정 된 온도가 원하는 것보다 매우 높은 경우 {irsend.sendRaw (Temp24, sizeof (Temp24) / sizeof (Temp24), khz); delay (2000); // 24 * C AC_Temp = 24를 설정하기위한 신호 보내기; }
여기서 측정 된 온도가 30 ° C 일 때 AC는 24 ° C로 설정됩니다 (원하는 온도는 27이므로). 마찬가지로 아래에 표시된 것처럼 측정 된 온도를 기반으로 다양한 수준의 온도를 설정하기 위해 여러 If 루프를 만들 수 있습니다.
if (Measured_temp == Desired_ temperature-1) // AC가 ON이고 측정 된 온도가 원하는 값보다 낮은 경우 {irsend.sendRaw (Temp28, sizeof (Temp28) / sizeof (Temp28), khz); delay (2000); // 28 * C AC_Temp = 28을 설정하기위한 신호 보내기; } if (Measured_temp == Desired_ temperature-2) // AC가 ON이고 측정 된 온도가 원하는 값보다 매우 낮은 경우 {irsend.sendRaw (Temp29, sizeof (Temp29) / sizeof (Temp29), khz); delay (2000); // 29 * C AC_Temp = 29를 설정하기위한 신호 보내기; } if (Measured_temp == Desired_ temperature-3) // AC가 ON이고 측정 된 온도가 매우 낮은 희망 값인 경우 {irsend.sendRaw (Temp30, sizeof (Temp30) / sizeof (Temp30), khz); delay (2000); // 30 * C AC_Temp = 30을 설정하기위한 신호 보내기; }
자동 AC 온도 제어 시스템의 작동:
코드와 하드웨어가 준비되면 보드에 코드를 업로드하면 OLED가 이와 비슷한 것을 표시하는 것을 확인할 수 있습니다.
이제 에어컨 반대편에 회로를 배치하면 실내 온도에 따라 AC의 온도가 제어되는 것을 알 수 있습니다. 아래 비디오 와 같이 AC의 온도가 제어되는지 확인하기 위해 DHT11 센서 근처의 온도를 높일 수 있습니다.
원하는 작업을 수행하도록 프로그램을 조정할 수 있습니다. 예제 스케치에서 얻은 코드 만 있으면됩니다. 이 자동 온도 조절기 프로젝트 를 이해 하고 매우 유사한 것을 만드는 것을 즐겼기를 바랍니다. 여기에 막힐 곳이 많이 있다는 것을 알고 있지만 걱정하지 마십시오. 포럼이나 댓글 섹션을 사용하여 문제를 설명하면 여기에있는 사람들이 문제를 해결하는 데 확실히 도움이 될 것입니다.