집에있는 다양한 리모컨을 없애고 모든 기능을 통합 할 수있는 하나의 무언가를 만들기 위해이 프로젝트를 시작했습니다. IR 블래스터 가 내장 된 친구의 휴대폰 중 하나를 보았을 때이 아이디어를 얻었습니다. 당시 나는 비슷한 휴대폰을 사지 않고 기존 휴대폰과 호환되는 내 장치를 만들기로 결정했습니다. 여기에서는 Arduino 를 사용하여 집에서 다양한 장치를 제어하기 위해 Android Phone을 IR Remote로 변환합니다.
필요한 구성 요소:
- Arduino Uno
- IR LED
- TSOP-IR 수신기 (1838T)
- 블루투스 모듈 (HC05)
- Android 기기 (전화, 태블릿 등)
작동 설명:
일반적으로 우리는 집에서 TV를 작동하기 위해 두 개의 리모컨을 사용합니다. 하나는 TV 용이고 다른 하나는 셋톱 박스 용입니다. 따라서이 프로젝트에서는이 두 개의 리모컨을 대상으로 하고 TV를 전화기로 제어 할 수 있도록 Android 폰을 IR 블래스터로 작동 하도록 만들고 있습니다., 리모컨을 건드리지 않고.
Arduino Uno 보드를 사용하면 IR 디코딩 및 인코딩 부분을 더 쉽게 처리 할 수 있습니다. 사용자 정의 만든 방패가 바로이 프로젝트의 편의 부분에 추가합니다. 실드는 TSOP IR 수신기 (1838T), IR LED 및 Bluetooth 모듈 (HC-05)로 구성됩니다. 아래 이미지를 참조하십시오.
아래 섹션의 '회로도'에 표시된대로 맞춤형 실드를 구축하거나 부품을 Arduino에 직접 연결할 수 있습니다.
계속 진행하기 전에 먼저 'IR 리모컨의 작동 방식'에 대해 논의하겠습니다. 대부분의 IR 리모컨은 약 38KHz 주파수에서 작동합니다 (이것이 제가 18 38 T를 선택한 이유입니다). 이 주제에 더 관여하면 이러한 IR 데이터 전송 방법에는 0과 1에 대한 고정 된 표현이 없다는 것을 인식하게 될 것입니다. 이 코드는 우리가 엔지니어링 교과에서 공부하는 다양한 인코딩 기술을 사용합니다 (나는 전자 공학 학생이기 때문에). 38KHz의 중요성은 논리적으로 높을 때 신호가 진동하는 주파수라는 것입니다. 즉, 신호의 반송파 주파수입니다. 아래 그림을보십시오. 이것은 NEC 프로토콜의 예입니다. 이렇게하면 개념이 더 명확 해집니다.
그래서 여기에 이 IR 블래스터가 작동하는 방법; 맞춤형 Android 앱이 설치된 Android Phone은 Bluetooth를 통해 Arduino 회로에 신호를 보내고 Arduino는 TSOP-IR 수신기 (1838T)를 통해 신호를 수신하여 분석합니다. 그런 다음 Arduino는 해당 Android 장치 앱에서 누른 버튼에 따라 IR LED가 특정 패턴으로 깜박이도록 명령합니다. 이 깜박임 패턴은 TV 또는 셋톱 박스의 IR 수신기로 캡처되며 그에 따라 채널을 변경하거나 볼륨을 높이는 것과 같은 지침을 따릅니다.
하지만 그 전에 기존 리모컨 을 디코딩 해야합니다. 앞서 언급했듯이이 프로젝트에서는 두 개의 리모컨을 사용했습니다. 하나는 TV와 통신하는 반면 다른 하나는 TV에 연결된 셋톱 박스 용입니다.
회로도:
Arduino를 사용하여 IR 원격 제어 신호 디코딩:
여기서 Arduino 보드는 두 단계로 작동합니다. 하나는 원격에서 IR 코드를 디코딩하는 데 사용하고 다른 하나는 IR 블래스터 장치로 사용할 때입니다.
첫 번째 단계에 대해 이야기하겠습니다. 이제 IR 버튼 코드 를 디코딩하기 위해 Ken Shirriff의 IRremote 헤더 파일을 사용했습니다. 이 헤더 파일에는 IR 코드 작업을 더 쉽게하기 위해 미리 정의 된 많은 예제 / 코드가 있습니다.
- 먼저 여기 https://github.com/z3t0/Arduino-IRremote에서 IR 원격 라이브러리 를 다운로드하여 설치해야합니다.
- 압축을 풀고 Arduino 'Libraries'폴더에 넣으십시오. 그런 다음 추출 된 폴더의 이름을 IRremote로 바꿉니다.
- 그런 다음 아래 제공된 코드를 Arduino에 굽고 위의 그림과 같이 맞춤형 실드를 연결하고 디코딩 할 리모컨을 TSOP IR 수신기 앞에 놓습니다. 이 Arduino에 해당하는 직렬 모니터를 열고 리모컨에서 원하는 버튼을 누릅니다. 터미널에 몇 가지 정보가 표시되는 것을 볼 수 있습니다.이 정보에는 코드 유형, 해당 값 및 관련된 비트 양이 포함됩니다. 다음과 같이 보입니다.
#포함
원하는 디코딩 부분을 완료했으면 해당 버튼 이름을 누른 상태에서 모든 디코딩 값과 기타 정보를 기록해 둡니다. 이것은 Arduino의 다음 단계를위한 데이터베이스 역할을합니다. 위의 프로그램은 IRremote 라이브러리의 'examples'폴더에서 가져온 것입니다. 더 많은 예제를 확인하여 IR 리모컨 사용에 대해 자세히 알아볼 수 있습니다. 이것이 우리가 IR 원격 출력을 디코딩 한 방법입니다.
이제 마지막에 있는 코드 섹션 에 제공된 코드를 동일한 보드에 굽습니다. 축하합니다.이 프로젝트의 전반부가 완료되었습니다.
IR Blaster 용 Android 앱 빌드:
하반기, Android 앱 제작. 나는 단순히 그런 종류의 앱을 만들기 위해 MIT의 APP 발명가 -2 를 사용하는 것을 선호 합니다. 안드로이드 코딩에 아마추어라면 시간을 절약하고 좋은 결과를 얻을 수 있습니다. 이 앱을 만드는 데 사용되는 주요 구성 요소는 많지 않고 몇 개의 버튼과 Bluetooth 클라이언트 패키지입니다. 앱을 코딩하는 동안 개별 리모컨에서 수행 한 것과 동일한 방식으로 Arduino에 IR LED를 깜박이도록 요청하는 화면에서 눌린 각 버튼에 대해 보낼 해당 텍스트를 제공합니다. 또한 Bluetooth HC-05 모듈의 올바른 주소를 제공했는지 확인하십시오. Android 스마트 폰에서 최종 앱이 표시되는 방식은 다음과 같습니다.
앱을 빌드하는 단계별 프로세스는 다음과 같습니다.
1 단계:
ai2.appinventor.mit.edu 링크에 로그온하거나 Google에서 MIT appinventor-2를 검색해보십시오. AI2에 로그인하려면 Google 계정이 필요하므로 계정이없는 경우 새로 만드세요.
2 단계:
Google 계정으로 로그인하면 다음과 같은 AI2 작동 웹 페이지로 리디렉션됩니다.
상단의 "프로젝트"탭을 클릭하여 새 프로젝트를 시작하고 "새 프로젝트 시작"을 선택합니다. 이름 지정 부분과 모두를 완료하면 위와 같이 버튼과 텍스트를 배치 할 수있는 빈 화면이 표시됩니다. 이것은 사용자에게 앱이 어떻게 보일지 결정하는 GUI 화면입니다.
버튼 패키지를 사용하려면 "사용자 인터페이스"섹션에서 화면 왼쪽의 "버튼"탭을 선택합니다. 왼쪽 메뉴에서 패키지를 끌어서 작업 화면에 놓기 만하면됩니다. 텍스트 관련 항목을 표시하려면 "Label"패키지를 사용하십시오.
3 단계:
모든 버튼과 레이블을 정렬했으면 이제이 앱에 대한 코드를 만들 차례입니다. 하지만 그 전에 Arduino와의 통신을 위해 Bluetooth 패키지도 선택해야합니다.
이 패키지는 화면에 표시되지 않고 "Non-visible Components"아래에 표시됩니다. 이들은 GUI 구성에서 중요하지 않은 구성 요소입니다.
4 단계:
다음은 선택한 구성 요소에 대한 기능을 정의하고 작업 할 코딩 섹션입니다.
화면 왼쪽에는 GUI 섹션에서 선택한 모든 패키지가 표시됩니다. 위의 이미지는 사용할 수있는 특정 패키지에있는 모든 구성 요소를 보여줍니다. 또한 Bluetooth 모듈의 주소는 텍스트 형식으로 제공되어야합니다.
SETP 5:
앱을 사용할 준비가되어 있고 오류도 없다고 생각되면 위와 같이 "Build"탭을 클릭하고 두 번째 옵션을 선택합니다. 이렇게하면 자신이 만든 앱이 ".apk"형식으로 컴퓨터에 다운로드됩니다. 그런 다음이.apk 파일을 Android 장치로 전송하고 클릭하여 설치하면됩니다.
따라서 이것은 스마트 폰으로 모든 IR 원격 제어 장치를 제어 할 수있는 방법입니다. 제어하려는 기기의 리모컨을 전화기로 디코딩하고 Arduino 코드에서 디코딩 된 원격 버튼의 HEX 코드를 교체하기 만하면됩니다.