M5Stackで汎用赤外線リモコンを作ってみた


はじめに

  • 赤外線リモコンデコーダでも書いた通り、汎用リモコンの作成が目的でした。
  • 本記事は、その汎用リモコン(M5Stack+PLUSエンコーダ使用)になります。

仕様

  • リモコンデータは、M5Stackに挿入されたMicroSDカード上のjsonファイル(remocon.json)に書かれている。
  • 当該jsonファイルの内容をM5Stackに表示する。
  • PLUSエンコーダのジョグ操作により、操作対象機器/ボタンを切り替え、ボタン押下で赤外線コードを送信。
  • jsonファイルのサンプル
remocon.json
{
  "regza": {
    "format": "nec",
    "custom": "bf40",
    "buttons": {
      "on": ["12ed"],
      "1": ["01fe"],
      "2": ["02fd"],
      "3": ["03fc"],
      "4": ["04fb"],
      "5": ["05fa"],
      "6": ["06f9"],
      "7": ["07f8"],
      "8": ["08f7"],
      "9": ["09f6"],
      "10": ["0af5"],
      "11": ["0bf4"],
      "12": ["0cf3"],
      "input change": ["0ff0"]
    }
  },
  "light(panasonic)": {
    "format": "aeha",
    "custom": "522c",
    "buttons": {
      "on": ["002C25"],
      "off": ["002F26"],
      "energy save": ["002D24"]
    }
  },
  "light(beamtec)": {
    "format": "nec",
    "custom": "e384",
    "buttons": {
      "on": [
        "20df"
      ],
      "off": [
        "24db"
      ],
      "favarite": [
        "2ad5"
      ]
    }
  },
  "aircon(daikin)": {
    "format": "aeha",
    "custom": "da11",
    "buttons": {
      "hot-on": [
        "0200020000",
        "0200004922"
      ],
      "hot-off": [
        "0200020000",
        "0200004822"
      ],
      "cool-on": [
        "0200020000",
        "0200003938"
      ],
      "cool-off": [
        "0200020000",
        "0200003838"
      ]
    }
  },
  "playstation(dvd)": {
    "format": "sony",
    "custom": "093a",
    "addr_bit": "13",
    "buttons": {
      "play": [
        "32"
      ],
      "stop": [
        "38"
      ]
    }
  },
  "playstation(controller)": {
    "format": "sony",
    "custom": "1b5a",
    "addr_bit": "13",
    "buttons": {
      "batsu": [
        "32"
      ]
    }
  }
}

完成状態

  • YouTubeにアップロードしてますが、テレビ(Regza)を操作している動画になります。 IMAGE ALT TEXT HERE

実装コード

  • GitHubで公開しています。
  • 開発環境は、VSCode+PlatformIOです。

おわりに

  • 今後の改善点
    • 赤外線リモコンデコーダとの一体化。
      • デコーダで受信した赤外線コードをjsonファイルに自動記録することで、手編集しなくてよいようにする。
    • M5Stack上でのjsonファイルのボタン名などの編集は悩ましいところ
      • ソフトウェアキーボードを実装する?
      • Webサーバ機能を持たせ、PCやスマートフォンのブラウザから入力?