(2018-02-03 初稿 - 2021-05-12 転記・修正)
はじめに
自宅サーバとしてRaspberry Pi3(以下、ラズパイと呼びます。)を購入した。
せっかくなので、サーバとして運用する上で気がかりな点をつぶやいてもらうことに。
ラズパイはファンレスなので、冬の時期は心配ないが、超狭い自室の熱のこもった部屋では発熱がとっても心配。
ワンボードマイコンのラズパイ的には、温度を計測して、近くにあるファンのスイッチを入れるなんてことができるととっても良いが、筆者ははんだごてひとつ握れないヘタレなので、ソフト的なことしか。(^_^;)
ということで、ラズパイにプログラム言語rubyをインストールして、gemパッケージtwの力をお借りしてtwittrにつぶやくようにしてみた。
Rubyのインストール
さっそく、まずラズパイにrubyをインストールずる。
以下のコマンドでOK。
$ sudo apt install ruby ruby-dev
ruby-devを忘れると、twのインストールができないので気をつけて。
twのインストール
続いて、twのインストール。twはコマンドラインからつぶやけるスグレモノのgemパッケージ。
twのインストールの前にgemのシステムやパッケージをアップデートしておく。
$ sudo gem update --system $ sudo gem update
結構な時間が掛かりますので、お茶でも飲んで。^^;
本題のtwのインストールは以下のように。
$ sudo gem install tw
twでつぶやいてみる
twでは、以下のようにつぶやく。
$ tw --stream --status_id
なお、初回起動したときは、画面にURIが表示されるので、別のPC等で指示されたURIに行き、認証用の番号をtwに教えること。
上記コマンドでは、User streamsをstatus付きで取得(自動で更新)する。
さっそく、つぶやいてみる。
$ tw "hello from Raspberry Pi3"
いちいち[Y/n]の確認があるので面倒。
そこで、以下のように入力。
$ tw --yes "hello from Raspberry Pi3"
今度は、さっとつぶやけた。
さらに、プログラムからつぶやくときに便利なようにパイプを使ったつぶやきを。
$ echo "Raspberry Pi3からのぶつやきです。" | tw --pipe
これで、つぶやく準備は整った。
CPUの温度を表示してみる
ネットで検索するとラズパイの場合、以下のコマンドでCPUの温度が表示できるよう。
$ vcgencmd measure_temp temp=44.0'C
簡単だね。
CPUの温度をつぶやいてみる
では、さっそくCPU温度をつぶやいてみる。
$ vcgencmd measure_temp | tw --pipe
「temp=44.0'C」とちょっとそっけないので、現在時刻とメッセージを入れてみる。
$ echo "現在時刻と「ひゃまだ家」のRaspberry Pi3のCPU温度は $(date +"%Y-%m-%d %H:%M:%S") : $(vcgencmd measure_temp) です。(^^♪" | /usr/local/bin/tw --pipe
@hymd3a 1時間1時間前 現在時刻と「ひゃまだ家」のRaspberry Pi3のCPU温度は 2018-02-03 10:20:25 : temp=46.2'C です。(^^♪
これで、少しはつぶやきらしくなった。
毎回、コマンド入力するのは面倒なので、bashスクリプトに。
適当なエディタ(例えば vi) で、~/bin/tw-cputemp 等のファイル名で以下の内容を書き込む。
$ vi ~/bin/tw-cputemp
#!/bin/bash echo "現在時刻と「ひゃまだ家」のRaspberry Pi3のCPU温度は $(date +"%Y-%m-%d %I:%M:%S") : $(vcgencmd measure_temp) です。(^^♪" | /usr/local/bin/tw --pipe
書き込んだら、以下のコマンドで実行権を与える。
$ chmod +x ~/bin/tw-cputemp
実際に実行してみて、正常につぶやけるか確認して。
$ tw-cputemp
これで、簡単にCPU温度をつぶやけるようになった。
定期的につぶやくようにする
最後に、定期的につぶやけるように、crontabに先ほどのコマンドを登録する。
$ crontab -e
書き込む内容は以下のように。
5 10-15 * * * /home/pi/bin/tw-cputemp
上記の場合は、毎時5分になるとつぶやく設定。
注意点は、先ほど作ったシェルスクリプトをフルパスで指定すること。
(追記 2018-02-04) Twitterを見ていたら、うるさく感じたので、10時から15時のCPU温度が高温になりそうな時間帯だけ実行するようにした。
なお、crontab では、例として以下の記述ができる。
*/10 * * * * /home/pi/bin/tw-cputemp # 10分おきに 15 * * * 0 /home/pi/bin/tw-cputemp # 日曜日のみ毎時15分につぶやく
詳しいことは、「man crontab」やネットで検索してみて。
twitterさんに負荷が掛かるので、あんまり頻繁につぶやかないように。
【追記】 初期設定では、exim4またはpostfixなどのメールトランスファーエージェント(MTA)が必要である。
筆者は、以下のとおりインストールした。
なお、crontabのエラーは、/var/log/syslogにCRON) info (No MTA installed, discarding output)等と出るので、つぶやかない場合は、確認してみて。
$ sudo apt-get install exim4 $ sudo dpkg-reconfigure exim4-config $ sudo vi /etc/exim4/passwd.client $ sudo update-exim4.conf
詳細は、以下のページを参考に。
debianサーバでメールを送る(exim4編)
なお、筆者のtwitterは、@hymd3a なので、お暇な方はフォローして、ほめていね。(^^)v
おわりに
twitterにラズパイのCPU温度をつぶやくコマンドを作ってみた。
腕に自信がある方は、はんだごてを持って、ラズパイの温度が上がったらファンを回す等の設定を行うと楽しいかも。
せめて、CPUの温度によって、顔の表情を変化させると楽しいでしょうが、筆者はめんどくさがりやなのでたぶんやらない。(^_^;)
また、何か気がついたら記述する。