KATUBLO | エンジニアの日常BLOG

プログラミング、数学、旅行などを中心に役立つ情報をお届け

2018年08月14日

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

前回はラズパイにプログラムを実装してLEDを制御しました。 今回は少しだけ難易度をあげて、「ラズパイで家電をコントロール」をしてみた。    

製作のフロー

  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の設定 Linux初心者の私はここで保存&終了がわからなくて少しハマりました。 commnad+X Y を押すと保存&編集モード終了をすることができます。  

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

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よりもデータ量が圧倒的に多かったのでこれが原因かもしれません。 次回以降もうちょっと粘って見ます。      

最後まで読んで頂き、ありがとうございました。
SNS等でのシェアが頂ければ幸いです!

プロフィール

@KATUO

現在都内私立大学に通う大学4年生。大学では電気電子工学を専攻。大学2年の夏頃に、プログラマーの長期インターン募集の広告が目に止まり、独学でプログラミングの学習を開始。現在は「ToC向け大規模サービスを運営するメガベンチャー」と「AIスタートアップ」でインターンで修行中。2020年4月からwebエンジニアとして社会人生活スタート。

広告

特集記事