アフィリエイト広告を利用しています

広告

この広告は30日以上更新がないブログに表示されております。
新規記事の投稿を行うことで、非表示にすることが可能です。
posted by fanblog

音声でリモコン制御 その2

今日ね、iOS7にアップデートしてやりましたよ。

iPhone4SとiPad-miniをiOS7へ。
iPad2はとりあえず、今回保留ってことで。。

やぁ、デザインがイケてて好きです。

音声でリモコン制御するのに、<リンク:>SiriProxyというツールを使ってたのですが・・。

iOS7にした途端に動かなくなりました。

おぃ。。。

えー。。。

どうもね・・Siriサーバー等、諸々がiOS6とiOS7で違うらしく、・・


動かない。。

皆、困ってますよ!!

ここで有志の方達が頑張ってるみたいですが・・

まだ、解決にいたってないです。


はぁ。。。




音声でリモコン制御 その1

最近、Siriproxyを使って、音声でリモコン制御してます。

あまりに便利すぎるので、動画を載せておきます。





玄箱くんが大きくて使い勝手が悪いし、HDDはうるさいし・・Raspberry Piを
使ってます。

Raspberry Pi Type B 512MB

新品価格
¥4,399から
(2013/9/5 23:59時点)




この値段で色々遊べるのでオススメです。

ちなみにケースも初めは自作しようと思ってたのですが・・面倒になってきて以下の黒を購入しました。

Raspberry Pi Black Case

新品価格
¥1,880から
(2013/9/6 00:01時点)




クリアケース中々です。

Raspberry Pi Clear Case

新品価格
¥1,880から
(2013/9/6 00:03時点)




さぁ、セットアップです。



アメリカと日本のエアコンの違い

先週、仕事でアメリカに行って来ました。

で、早速、上司(インド系アメリカ人)に家の外にいてもリモコン操作できるよと自慢したら、俺もつけてるよと、NESTという製品を教えてくれました。

これ、外にいてもリモートで室内のエアコンをコントロールできるようにする製品で$250です。

これさえあえば、スマホから温度も管理できて快適です。

問題は・・・これは、日本では使えない

えーー。。

どうやら、アメリカの家はセントラルヒーターで壁に必ずコントロールパネルがついています。

そこにこの製品をピタっとはめれば、リモートコントロールパネルの出来上がり!

だけど、日本はエアコンは後付けで、基本はリモコン操作

しかも、メーカーによって仕様は各社各様。。

どーにもできないです。。

せめて、インターフェースだけでも統一してくれていれば、何とかなるのですが・・

こーゆーところがガラパゴスなのでしょう。

ちなみに、リモコン制御でいつも話題にのぼり、難しいのがエアコンのリモコン制御です。

さっきも言いましたが、公開されてなくて、しかも各社各様。

リモコンの制御方法ぐらい統一しててほしーものです。











リモコンサーバー その6 温度センサー

やっぱり・・・温度センサー必要かな・・この時期。。って思ったわけです。

帰宅時に部屋が既に涼しくなっているか、涼しくなるまで待つのかは、雲泥の差というもの。

このリモコンサーバーを作った半分の意味はここにあると言っても過言ではありません。

部屋に帰る10分前ぐらいに、室内の温度をチェックして暑そうだったら、ポチっとエアコンのスイッチを入れてあげれば良いわけですから。。

帰宅時には部屋も涼しい快適空間になってるって寸法ですよ。


そんなわけで、玄箱Proに温度センサーをくっつけます。

まずは・・以下のブツを購入。

USB温度計! USB thermometer-528018

新品価格
¥980から
(2013/6/20 01:51時点)





そして以下のページに書かれている通りに、temperをmakeして終了。

980円のUSB温度計を使ってLinuxから室温を計測する


あまりに簡単に動いたので、ちょっとビックリです。

以下の行を追加して終了。

< ?php
exec("/usr/local/bin/temper", $output);
list($dummy, $temper) = explode(',', $output[0]);
echo 'Temp = ' , round($temper, 1) , 'C';
?>

こんな感じで温度が表示され、帰宅前にチェックして室内が暑いと思ったらエアコンONができちゃいます。


リモコンサーバー その5 外部からアクセス

外から玄箱Proをアクセスできるようにします。

Web上に置いていると外から誰でもアクセスできてしまうのでVPN経由で家のネットワークに繋げるようにします。

手順

1) 玄箱ProにVPNをインストール。
2) ルーターを設定。
3) iPhoneからVPNアクセス。

玄箱ProにVPNをインストール
1) pptpdをインストール

> apt-get install pptpd

2) /etc/pptpd.conf を修正

logwtmp
localip 192.168.55.110 <- 玄箱Proのアドレス
remoteip 192.168.55.201-210 <- PPTPDが割り当てるアドレス(ルーターに使われないアドレス)

3) /etc/ppp/pptpd-options を修正

ms-dns 192.168.55.1 <- ルーターのアドレス

4) etc/ppp/chap-secrets にVPNのアカウントを設定

ユーザ名 pptpd パスワード *

5) iptablesにてportを開く

> iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
> iptables -A INPUT -p 47 -j ACCEPT

6) 再起動をおこなう

> /etc/init.d/pptpd restart

参考ページ
Debian GNU/Linux での pptpd 設定 (サーバ側で NAPT しない場合)
Debian etch に pptpdを導入

ルーターを設定
私の家の環境は、以下の通りです。

- プロバイダ: AUひかり
- ルーター: NEC BL172HV

1) ここに書いていることに従って、玄箱ProのPortにアドレスを設定。

2) Globalアドレスもルーターのメニューから確認。

参考ページ
Aterm BL190HW PPTPポート開放



iPhoneからVPNアクセス

ここに書いてある通りなので、割愛します。






リモコンサーバー その4 Webカメラ

ゆくゆくは、外からリモコンを操作しようとした時に中の様子がどうしても必要で・・・

そんなわけで、カメラを付けます。


家をゴソゴソ探してるとしょぼいカメラがあったので、それを使うことにします。
古くて売ってませんが、おそらく以下のものがその後継にあたると思います。

重要なのは、UVC対応かどうかです。

ELECOM WEBカメラ 130万画素 1/6インチCMOSセンサ マイク内蔵 コンパクトタイプ ブラック UCAM-C0113FEBK

新品価格
¥1,000から
(2013/6/11 20:16時点)




手順
以下のような感じです。

1) カメラを繋いで玄箱Proが認識するか確認。
2) ストリーミングソフトMJPEG-streamerのインストール。
3) リモコン画面にカメラ映像を追加。


カメラを繋いで玄箱Proが認識するか確認

1) カメラのUSBケーブルを玄箱Proにさします。
2) 以下のコマンドで認識しているかどうか確認。
> dmesg

[ 36.009876] usbcore: registered new interface driver uvcvideo
[ 36.017993] USB Video Class driver (v0.1.0)

上記のように認識していればオッケーです。
最近、本当に便利でUVC対応のカメラであれば大方認識するみたいです。



ストリーミングソフトMJPEG-streamerのインストール

ここのサイトに書かれている通りにインストールします。

1) ツールのインストール。

> apt-get install libv4l-dev
> apt-get install libjpeg8-dev
> apt-get install subversion
> apt-get install imagemagick

2) サーバーからmjpeg-streamerのダウンロードして、ビルド、インストール。

> svn co https://mjpg-streamer.svn.sourceforge.net/svnroot/mjpg-streamer mjpg-streamer
> cd mjpg-streamer/mjpg-streamer
> make USE_LIBV4L2=true clean all
> make DESTDIR=/usr install

3) wwwサーバーのディレクトリに移す。
2)の手順でおそらく、user/wwwにインストールされているので、wwwサーバーのディレクトリにコピーします。おそらく、こんな感じです。

> cp -R user/www /var/www/mjpeg-streamer

4) 実行
以下のコマンドを打って、http://玄箱ProのIPアドレス:8080/ にアクセスして表示されていればOKです。

> mjpg_streamer -i "/usr/lib/input_uvc.so -d /dev/video0 -y" -o "/usr/lib/output_http.so -p 8080 -w /var/www/mjpg_streamer"




リモコン画面にカメラ映像を追加

1) 以下を実行して小さいサイズが表示されていればオッケーです。

> mjpg_streamer -i "/usr/lib/input_uvc.so -f 2 -r 320x240 -d /dev/video0 -y" -o "/usr/lib/output_http.so -p 8080 -w /var/www/mjpg_streamer"


2) 前回作成したリモコン用のHTMLに以下の行を挿入。

< img src="http://192.168.55.110:8080/?action=stream" >

以下のような感じで、リモコン画面にWebカメラが付くようになります。




参考ページ
RaspberryPi: Fast mjpg-streaming for robotics
USBウェブカメラとubuntuで簡単ストリーミングサーバー構築
Raspberry Pi + mjpg-streamerでwebcam動画配信

リモコンサーバー その3 玄箱Proでリモコンを動かす

次にこのリモコンキットを玄箱Proで動作させます

インターネットを調べると色んな情報があり、有り難く参考にさせて頂きます。

参考ページ

PC-OP-RS1 on Linuxに関するメモ
赤外線学習リモコン PC-OP-RS1 を使ってみた
webからリモコン操作


ちなみに、私の玄箱ProはDebian 6.0 (squeeze)ベースにApache+PHPをインストールしてます。


手順としては以下の流れにそって行います。

1) リモコンキットを玄箱Proで認識させる
2) リモコンテストを行う。
3) Web上からリモコンを制御する。


リモコンキットを玄箱Proで認識させる

1) モジュール追加
> /sbin/modprobe ftdi_sio vendor=0x0411 product=0x00b3

2) リモコンキットを玄箱Proにさす。

3) 認識しているか確認。
> dmesg

以下の一行が表示されてttyUSB0にAttacheされてればOK!

[ 59.888239] usb 2-1: FTDI USB Serial Device converter now attached to ttyUSB0

4) デバイスのパーミッションを変更。
> chmod 666 /dev/ttyUSB0

折角なので・・・玄箱Proがリブートしたり、USBの抜き差しをしても認識するようにしておきます。

5) modprobeを自動的に行うようにする。
> echo "/sbin/modprobe ftdi_sio vendor=0x0411 product=0x00b3" >> /etc/rc.local

6) パーミッションの変更も自動で行えるように、以下のファイルを作成。
/etc/udev/rules.d/52-ftdi-serial.rules

そのファイルに以下の一行を追加。

BUS=="usb", SYSFS{ idVendor}=="0411", SYSFS{ idProduct}=="00b3", MODE="0666"

これでUSBを抜き差ししても、リモコンキットは認識されます。


リモコンのテストを行う

1) リモコンを制御するプログラムの入手。
ここからrc_rec.c, rc_send.cをダウンロード。

2) コンパイル
> gcc rc_rec.c -o rc_rec
> gcc rc_send.c -o rc_send

3) リモコンの学習
以下のコマンドで、学習開始。

> ./rc_rev test.data /dev/ttyUSB0
test OK
init OK
rec start

リモコンキットの受光部にリモコンを近づけて送信してrec OKが表示されたら完了。


4) リモコンの送信

>/rc_send test.data 1 /dev/ttyUSB0

ちゃんと動くかどうか確認します。
ちなみに、1というのはリモコンの送信部のポート番号を表していて、以下のように割り当てられています。

1: A - 黄色のシール(送信部付近)
2: A - シールなし
3: B - 黄色のシール
4: B - シールなし


Web上からリモコンを制御する

1) webサーバーの準備

ここに書いてあるようにちゃんとパーミッションを分けて管理することをオススメします。

私の場合、外からアクセスできないようにしているので、var/www/rcというディレクトリにrc_rec, rc_send, リモコンデータ等、全部放り込みました。

リモコンデータのファイル名にルールを決めて、テレビであれば"tv_xxx"という風に先頭の文字で判断できるようにしました。

参考までにphpファイルをここに置いておきます。

{cmVtb3RlX2lwaG9uZXNa.php}

CSSファイルは面倒なので載せませんが、適当に追加して下さい。


2) iPhoneからアクセス
safariで以下のアドレスを開くとこんな感じで表示され、ボタンを押すとちゃんと動作します。

http://玄箱ProのIPアドレス/rc/remote_iphone.php



3) 動かない場合は・・・
ちなみに、動かない場合はディレクトリやデバイスのパーミッションを怪しんで下さい。

添付のPHPの以下の箇所を変更して、メッセージを表示するようにして下さい。

//$dev="/dev/ttyUSB0"; <- コメントを外す
$dev="/dev/ttyUSB0 > /dev/null &"; // background <-コメントアウトする

また、/var/www/rc/rc_send.logというログファイルも作られているので、参考になります。



これで寝室にいてもリビングの照明やエアコンなどのコントロールができ、更にグータラ生活に拍車がかかりました。(笑)




リモコンサーバー その2 リモコンの設置

前回の続き。
リモコン送信部の設置

ケーブルも十分長くなったので、以下のように照明、エアコン、テレビ、シーリングファンの4箇所に送信部を設置しました。

照明のリモコンは、角度が非常に重要で下の方向からリモコン信号を当てないと、認識してくれませんでした。なので、苦肉の策で、天井にケーブルを張ってリモコンの送信部を直付けしました。

照明(上)とエアコン用(下)



テレビ用



シーリングファン用



ケーブルやリモコン送信部の設置には以下のクリップを壁にペタペタ貼って固定してます。
二週間ぐらい経ちますが、今の所、ちゃんと剥がれて落ちてくるようなことはないです。

LAN用ケーブルクリップ 6個入り

新品価格
¥250から
(2013/6/1 14:22時点)





リモコンサーバー その1 リモコンキットの改造

先週末ついにリモコンサーバーを立ち上げました。。・・それにしても何時になったら、エアコンも照明もipアドレスを持つようになるのでしょうか。。

それはさておき、リモコンサーバーという言葉が正しいかどうかわかりませんが・・・。

iPhoneからページ開いて、ポチって押したらリビングのエアコンや照明がOn/Offできるように
リモコンのサーバーです。

これがあることで、冬の寒い日なんかに寝室の布団に包まりながらリビングのエアコンがOnできちゃうわけですよ。10分後にリビングに行けば、部屋も暖まり心臓マヒ予防にもなり、長生きできるわけですよ。笑顔

手順
1) リモコンキットで学習させた信号が動くかどうかPCでテスト。
2) リモコンキットのケーブル延長作業 (必要であれば)と設置。
3) リモコンキットをlinuxサーバーで動作確認。
4) Web用のページをlinuxサーバー上に作って、iPhoneから動作するか確認。



用意するもの

1) 玄箱Pro (linuxサーバー)
Yahooオークションに高めに販売されてましたが、他はどこも売ってないですね。。
リモコンキットに使われてるシリアルチップが一般的なので、玄箱Proでなくてもlinuxサーバーであれば動作するはずです。。以下のRaspberry Pi Type B 512MBでも動きそうです。

Raspberry Pi Type B 512MB

新品価格
¥4,349から
(2013/5/29 21:13時点)





2) BUFFALO PCastTV2対応 PC用学習リモコンキット PC-OP-RS1

BUFFALO PCastTV2対応 PC用学習リモコンキット PC-OP-RS1

新品価格
¥4,272から
(2013/5/28 03:10時点)




3) 使い古されたLANケーブル (リモコンキットのケーブルの延長が必要な場合)


リモコンキットで学習させた信号が動くかどうかPCでテスト

1) 付属のソフトをPCにインストール。
2) リモコンを学習させる。
3) 動作確認。

で、わかったこと。

1) リモコンの送信部分の向きがちゃんと受光部に向いてないと反応しない。
2) 例え向きがしっかり設定しても、距離が遠いと届かない。

なのに・・・リモコンのケーブルは、約2mと短いのですよ。

送信部分の抵抗をゴニョゴニョして、リモコンを強くするってのもあるのですが・・・物理的にケーブルを延ばすことにします。


リモコンキットのケーブルの延長

まず、ケーブルを延長します。。と言っても、延長するケーブルをどこかから調達しないといけないのですが・・・面倒なので要らなくなったLANケーブルを再利用します。

まず、ニッパでコネクタを切って、ケーブルの外側にカッターで切って、こんな感じで細いケーブルを取り出します。



次に赤外線の送信部の根元から3cmのところをニッパで切断し、先ほど取り出した細いケーブルをハンダ付けして接続します。

ニッパで切って・・繋ぎますが、強度が心配なので伸縮チューブを使います。


ハンダして、伸縮チューブでショートしないようにして・・



最後に、大きい伸縮チューブで更にガード。



こんな感じになります。



リモコン使ってます?

私事ですが、SONYのデジカメ 初代NEX-5を持ってます。

でも、リモコン付いてません。

それがミラーレスのせいなのかどうかわからないのですが・・。

でもって、純正のリモコンは以下のように高い。。そうでもないですね。

ソニー リモートコマンダー RMT-DSLR2

新品価格
¥2,625から
(2013/1/6 01:53時点)




ちなみに、廉価版の以下のリモコンは購入したんだけど、使えなかった。。

SONY α用 リモコン NEX-5N NEX-5 NEX-7 α33 α55 α230 α330 α380 α550 α700 α900 他 対応 RMT-DSLR1互換品

新品価格
¥450から
(2013/1/6 01:55時点)




それにさ・・
リモコンなんて持ち歩かないよね。iPhoneは持ち歩くけど。。

そんなわけで、以下のiPhoneがリモコンになるキット買いました!!

ちょっと高いんだけど、まぁ、仕方ないです。

L5 Remote(エルファイブ リモート) iPhone/iPod/iPad をリモコンに!並行輸入品

新品価格
¥4,000から
(2013/1/6 02:02時点)




で一番の売りは・・

メリット

1) SONYデジカメ NEX-5のリモコンになる。
FreezeFrameというアプリを入れて。しかも、タイマリモコンにもなっちゃう。

2) iPhoneが学習リモコンになる!!
L5 Remoteというアプリを入れて。
マクロ組むと、一つのボタンで複数のリモコンを飛ばすことができます。

ちなみに弱点もあります。

結構、学習精度高いと思うのですが・・・

エアコンのリモコンは難しいみたいです。

MITSUBISHIとSHARPのエアコンを使ってるのですが、
どちらも学習できませんでした。T_T

リモコンとしてそんなに使っているかと言われると、そんなに使ってません。




<< 前へ    
検索
検索語句
記事ランキング
最新記事
×

この広告は30日以上新しい記事の更新がないブログに表示されております。