【Raspberry Pi3】terminalで自宅家電をコントロールしてみた

電気電子工学

作成するにあたっての基本

今回使用したRaspberry Pi3

完成までの流れ

  1. ①家庭用家電のリモコンの赤外線信号を分析する為の受信回路を製作
  2. ②分析した信号をラズパイから送信する為の送信回路の製作
  3. ③信号をラズパイに学習させ, terminal上で制御できるようにする

今回使用した素子

  1. (1)赤外線リモコン受信モジュール OSRB38C9AA[1個]
  2. (2)5mm 赤外線LED OSI5LA5113A[1個]
  3. (3)MOSFET 2N7000[1個]
  4. (4)MOSFET IRFU9024NPBF[1個]
  5. (5)抵抗 4.7kΩ [1個]
  6. (6)抵抗 27Ω [1個]
  7. (7)ジャンパ・ワイヤー(オス-メス)[4本]
  8. (8)5mm LED光拡散キャップ[1個]

回路を作成

信号送信用の回路

ここでブレッドボード上にこれらを設置。

左側が送信回路ですね。(右側に受信回路)

*LEDは電流が流れているかを目視で確認する為この段階では赤外線LEDは設置していません。 以下のサイトを参考にした。

 

受信用回路

この受信モジュールは

左:OUTPUT→GPIO18

中:GRAND→GND

右:Vcc→5.5[V]

にワイヤーを使って設置しました。  

プログララムを作成

pigpioのインストール&初期設定

GPIOの設定

受送信プログラムダウンロード

githubからpigpioの製作者が作成した IR Record and Playbackをダウンロードします。コマンドでももちろんできますがダウンロードできるけどなぜか中身が空という現象が発生したので直接ダウンロードしたのちVCMを使ってドラッグ&ドロップで転送しました。(ちなみに場所はどこでも大丈夫です。)  

TVリモコンの赤外線を学習

学習終了後,コマンドを実行した階層にサンプリングした赤外線データが格納されたファイルが作成されます。

以上設定は終了。 最後に実行コマンドを紹介します。

TVのスイッチON/OFF

ちゃんとにコマンドを実行するたびにON/OFFが切り替わると思います。  

エアコンのリモコンは情報過多?

この調子でエアコンのリモコンも同様にして赤外線情報を取得し、実行したのですが以下のようなエラーがでました。

Traceback (most recent call last): File "irrp.py", line 481, in <module> pi.wave_chain(wave) File "/usr/lib/python3/dist-packages/pigpio.py", line 2475, in wave_chain self.sl, _PI_CMD_WVCHA, 0, 0, len(data), [data])) File "/usr/lib/python3/dist-packages/pigpio.py", line 970, in _u2i raise error(error_text(v)) pigpio.error: 'chain is too long'

赤外線情報が入ったファイルを見てみるとTVよりもデータ量が圧倒的に多かったのでこれが原因かもしれません。

タイトルとURLをコピーしました