산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

인터넷 연결 적외선 복제기

구성품 및 소모품

입자 광자
× 1
Adafruit IR 수신기 다이오드
× 1
Adafruit LED - 적외선 950nm
× 1
Arduino UNO
× 1
Teensy 3.1
× 1
Microchip Technology ATmega328
× 1
Microchip Technology ATtiny85
× 1
Espressif ESP8266 ESP-01
× 1
Bluz DK
× 1
레드베어 듀오
× 1

앱 및 온라인 서비스

포터

이 프로젝트 정보

얼마 전 WIFI를 통해 에어컨을 제어할 목적으로 적외선 AC 리모컨을 해독했습니다.

나는 그 과정에서 많은 것을 배웠고 미래 프로젝트에서 당신에게 도움이 될 수 있도록 그 지식을 여러분 모두와 공유하고 싶었습니다(future-me:나도 당신을 보고 있습니다). 저는 Particle Photon을 사용했지만 이 프로젝트에 사용된 IRremote Arduino Library(Ken Shirriff의)가 많은 다른 MCU를 지원하므로 다른 MCU를 사용할 수도 있습니다. 여기도 공식 페이지입니다.

많습니다 해당 페이지에 있는 정보 중 일부를 읽고 IR 신호가 어떻게 작동하는지 깊이 이해해야 합니다. 그러나 다음 섹션에서 몇 가지 중요한 사항을 다시 설명하겠습니다.

IR 코드에 대한 몇 가지 배경

다음은 작성자의 원본 게시물을 번역한 것입니다.

IR 리모컨은 특정 패턴으로 LED를 켜고 끄는 방식으로 작동합니다. 그러나 태양광이나 조명과 같은 IR 소스의 간섭을 방지하기 위해 LED가 꾸준히 켜지지 않고 변조 주파수(일반적으로 36, 38 또는 40KHz)에서 켜졌다 꺼집니다. 변조된 신호가 전송되는 시간을 표시라고 하고 LED가 꺼진 시간을 공백이라고 합니다.

리모컨의 각 키에는 연결된 특정 코드(일반적으로 12~32비트)가 있으며 키를 누를 때 이 코드를 브로드캐스트합니다. 키를 누르고 있으면 일반적으로 리모컨이 키 코드를 반복해서 브로드캐스트합니다. NEC 리모컨의 경우 코드를 반복적으로 보내는 대신 키를 누르고 있으면 특수 반복 코드가 전송됩니다. 필립스 RC5 또는 RC6 리모컨의 경우 키를 누를 때마다 코드의 비트가 토글됩니다. 수신기는 이 토글 비트를 사용하여 키를 두 번째로 눌렀을 때를 결정합니다.

수신 측에서 IR 감지기는 이 신호를 복조하고 신호를 수신하는지 여부를 나타내는 논리 수준 신호를 출력합니다. IR 감지기는 주파수가 발신자의 주파수와 일치할 때 가장 잘 작동하지만 실제로는 그다지 중요하지 않습니다.

이제 다음 단계를 위한 준비가 되었습니다...

IR 수신기 회로 구축

적외선 신호를 디코딩하려면 적외선 수신기 다이오드가 필요합니다.

그리고 라이브러리에 명시된 대로 수신기 회로를 구축합니다.

핀아웃은 다음과 같습니다.

내 브레드보드는 다음과 같이 생겼습니다.

지금은 수신기 다이오드(검은색)를 연결하는 데 집중하고 송신기(투명한 것)는 잊어버리세요. 나중에 처리하겠습니다.

일부 IR 신호 디코딩

프로젝트는 수신된 코드를 직렬 라인을 통해 덤프하므로 이를 컴퓨터에 연결해야 합니다. USB 케이블로 Photon의 전원을 켜고 컴퓨터의 USB 포트에 연결하십시오. 이제 부착된 펌웨어를 플래시하기에 아주 좋은 시간이 될 것입니다.

콘솔이나 터미널을 열고 Particle CLI를 사용하여 USB 포트를 모니터링합니다.

참고: Particle CLI가 설치되어 있지 않다면 여기 문서에 따라 설치하십시오.

Ubuntu Linux에서 Photon의 직렬 포트를 모니터링하기 위해 다음과 같이 입력해야 했습니다.

$ sudo chmod 666 /dev/ttyACM0 $ 입자 직렬 모니터  

컴퓨터 및 운영 체제에 따라 포트의 이름이 다르거나 chmod를 실행할 필요가 없을 수 있습니다.

참고: 다른 소프트웨어를 사용하여 컴퓨터의 USB 직렬 포트에서 데이터를 수신할 수 있습니다.

그런 다음 디코딩하려는 리모컨을 IR 수신기 다이오드(검정색 LED와 유사한 구성 요소)로 가리킬 수 있습니다. 리모컨의 버튼을 누르고 콘솔에 인쇄된 내용을 확인하세요.

모든 것이 잘 진행되면 다음과 같은 결과가 나타납니다.

<코드> 1FEA05F29168950,8500,4050,500,1500,550,500,550,450,550,500,500,1550,500,500,550,500,500,500,550,500,500,500,550,450,550,500,550,1500,500,500,550,500,500,500,550,500,500,550,500,1500,550,1500,550,450,550,1500,550,500,500,1500,550,500,550,450,550,500,500,500,550, END를 3,3,2,0 <사전> ,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 ,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,0,0,0 ,0,0,0,0,0,0,END <울>
  • 첫 번째 줄(1FEA05F)과 세 번째 줄:지금은 잊어버리세요.
  • <울>
  • 두 번째 줄:이 줄은 리모컨에서 보낸 IR 명령을 인쇄합니다.
  • 첫 번째 디코딩된 IR 명령

    수신된 IR 명령에 대해 이야기해 보겠습니다.

    <사전> <부호> 29168950,8500,4050,500,1500,550,500,550,450,550,500,500,1550,500,500,550,500,500,500,550,500,500,500,550,450,550,500,550,1500,500,500,550,500,500,500,550,500,500,550,500,1500,550,1500,550,450,550,1500,550,500,500,1500,550,500,550,450,550,500,500,500,550, END

    이 경우 첫 번째 값인 29168950을 버릴 수 있습니다. IR 라이브러리에 다음과 같이 명시되어 있기 때문입니다. "수신 버퍼는 첫 번째 표시 이전의 간격 공간 기간으로 시작합니다. ". 테스트 사이에 경과한 시간이나 리모컨의 버튼을 누르는 데 걸린 시간이므로 그 기간은 중요하지 않습니다.

    따라서 수신된 출력에서 ​​이것이 정말 흥미롭고 IR 명령을 형성하는 것입니다.

    <사전> <부호> 8500,4050,500,1500,550,500,550,450,550,500,500,1550,500,500,550,500,500,500,550,500,500,500,550,450,550,500,550,1500,500,500,550,500,500,500,550,500,500,550,500,1500,550,1500,550,450,550,1500,550,500,500,1500,550,500,550,450,550,500,500,500,550, END

    이 숫자는 마이크로초 단위의 적외선 펄스 지속 시간을 나타냅니다. 원하는 경우 다음 코드와 함께 이 명령을 보낼 수 있습니다.

    <사전> <부호> sendIt 함수 () {부호의 INT ircommand [59] ={8550,4000,550,1500,550,450,550,500,500,550,500,1550,500,500,500,500,550,500,500,500,550,500,500,500,550,500,500,1500,550,500,500,500,550,500,500,500,550,450,550,1500,550,1500,550,500,500,1500,550,500,550,1500 ,500,500,550,500,500,500,550,450,550}; irsend.sendRaw(ircommand,59,38); }

    그러나 이를 위해서는 송신기 회로를 구축해야 합니다. 다음에 합시다.

    IR 송신기 회로 구축

    가장 간단한 회로는 다음과 같습니다.

    그러나 이 회로는 1미터 미만의 범위만 제공합니다.

    가능하다면 개선된 범위(약 10미터)를 위해 아래와 같은 회로를 배선하십시오.

    이것은 내 회로의 송신기 측입니다.

    IR 송신기 회로 테스트

    삼성 TV에서 볼륨을 제어하기 위해 펌웨어에 몇 가지 기능을 추가했습니다. 주변에 삼성 TV가 있는 경우 송신기 회로가 작동하는지 테스트할 수 있습니다.

    송신기 LED를 TV로 향하게 하고 sendSamsungVolumeUp() 및 sendSamsungVolumeDown() 기능을 누르기만 하면 됩니다.

    참고: IR이 표시되기 때문에 휴대전화 카메라를 사용하여 IR LED가 전송 중인지 확인할 수 있습니다.

    IR 명령을 더 읽기 쉽게 만들기

    500 주변의 값을 0으로, 1500을 1로 지정하고 이 선택은 임의적이며 5000보다 큰 값에 3을 할당하고 4000 주변의 값에 2를 할당하면 다음과 같은 표현으로 끝납니다.

    <사전><코드>3,3,2,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1, 0,0,0,1,0,0,0,0,0,0,0,0,0,END

    이제 이 완전히 임의적인 인코딩에서 다음을 기억하십시오.

    <울>
  • 3은 8500마이크로초 펄스를 의미합니다.
  • <울>
  • 2는 4000마이크로초 펄스를 의미합니다.
  • <울>
  • 1은 1500마이크로초 펄스를 의미합니다.
  • <울>
  • 0은 500마이크로초 펄스를 의미합니다.
  • 숫자로 인코딩하는 이유는 무엇입니까?

    명령을 시각화하고 비교하는 데 도움이 되기를 바랍니다. 이렇게 하면 서로 다른 명령 간에 변경되거나 동일하게 유지되는 펄스를 더 쉽게 비교할 수 있습니다.

    예:AC 리모콘의 경우 온도를 18도와 19도로 설정하라는 명령 사이에 어떤 변화가 있는지 비교하고 싶습니까? 1과 0이 있으면 더 쉽습니다.

    펌웨어 코드에 IR 명령을 저장하는 이 형식도 마음에 듭니다. 전송 직전에 펄스로 변환하는 것을 잊지 마십시오(펌웨어에서 convertToPulseDuration() 함수를 호출하여).

    리소스 읽기

    나는 주제를 이해할 수 있도록 많은 사이트를 읽었습니다. 다음은 그 중 일부의 목록입니다.

    <울>
  • 에어컨 IR 원격 제어 프로토콜 리버스 엔지니어링
  • <울>
  • arduino IRremote 라이브러리와 함께 임의의 리모컨 사용
  • <울>
  • Particle 커뮤니티의 이 스레드
  • <울>
  • 에어컨 리모컨의 IR 프로토콜 이해
  • <울>
  • adafruit의 이 블로그
  • 결론

    몇 가지 작업, MCU 및 몇 가지 구성 요소를 사용하면 집에 있는 많은 리모컨을 디코딩하고 복제할 수 있습니다. 몇 가지 제한 사항이 있지만 이를 통해 휴대폰, 태블릿, 랩톱, 컴퓨터에서 모든 장치를 제어할 수 있으며 간단한 자동화를 만들 수도 있습니다. 멋지죠?

    이제 Blynk 추가, Ionic Framework에서 앱 생성, Google Now 또는 Alexa와 대화, Porter로 제어에 대해 생각할 수 있습니다.

    저는 이 지식을 집에 있는 몇 가지 장치를 제어하는 ​​데 적용할 계획이며 앞으로 더 많은 글을 작성하기를 희망합니다. 계속 지켜봐 주세요!

    2018년 2월 5일 업데이트:

    다음은 이 프로젝트의 한 구현입니다. 인터넷에서 제어되는 적외선 벽난로입니다.

    도움이 필요하십니까?

    프로젝트에 대한 전문적인 도움이 필요하면 주저하지 말고 [email protected]으로 필요한 내용을 적어 주십시오. 감사합니다!

    <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

    코드

    적외선 복제기
    소스 코드https://github.com/gusgonnet/infraredReplicator

    회로도


    제조공정

    1. 화물 자동차가 인터넷에 연결되는 방식
    2. 사물 인터넷 및 커넥티드 차량에서 5G의 역할
    3. 사이버 보안과 사물 인터넷:생체 인식의 시대?
    4. 사물 인터넷:연결된 세계의 웹
    5. 사물 인터넷으로 교육을 어떻게 쉽게 할 수 있습니까?
    6. Leap Motion 레이저 탱크!
    7. UnifiedWater v1
    8. Pi-Arduino 인터넷 라디오
    9. 연결된 공기 압축기, 산업 4.0 및 사물 인터넷
    10. 압축 공기 및 가스 A-Z 동영상 블로그:IOT, 인터넷 4.0 및 연결된 압축기