MUDAなことをしよう。MUDAなことをしよう。PiとSiriを使った家電制御ということで、まずは制御される側のデバイスの方を先に用意してしまいます。APIで制御できるようにします。これについては、実は過去に取り組み済みです。3.5なので、情報のアップデートも兼ねて、改めて記事として書いておきます。現状のPythonは2系と3系の両方が現役で、Raspbianのデフォルトでは2.7になっています(2016/3時点)。個人的には「2系じゃないとダメ」というシーンはだいぶなくなってきていると思うし、今後のことも考慮して、自力で3.5系に上げました。そのやり方については、過去に書いた記事をご参照ください。3.5をデフォルト設定にした前提で話を進めます。bottleフレームワークをまだインストールしていない場合は、ここでインストールします。PiからHTTPリクエストを発行するときに便利なrequetsもここで一緒にインストールしておきます。requestsちなみに、各モジュールがインストール済みであるかどうかは以下で確認できます。freezebottle==0.12.9pyserial==3.0.1requests==2.9.1ではでは、irMagicianのプログラムの作成に入ります。適当なディレクトリを作って、そこで作業していきます。pwd/home/pi/server/pythonサンプルプログラムについては、以下で公開してくださっているirm.pyを利用させて頂くのが良いと思います。3系で上記のサンプルファイルを動かす場合は、以下の修正が必要になります。2系ならそのままでOK。修正が済んだら、irMagicianの動作テストです。!\r\n'こんな表示が出たら、もう一度同じコマンドを実行して、タイムアウトになる前に覚えさせたいリモコンのボタンを押します。Out!”の代わりに数字が表示されればOKです。!\r\n'これでおそらく機器が制御できるはずです。うまくいかない場合は、最初はirMagicianをできるだけ対象機器に近づけてからテストすると良いと思います。エアコンのように複雑な信号のものでなく、照明とか扇風機とかシンプルなもので試した方が良いかと思います。うまくいったら、現在記憶している信号情報をファイルに書き出して、いつでも使えるようにしておきます。!ファイルから信号を再生できるかどうかのテストです。!\r\n'これでirMagician自体のテストは完了です。同じ要領で、必要なだけ機器の制御信号を学習してファイルに書き出しておきましょう。ここではとりあえず照明のON/OFFの2つ分のファイルを作っておきました。今後ファイルが増える可能性があるので、適当にフォルダを作ってそこで管理しておきます。APIで制御できるようにしましょう。ソースコードはこんな感じになります。debug=True)指定したパラメータと制御の結果をJSONで返すようにしています。Piに割り当てた固定IPアドレスです。quit.この状態で、同じローカルネット上のPCのブラウザで、URL欄に”http://192.168.24.204:10080/appliances/myhome?room=room_t&device=light&function=power&parameter=off”のように入力すると、irMagicianから赤外線信号が送信されて、以下のように結果が返ってきます。“result”が”success”になってますね。ここでURLのparameterを間違えて”off”じゃなくて”of”にしてしまうと、こんな感じで”result”が”failure”になって返ってきます。赤外線信号は送信されません。APIを持った家電機器の出来上がりです。Piを起動した時に自動的にこのプログラムが立ち上がるように設定しておきます。0′′の前に追加してください。pi”で、”piユーザのログインシェルで後のコマンドを実行してね”という指定になります。3.5の設定はpiユーザだけで有効になるようになっているので、わざわざこんな指定をしなくちゃいけません。3.5にこだわったせいで余計な手間が増えてるなあ。こだわりがなければ、Raspbianのデフォルトの2.7系で進めた方が早いと思います。Piはこんな感じになっています。固定式のフレキシブルUSBケーブルを使うと良い感じで固定できます。irMagicianはそのままだと夜中にLEDがピカピカ光ってまぶしいので、3Dプリンタで適当に作ったカバーを被せています。別機能ですがAirPlayにも対応しているので、USBオーディオとスピーカーも接続しています。次回はいよいよキモである、Siri対応に取り組みます。MUDAなことをしよう。PiをHomeKit機器として認識させるための作業になります。コメントをキャンセルメールアドレスが公開されることはありません。hidaka_hirojiAmazonほしいものリストこちら自身の工作用に使いたいものがメインですが、必ずしも工作に使うわけではないのでご了承ください。MUDAなことをしよう。