テンキーでraspberrypiを操作する

raspberrypiで部屋の電気(ルームライト?)を赤外線で操作したり
radikoを聞けるようになったは良いものの、毎回SSHでログインしてコマンドを打つのがとても面倒に感じてました。

ルームライトの操作なんてリモコンを操作した方が100倍早く、
壁のスイッチを押したほうが1000倍早い。
なので、物理ボタンでraspberrypiを操作して電気のオンオフをできないものかなぁと思った次第。

キーボードを直接つないで直接コマンドを叩くことも考えたのですが、それではあまりうまみもなく、場所も取るので却下。
と、ふと、そこで思い付いたのがテンキー。

テンキーで例えば「1」を押したら電気OFF!みたいなことできたら最高ではないかと。

さっそく調べてみたところ、pythonで操作する方法が多めに出てきたのですが、
自分はPHPしか読み書きできないのと、よし!この際pythonを覚えよう!という気持ちが沸かなかったのと、もっと楽な方法はないかなぁという欲があり、さらに調べていたところ、先人を発見。こちらのサイトを参考にさせて頂きました。

結論。
エイリアスを設定する。

/etc/bash.bashrc
の末尾に記入。

alias 1='~/bto_ir_cmd/my_room_light_off.sh'
alias 2='~/bto_ir_cmd/my_room_light_on.sh'
alias 800='~/my_tokyofm.sh'
alias 9='~/my_radiko_stop.sh'

これで「1」を押せば電気OFF、「2」を押せば電気ON、「800」でTokyo FMが再生、「9」でラジオが停止されるというようにしました。

いざ「1」Enter!・・・・・・

何も起きない。。。

画面をつないでみたら、ログイン画面で止まっていた。道理でコマンドが入力されないわけだ。
こちらのサイトを真似させて頂いて、自動ログインを有効にしました。

/etc/systemd/system/getty.target.wants/getty@tty1.service
の↓のような部分にユーザー名を追記。

ExecStart=-/sbin/agetty --autologin ユーザー名 --noclear %I $TERM

これで物理ーテンキーからコマンドを受け付けるようになりました。
テンキーからraspberrypiを操作できるようになってものすごく便利になりました。

とくにradikoの起動が非常にスムーズになり、快適なラジオ生活がおくれるようになりました。

tightvncserverのポート番号を変更する

最近tightvncserverが軽くて気に入っていて、windowsとUbuntuにインストールして、Androidから遠隔操作したりしています。
他のvncサーバーだとAndroidのVNCクライアントでデスクトップが表示されるまで時間がかかったりしますが、tightvncserverはわりとサクッと表示されます。
すべてのサーバーで試したわけではないので一概には言えませんが。。。

ですが、Ubuntuではデフォルトのポート番号を変える方法がわからなくて右往左往しました。
自分が見つけた方法は
/usr/bin/tightvncserver
↑の中に2か所ほどある「5900」を任意の番号に書き換えてしまうこと。
本当はダメなような気もしますが、なんとかポート番号を変えられました。

raspberrypiでradikoを聞く

ここ最近の外出自粛や在宅勤務の影響でラジオが大活躍。
ただ、ラジオは電池式なので交換が面倒なのと、スマホでradikoを聞くときは電池の消耗が気になるのと、
いちいちアプリを操作するのが面倒。

そこで電源コード付きのラジオを買おうと思っていた矢先、
raspberrypiでradiko聞けるのかなとふと思い立った次第。

参考にさせて頂いたサイトはこちら

音声の出力はイヤホンジャックにさした400円のスピーカー。

まず、ここから再生用スクリプトをダウンロード。
ファイルの配置場所は任意。
上記サイトに記載の通りにスクリプトを修正します。

-wkdir='/var/tmp'
+wkdir='/dev/shm'
-playerurl=http://radiko.jp/player/swf/player_3.0.0.01.swf
+playerurl=http://radiko.jp/apps/js/flash/myplayer-release.swf
- swfextract -b 14 ${playerfile} -o ${keyfile}
+ swfextract -b 12 ${playerfile} -o ${keyfile}

フォルダは書き込み権限があればどこでも良いのかも???
↓は二ヵ所。

- --header="X-Radiko-App: pc_1" \
- --header="X-Radiko-App-Version: 2.0.1" \
+ --header="X-Radiko-App: pc_ts" \
+ --header="X-Radiko-App-Version: 4.0.0" \

必要なパッケージのインストール

sudo apt-get install mplayer swftools rtmpdump libxml2-utils ffmpeg

Tokyo FMをきくときは

play_radiko.sh -p FMT

停止するときはCtrl+c
放送局の一覧
radikoのID一覧

ただ、このままだと画面に文字文字と文字が出てくるので、

play_radiko.sh -p FMT > /dev/null 2>&1 &

こうするとCtrl+cで止められなくなってしまうので、停止させるときは

kill `pgrep -f radiko.jp`

PIDの取得方法はこちらを参考にさせて頂きました。

これで電源を気にせずラジオを聴けるようになりました~。快適~♪