LoginSignup
1
0

Panasonic照明の赤外線信号をリモコンに学習させる

Last updated at Posted at 2024-03-03

はじめに

Panasonicの天井照明の赤外線信号を格安学習リモコンに学習させました。
親信号は純正リモコンではなく、ネットで拾ってきた信号コードをM5stickCで出力したものです。
ハマりポイントは、M5stickCの出力の仕方と格安学習リモコンの学習方法です。

結論

  1. M5stickCの出力関数の引数には、ビット数を40ではなく、デフォルトの48にする。
    スケッチは以下参照。
  2. 学習リモコンの学習方法
    • 親信号を出してから、LED点滅パターンが速い点滅からゆっくりの点滅に変わるまで3秒ほど待ってから、次の操作を行うこと。
    • m5stickCのIR remoteデバイスと学習リモコンの間は0.5~1cm程度まで近づける。

背景

  • Amazonで購入した格安学習リモコンを純正リモコンで学習させ、通常ONと常夜灯の2ボタンのみを使用していた。
    消灯は壁スイッチで実施。
  • 今回格安リモコンの電池が切れたので、電池交換だけで行けると思ったら、再学習が必要となった。
    厳密に言うと、使用していた格安リモコンの動作も異常になったので、新しく格安リモコンを買い直した。
  • 純正リモコンは紛失しており、親信号には使えない。
  • M5stickC+IRremoteデバイスを持っている。
  • ネットでリモコンの制御信号を調べてM5stickCで出力したものでリモコン学習させたいと思って調べた。

ツール類

M5stickC + IRremoteデバイス

  • arduino ideのインストールおよびセットアップは省略。

  • 赤外線送受信ライブラリは[IRremoteESP8266]を使用。
    image.png

  • スケッチ例

    • AボタンをCH1の通常点灯に割り当てる。
    • BボタンをCH1の常夜灯に割り当てる。
    #include <Arduino.h>
    #include <IRremoteESP8266.h>
    #include <IRsend.h>
    #include <M5StickC.h>
    
    const uint16_t kIrLed = 32;  // IR-REMOTE Unit の OUT
    
    IRsend irsend(kIrLed);  // Set the GPIO to be used to sending the message.
    
    void setup() {
      M5.begin();
      irsend.begin();
    #if ESP8266
      Serial.begin(115200, SERIAL_8N1, SERIAL_TX_ONLY);
    #else  // ESP8266
      Serial.begin(115200, SERIAL_8N1);
    #endif  // ESP8266
    }
    
    void loop() {
      M5.update();
      if ( M5.BtnA.wasReleased() ) {
        Serial.println("send an IR signal: A");
        // panasonic ceiling light: normal ON / CH1
        // irsend.sendPanasonic64(0x344A90B424, kPanasonic40Bits);
        irsend.sendPanasonic64(0x344A90B424, 48);
        delay(2000);
      }
      if ( M5.BtnB.wasReleased() ) {
        Serial.println("send an IR signal: B");
        // panasonic ceiling light: night on / CH1
        // irsend.sendPanasonic64(0x344A9074E4, kPanasonic40Bits);
        irsend.sendPanasonic64(0x344A9074E4, 48);
        delay(2000);
      }
    }
    

リモコン信号に関する情報

以下の状況に応じた信号を送る。

githubサイトより抜粋

Protocol : PANASONIC
Code : 0x344A9034A4 (40 Bits)
uint16_t rawData[83] = {3482, 1766, 408, 454, 406, 456, 406, 1336, 406, 1334, 408, 456, 406, 1336, 404, 456, 406, 456, 406, 458, 406, 1336, 406, 454, 406, 456, 408, 1334, 406, 458, 404, 1336, 406, 458, 406, 1336, 404, 456, 410, 454, 406, 1336, 406, 456, 404, 458, 404, 456, 406, 458, 406, 454, 406, 458, 404, 1336, 406, 1334, 406, 458, 406, 1312, 430, 456, 406, 454, 408, 1334, 406, 456, 406, 1336, 408, 454, 406, 456, 406, 1334, 408, 456, 406, 460, 402}; // PANASONIC 344A9034A4
uint32_t address = 0x34;
uint32_t command = 0x4A9034A4;
uint64_t data = 0x344A9034A4;
Only the code is listed below.

送出コード一覧

command CH1 CH2 CH3
on 0x344A90B424 0x344A90AC3C 0x344A90BC2C
full 0x344A9034A4 0x344A902CBC 0x344A903CAC
night 0x344A9074E4 0x344A906CFC 0x344A907CEC
high 0x344A9054C4 0x344A904CDC 0x344A905CCC
low 0x344A90D444 0x344A90CC5C 0x344A90DC4C
off 0x344A90F464 0x344A90EC7C 0x344A90FC6C

格安学習リモコン

こちらのリモコンを使用します。
学習方法動画はyoutube
学習方法は以下の通り。

  1. 通常使用モードと学習モードの2つがあり、[POWER]と[CH UP]の2つのボタンの同時長押し(3秒ほど)で切り替えることが可能。

  2. 通常使用モードではLEDは消灯状態だが、学習モードに入ると赤色LEDが速い点滅になる。

  3. 学習モードの状態で学習させたいボタンを押すと、親信号待ち状態となり、LEDは連続点灯状態(A)になる。

  4. 上記A状態で親信号を格安リモコン受光・発光部に送出する。
    親信号受領に成功すると、LEDは連続点灯状態から遅い点滅になり3秒間継続した後、速い点滅に切り替わる。

  5. その次は、次のボタンの学習もできるし、学習モードから退出することも可能。

  6. 次のボタンの学習は上記3.を実施。

  7. 学習モードからの退出は、[POWER]と[CH UP]の2つのボタンの同時長押し(3秒ほど)する。

  8. 学習モードのA状態にて、

    • 親信号受領に失敗するとLEDは連続点灯のまま変化しない。
    • 約10秒経過すると、自然に通常使用モードに移行する。

ハマり箇所

格安学習リモコンの学習方法

  • 学習時には、
    • m5stickCのIRデバイスの発光部(トランスミッタ部)と、格安リモコン部の受光部の距離は0.5~1cm程度に近づける。
      格安リモコン説明書には2~5cmとあるが、これでは学習が成功しない。
      m5stickCの発光量が格安リモコン学習に対して不十分なためか。
    • 親信号受領成功後、格安リモコンのLEDは遅い点滅となるが、次に速い点滅になるまでそのまま約3秒間放置して、学習完了させる必要がある。
      この間に次の操作をしてしまうと、学習を完了できない。

IR信号送出関数の引数

  • こちらのサイトによると、Panasonic製照明への送出ビット数はデフォルトの48ではなく40としなければならないとあるが、私のケースでは48である必要があった。
    当初は40ビットで設定しており、40ビットでもm5stickCからPanasonic製照明の直接操作は問題なく反応した。
    しかし、格安リモコンへの学習は何度やっても成功しなかった。
    格安リモコンの仕様と思われる。


    Panasonic照明用の信号は以下のsendPanasonic64関数で送出可能。
    irsend.sendPanasonic64(0x344A90B424, 48);
    
    送出データを第一引数、送出ビット数を第二引数に設定する。

参考サイト

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0