- 필요한 재료 :
- 작업 방법론 :
- 전제 조건 :
- AC 리모컨 작동 :
- 회로도 및 설명 :
- AC 원격 신호 디코딩 :
- 주요 Arduino 프로그램 :
- Android 애플리케이션 설치 :
- 휴대 전화 제어 AC 작동 :
오늘날의 현대 세계에서는 우리가가는 곳마다 주변에 많은 전자 장치가 있습니다. 그러나 무엇보다도 우리가 개인적으로 항상 주머니에 가지고있는 장치는 단 하나뿐입니다. 네, 저희 휴대폰 입니다. 이제 휴대 전화는 통신에 사용되는 장치 그 이상이되었습니다. 카메라,지도, 쇼핑 카트입니다.
이 기능을 사용하면 리모컨을 사용하여 TV, AC, 홈 시어터 등과 같은 가정의 모든 전자 애플리케이션을 제어하는 것은 정말 지루한 아이디어입니다. 침대에서 편안하게 AC 리모컨에 손을 뻗는 것은 항상 답답합니다. 또는 소파. 따라서이 프로젝트 에서는 Bluetooth 및 Arduino를 사용하여 스마트 폰을 통해 에어컨을 제어 할 수있는 작은 설정을 구축 할 것 입니다. 흥미 롭군요! 하나 만들자
필요한 재료:
- Arduino Mega 2560
- TSOP (HS0038)
- IR 주도
- 모든 컬러 LED 및 1K 저항기 (옵션)
- HC-06
- 브레드 보드
- 전선 연결
작업 방법론:
TV, 홈 시어터, AC 등을 제어하는 데 사용하는 우리 집의 모든 리모컨은 IR 블래스터의 도움으로 작동합니다. IR 블래스터는 반복 펄스에 의해 신호를 블래스터 수있는 것도 있지만, IR LED 없다; 이 신호는 전자 기기의 수신기에서 읽습니다. 리모컨의 각 다른 버튼에 대해 수신기가 읽은 후 특정 미리 정의 된 작업을 수행하는 데 사용되는 고유 신호가 발파됩니다. 리모컨에서 나오는이 신호를 읽을 수 있다면 특정 작업을 수행해야 할 때마다 IR LED를 사용하여 동일한 신호를 모방 할 수 있습니다. 우리는 이전에 Universal IR Remote 및 자동 AC 온도 제어를위한 IR Blaster 회로를 만들었습니다.
TSOP는 원격지에서 오는 신호를 디코딩하는 데 사용될 수 있다는 IR 수신기이다. 이 TSOP를 사용하여 Remote의 모든 정보를 디코딩하고 Arduino에 저장합니다. 그런 다음 해당 정보와 IR Led를 사용하여 필요할 때마다 Arduino에서 IR 신호를 다시 생성 할 수 있습니다.
전제 조건:
이 Arduino Bluetooth 제어 AC 프로젝트의 경우 코드 크기가 무겁기 때문에 Arduino Mega가 있고 다른 Arduino 버전이 없는지 확인하십시오. TSOP 및 IR Blaster와 함께 작동하려면이 링크를 사용하여 IR 원격 라이브러리를 설치하십시오.
AC 리모컨 작동:
프로젝트를 진행하기 전에 잠시 시간을내어 AC 리모컨이 어떻게 작동하는지 확인하십시오. AC 리모컨은 TV, DVD IR 리모컨과 약간 다른 방식으로 작동합니다.. 리모컨에는 10-12 개의 버튼 만있을 수 있지만 다양한 유형의 신호를 보낼 수 있습니다. 리모컨은 동일한 버튼에 대해 매번 동일한 코드를 전송하지 않습니다. 예를 들어 아래 버튼을 사용하여 온도를 24 ° C (섭씨)로 낮추면 일련의 데이터가 포함 된 신호를 받게되지만 다시 눌러 25 ° C로 설정하면 동일한 값을 얻지 못합니다. 온도가 이제 24가 아니라 25이므로 데이터가 저장됩니다. 마찬가지로 25에 대한 코드는 팬 속도, 절전 설정 등에 따라 달라집니다. 따라서 모든 옵션을 조작하지 말고 다른 설정에 대해 일정한 값으로 온도 값만 집중 해 보겠습니다..
또 다른 문제는 각 버튼을 누를 때마다 전송되는 데이터의 양입니다. 24 비트 또는 48 비트를 전송하는 일반 리모컨이지만 각 신호에는 온도, 팬 속도와 같은 많은 정보가 포함되어 있으므로 AC 리모컨은 최대 228 비트를 전송할 수 있습니다. 수면 타이밍, 스윙 스타일 등. 이것이 더 나은 저장 옵션을 위해 Arduino Mega가 필요한 이유입니다.
회로도 및 설명:
다행히도이 휴대 전화 제어 에어컨 의 하드웨어 설정 은 매우 쉽습니다. 간단히 브레드 보드를 사용하여 아래와 같이 연결할 수 있습니다.
다음 표를 사용하여 연결을 확인할 수도 있습니다.
S.No: |
부품 핀 |
Arduino 핀 |
1 |
TSOP – Vcc |
5V |
2 |
TSOP – Gnd |
Gnd |
삼 |
TSOP-신호 |
8 |
4 |
IR Led – 음극 |
Gnd |
5 |
IR Led – 양극 |
9 |
6 |
HC-05-Vcc |
5V |
7 |
HC05 – Gnd |
바닥 |
8 |
HC05 – Tx |
10 |
9 |
HC05 – Rx |
11 |
연결이 완료되면 아래와 같이 보일 것입니다. 나는 Breadboard를 사용하여 물건을 정리했지만 남성과 여성 전선을 직접 연결하여 모든 구성 요소를 연결할 수도 있습니다
AC 원격 신호 디코딩:
AC를 제어하는 첫 번째 단계는 TSOP1738을 사용하여 AC 원격 제어 IR 코드 를 디코딩하는 것 입니다. 회로도에 표시된대로 모든 연결을 확인하고 언급 된 모든 라이브러리를 설치했는지 확인합니다. 이제 File- > Examples-> IRremote-> IRrecvDumpV2 에서 찾을 수있는 예제 프로그램“ IRrecvDumpV2 ”를 엽니 다.
int recvPin = 8; IRrecv irrecv (recvPin);
TSOP가 8 번 핀에 연결되었으므로 위와 같이 라인 번호 9를 int recPin = 8로 변경합니다. 그런 다음 프로그램을 Arduino Mega에 업로드하고 직렬 모니터를 엽니 다.
리모컨을 TSOP쪽으로 향하고 아무 버튼이나 누르십시오. 각 버튼을 누르면 TSOP1738에서 해당 신호를 읽고 Arduino에서 디코딩하여 직렬 모니터에 표시합니다. 리모컨의 온도가 변경 될 때마다 다른 데이터가 제공됩니다. 이 데이터를 저장하면 주 프로그램에서 사용할 수 있습니다. 직렬 모니터는 다음과 같이 표시되며 복사 된 데이터를 저장 한 Word 파일도 표시했습니다.
스크린 샷은 AC 리모컨의 온도를 26 ° C로 설정하는 코드를 보여줍니다. 리모컨에 따라 다른 코드 세트가 제공됩니다. 마찬가지로 모든 온도 수준에 대한 코드를 복사하십시오. 이 튜토리얼의 끝 부분에 제공된 Arduino 코드에서 모든 에어컨 리모컨 IR 코드를 확인할 수 있습니다.
주요 Arduino 프로그램:
전체 주요 아두 이노 프로그램은 이 페이지 하단에있을 수 있지만 같은 프로그램을 사용할 수 없습니다. 예제 스케치에서 방금 얻은 신호 코드 값을 변경해야합니다. Arduino IDE에서 기본 프로그램을 열고 아래에 표시된이 영역으로 스크롤하여 배열 값을 리모컨에 대해 얻은 값으로 대체해야합니다.
나는 것을 주 (10 개) 배열을 사용 하는 두 가지의 우리가 설정하고 나머지 8 개의 서로 다른 온도를 설정하는 데 사용되는 동안 AC 전원을 끄고하는 데 사용에서. 예를 들어 Temp23은 AC에서 23 * C를 설정하는 데 사용되므로 해당 배열의 해당 코드를 사용하십시오. 완료되면 아두 이노에 코드를 업로드하기 만하면됩니다.
우리는 필요한 두 개의 라이브러리를 가져올 이 프로젝트. 하나는 방금 Arduino에 추가 한 IRremote 라이브러리이고 다른 하나는 Bluetooth 모듈 사용에 도움이되는 내장 소프트웨어 직렬 라이브러리입니다.
#포함
다음 으로 핀 10과 11에서 Bluetooth 모듈을 초기화 한 다음 irsend라는 개체를 사용하여 라이브러리의 모든 IR 기능에 액세스합니다.
SoftwareSerial BT_module (10, 11); // RX, TX IRsend irsend;
다음은 매우 중요한 코드 라인입니다. AC를 제어하기위한 정보가있는 곳입니다. 아래 표시된 것은 AC 리모컨 용이며 이전 단계에서 가져 왔어 야합니다.
다음으로 void 설정 기능 내에서 두 개의 직렬 통신을 초기화합니다. 하나는 9600 전송 속도의 Bluetooth이고 다른 하나는 57600 전송 속도의 직렬 모니터입니다.
void setup () {BT_module.begin (9600); // BT는 9600 Serial.begin (57600); // 직렬 모니터 작업 아들 57600}
우리의 내부 공간 루프 (무한 루프), 우리는 블루투스 모듈 수신 아무것도가 있는지 확인합니다. 수신 된 정보가 있으면 해당 정보를 BluetoothData 변수에 저장합니다.
while (BT_module.available ()) // 데이터가 오는 경우 {BluetoothData = BT_module.read (); // 읽고 저장합니다. Serial.println (BluetoothData); // 테스트 목적으로 직렬로 인쇄}
블루투스에서 수신 한 정보는 다음 단계에서 설치할 Android 앱 에서 누른 버튼을 기반으로합니다. 정보가 수신되면 아래와 같이 각각의 IR 코드 를 트리거하면 됩니다.
if (BluetoothData == '2') {irsend.sendRaw (Temp23, sizeof (Temp23) / sizeof (Temp23), khz); 지연 (2000); // 온도 23C 설정을위한 신호 보내기}
여기서 코드 '2'가 수신되면 AC의 온도를 23 ° C로 설정해야합니다. 마찬가지로 우리는 AC의 모든 기본 제어 기능을 수행하기 위해 0에서 9까지의 코드를 가지고 있습니다. 이 페이지 끝에서 전체 arduino 코드 를 참조 할 수 있습니다.
Android 애플리케이션 설치:
스마트 폰 제어 에어컨 의 마지막 단계 는 Android 애플리케이션을 설치하는 것입니다. 이 프로젝트의 Android 애플리케이션은 Processing Android Mode를 사용하여 생성되었습니다. 프로세싱은 임베디드 프로젝트를위한.EXE 파일 또는 APK 파일을 생성하는 훌륭한 도구입니다. Arduino와 같은 오픈 소스 플랫폼이므로 완전히 무료로 다운로드하여 사용할 수 있습니다.
너무 깊이 들어가고 싶지 않다면 여기에서 zip 파일 내에서 APK 파일을 다운로드하여 휴대폰에 직접 설치할 수 있습니다. 응용 프로그램을 열면 아래와 같은 화면이 표시되며 그 후 다음 단계로 진행하여 프로젝트 작업을 즐길 수 있습니다. 그러나 응용 프로그램의 프로그램을 필요에 맞게 조정하려면 추가로 읽을 수 있습니다.
처리 코드에 대한 완전한 프로그램 파일이 될 수있다 여기에서 다운로드. 이 Zip에는 애플리케이션이 작동하는 데 사용하는 코드와 이미지 소스가 있습니다. 코드를 연 후 필요에 맞게 다음 줄을 조정할 수 있습니다.
앞서 말했듯이 Processing은 Arduino와 유사합니다. 그래서 그것은 또한 void 설정 과 void 루프 (여기서는 draw) 함수를 가지고 있습니다. void 설정 기능 내에서 휴대폰의 Bluetooth가 Arduino의 Bluetooth에 연결하도록 지시합니다. 여기 내 장치 이름은 "HC-05"이므로 코드 줄은
bt.start (); // BT 연결 수신 시작 bt.getPairedDeviceNames (); bt.connectToDeviceByName ("HC-05"); // HC-06 블루투스 모듈에 연결
다음으로 load_buttons () 함수 내에서 원하는만큼 버튼을 그릴 수 있습니다 . 애플리케이션에 표시된대로 10 개의 버튼을 그렸습니다. 그 다음에 는 어떤 버튼을 터치하고 있는지 감지하는 데 사용되는 read_buttons () 함수가 있습니다. 각 버튼에는 특정 색상이 있으므로 사용자가 화면을 터치하면 사용자가 터치 한 색상을 확인하고 터치 한 버튼을 결정합니다. 버튼을 생성하고 색상에 따라 선택 하는 샘플 코드 는 다음과 같습니다.
fill (255,145,3); rect (너비 / 2- 너비 / 4, 높이 / 2, 너비 / 4, 높이 / 12); fill (255); text ("25C", 너비 / 2- 너비 / 4, 높이 / 2); // 버튼 5 if (color_val ==-13589993) {byte data = { '0'}; bt.broadcast (데이터);}
"byte data = { '0'};"줄 매우 중요한 라인입니다. 여기에서 Bluetooth를 통해 Arduino로 전송해야하는 코드를 결정합니다. 여기서이 버튼을 누르면 블루투스에서 아두 이노로 문자 "0"이 전송됩니다. 마찬가지로 우리는 다른 버튼에 대해 다른 문자를 보낼 수 있습니다. 그런 다음 이러한 문자를 Arduino 측에서 비교할 수 있으며 각 작업을 수행 할 수 있습니다.
의심스러운 부분이 있으면 댓글 섹션을 통해 저에게 연락하고 최선을 다해 도와 드리겠습니다.
휴대 전화 제어 AC 작동:
하드웨어, Arduino 코드 및 안드로이드 애플리케이션을 준비했으면 이제 출력을 즐길 시간입니다. Arduino 코드를 하드웨어에 업로드하고 AC를 향하도록 배치하십시오. 이제 휴대폰에서 Android 애플리케이션을 엽니 다. 모든 것이 예상대로 작동하면 아래와 같이“ 연결됨: device_name (일부 코드) ”가 표시됩니다.
이제 Android 애플리케이션에서 아무 버튼이나 누르기 만하면 마치 리모컨을 사용하는 것처럼 AC에서 각 작업이 트리거됩니다. 코드를 수정하여 원하는만큼 버튼을 추가 할 수 있으며 실내 온도 또는 현재 상태에 따라 AC를 자동화 할 수도 있습니다. 전체 Arduino 코드와 아래 비디오를 확인하십시오.
프로젝트를 즐겼고 그 뒤에있는 개념을 이해 하셨기를 바랍니다. 항상 그렇듯이이 작업을 수행하는 데 문제가 있으면 포럼을 사용하여 질문을 게시하고 해결하도록 할 수 있습니다.
Android 애플리케이션 설치를위한 APK 파일은 여기에서 다운로드 할 수 있습니다.