제품의 정규 적외선 리모컨을 사용할 수 없기 때문에 IRKit로 자체 제작하였다

신종 코로나 여파로 급하게 귀국해 고향을 방문할 때 몸이 둔해져 예전에 산 헬스 머신 SURF BOY를 오랜만에 사용하려 했으나 장시간 고온다습한 곳에 보관하다 보니 리모컨이 반응하지 않았다.이 제품은 이미 생산이 중단되어 정규 리모컨은 중고 이외에 구매할 수 없다고 하지만 다행히도 인터넷상에서 적외선 코드를 얻을 수 있다 조작을 시도했다IRKit.
(IRKit는 리모컨의 코드를 수신기로 읽고 HTTP를 거쳐 재활용할 수 있는 장치이기 때문에 복제된 소스의 리모컨을 사용할 수 없는 경우 복제된 소스의 코드를 직접 만들어야 한다.)
객체 사양
먼저 SURF BOY의 적외선 코드를 살펴보면 ON/OFF와 동작 전환 두 가지 코드가 각각 5A0BF400FF5A0BF4807F임을 알 수 있다.일반적으로 적외선 통신은 이런 데이터를 보내기 전과 이후에 미리 결정된 지도부와 트레이부 같은 구호와 같은 신호를 보내야 하는데 이 제품은 다음과 같다.
  • 리더기: ON4.6ms->OFF 4.4ms
  • 트레이: 0.6ms
  • 켜기
    그리고 이 제품은 리모컨이 보낸 신호를 0/1로 판정하는 기준은 다음과 같다.
  • 0: ON 0.6ms -> OFF 0.6ms
  • 1: ON 0.6ms -> OFF 1.6ms
  • 즉 5[0101)를 데이터로 보내려면 ON(0.6ms)->OFF(0.6ms)->ON(0.6ms)->OFF(01.6ms)->ON(0.6ms)->ON(0.6ms)->ON(0.6ms)->OFF(01.6ms)가 될 수 있다.
    IRKit에 적외선 신호를 지정하는 방법을 살펴보겠습니다.
    적외선 신호를 나타내는 JSON 정보
    Key
    Description
    format
    오직 "raw"
    freq
    적외선 신호를 나타내는 부반송파 주파수.38 또는 40.단위[kHz]
    data
    적외선 신호는 부반송파 주파수의 도통/차단으로 구성되어 있다.IRKit 장치는 2MHz 카운터에서 ON에서 OFF까지의 시간, OFF에서 ON까지의 시간을 계산합니다.데이터에서 카운터의 숫자를 ON과 OFF의 횟수에 따라 배열합니다.
    중요한 것은 서브 반송파가 38 또는 40kHz에 불과하다는 것이다. 2MHz의 계수기에서 켜기→끄기 사이의 시간, 끄기→연결 사이의 시간을 계산한다.
    SURF BOY의 부반송파는 38kHz인 것 같아서 정상적으로 작동할 수 있다.
    IRKit에게 요청하기 위해 제작된 JSON입니다.formatfreq는 이미 결정되었기 때문에 리더, 데이터부와 트레이를 각각 IRKit의 표준에 따라 JSONdata에 지정한다.2MHz는 초당 2천번 진동하기 때문에 필요한 초수에 2천을 곱하면 된다.서브 반송파의 관계에는 상한치가 있지만 이번에는 문제가 없다.
    지도부
    0.0046 * (2,000,000/1) = 9200
    0.0044 * (2,000,000/1) = 8800
    
    데이터 섹션
    상기 0/1의 규정에 따라 ON<->OFF의 지정 시간으로 전환합니다.
    // 0
    0.0006 * (2,000,000/1) = 1200
    0.0006 * (2,000,000/1) = 1200
    
    // 1
    0.0006 * (2,000,000/1) = 1200
    0.0016 * (2,000,000/1) = 3200
    
    ON/OFF에 적용하고 각 코드로 전환합니다.5A.... -> 0101 1010 .... -> 1200,1200,1200,3200,1200,1200,1200,3200 1200,3200,1200,1200,1200,3200,1200,1200 ....트레이부
    0.0006m * (2,000,000/1) = 1200
    
    부탁을 해봐
    상기 제작된 최종 성과를 쉼표로 구분하여 데이터에 배열하여post/messages로 IRKit에 보낼 수 있습니다.(Bonjour의.local 호스트 이름을 해결할 수 없는 클라이언트라면 IP 주소를 조사하고 호스트 이름을 지정해야 합니다. 상세 정보여기.
    curl의 예
    curl -i "http://irkitxxxx.local/messages" \
         -H "X-Requested-With: curl" \
         -d '{ \
                "format":"raw", \
                "freq":38, \
                "data":[9200,8800,1200,1200,1200,3200,1200,1200,1200,3200,1200,3200,1200,1200,1200,3200,1200,1200....,1200] \
             }'
    
    가족도 쓸 수 있게.
    여기까지는 IRKit을 통해 SURF BOY를 조작할 수 있지만, 이렇게 되면 지식이 있는 사람만 얼마든지 쓸 수 있고 사용하기도 불편하기 때문에 스마트폰으로 조작하려고 한다.기능 추가도 있기 때문에 최대한 공유하는 시간을 아끼려고 한다.
    iOS 어플리케이션 -> 번잡한 게시로 인해 포기
    가장 먼저 떠오르는 것은 POST 팟캐스트의 간단한 iOS 애플리케이션이다.가족에게 보내야 하기 때문에 재발을 줄이기 위해 설정 파일을 WEB에 올려놓고 시작할 때 읽고, 설정 파일에 따라 앱 측면에서 필요한 버튼을 만들고, 클릭할 때 IRKit에 요청하는 간단한 것을 보낸다.제작 단계에서는 SURF BOY와 밀폐등만 조작이 허용되지만, 기분이 좋아질 때 에어컨과 TV 등 설정 파일에 수시로 추가될 계획이다.하지만 실제 기기를 나누어 주는 단계에 이르러 제 개발자 인증서가 만료되었고 단말기 등록 상한선에 도달했기 때문에 더 이상 추가할 수 없습니다(기한이 지났기 때문에 삭제할 수 없습니다). 그리고 새로운 계정은 빈번하게 다시 설치해야 한다는 것을 알고 포기했습니다.
    단축키 생성 및 공유
    단지 POST 요청&공유를 보내고 싶어서 재조사해보니 앱을 직접 만들지 않아도 단축키 앱으로 가능하다는 생각에 단축키를 만들어 에어드롭에 공유하기로 했다.
    눈썹X-Requested-With에 대해서는 값이 다 괜찮은 것 같아요.로 구분할 필요가 없을 것 같지만 shortcut.

    좋은 웹페이지 즐겨찾기