Googleアシスタントで部屋の電気をコントロール。
こんにちは、急に冷え込んだせいで風邪っぴきなじむです。
風邪で寝込んでいると電気を付けたり消したりするために起き上がるのも億劫です。
スマホという万能端末が枕元にあるのだからコレで電気を付けたり消したりできたらいいのに、と思いまして。
できるかなー?と調べたところ・・・
https://qiita.com/takjg/items/e6b8af53421be54b62c9
できそうだ。
どこのご家庭でも転がっているであろう赤外線送受信LEDはうちにも例外なく転がっているので、コレを使って上の記事を参考に作ります。
ちなみに上記記事内では赤外線LEDドライブ回路とか組んでますが私は面倒なのと手元に材料がなかったので、GPIOにLEDを直接繋いでます。(ほんとはよくない。)
一応100Ωくらいの抵抗を入れてやったりもしたのですが、パワーが足りずに電気のコントロールが出来なかったので仕方なく。
真似する場合は小さい抵抗を用意して望みましょう。私も基盤を組む時までには用意するつもりです。
やった事は大体上の記事の通りです。ただし全てバージョンを新しくしながらやりました。npmとか。
一番困ったのはHubot君。
こいつはslackからコマンドを受けてラズパイでスクリプトを実行するための仲介役なのです。
インストール方法は記事でも紹介されていた
https://scrapbox.io/smart-home/hubot%E3%81%AE%E9%9B%9B%E5%BD%A2%E3%81%AE%E7%94%9F%E6%88%90
ここの雛形の生成ってところの通りにコマンドを打つだけ。
ただ最新版だからなのか私だけの特殊な条件なのか yo hubotで対話型設定中のBot adapter へslackと入力しても進めないという問題にぶち当たりました。
解決方法はyo hubotの代わりに
yo hubot –adapter=slack
として打つことで先に進めました。
で、これで初めの記事に戻りコマンドを打つと、とりあえず動作はしました。
ただssh接続でhubotを起動していると切断した時にhubotも終了してしまう。
ということで毎度お馴染みサービス化をば。
https://qiita.com/fruitriin/items/22f4075e2c9cf100d385
既に書いてありました。先人さんありがとう。
workingdirectoryの内容とExecStartの内容に注意しながらほぼ同じ内容のserviceファイルを作りました。
workingdirectoryはhubotのディレクトリまでなのでPiの場合/home/pi/hubot/ とか。
ExecStartはsh bin/hubot –adapter slack に。
これでsudo systemctl start hogeしてあげたら動きました。
再起動後も自動起動する場合は $sudo systemctl enable hoge
これでsshを切断しても動くようになりました。
というわけで、だいぶ遠回りしましたがこれで病気で寝込んでも起き上がる事なく部屋の電気が操作できるようになりました。
ちなみに外出先からも操作できるので消し忘れの心配もなくなります。気になったらok googleで消してもらえる。
実家なので自室の電気だけですが、一人暮らしになったらあらゆる赤外線リモコンの家電をこれで動くようにして近未来的な部屋を作りたいですな。
家に入る直前に電気とパソコンと暖房器具がONになる、みたいな。
はやく作りたいなぁ~。