Raspberry Piで航空機のADS-Bを受信してみました “USBポートの制御 hub-ctrl ミニ扇風機” (10)

Raspberry Piで航空機のADS-Bを受信してみました “NooElec R820T SDR & DVB-T MESDR Mini dump1090” (1)

Raspberry Piで航空機のADS-Bを受信してみました “IPアドレス固定化 ラズパイ環境整備 NTP RealVNC” (2)

Raspberry Piで航空機のADS-Bを受信してみました “macOS環境でADS-B信号のフィードにトライ” (3)

Raspberry Piで航空機のADS-Bを受信してみました “FR24 Feeder/Decoder フィード自動起動” (4)

Raspberry Piで航空機のADS-Bを受信してみました “SDR ADS-B 1090MHz 受信用アンテナ ssmtp mailutils mpack twython” (5)

Raspberry Piで航空機のADS-Bを受信してみました “無線LAN拡張 AirMac Express フレキシブルアーム” (6)

Raspberry Piで航空機のADS-Bを受信してみました “デバッグ環境 まさかの故障->Raspbian再インストール” (7)

Raspberry Piで航空機のADS-Bを受信してみました “状態の定期チェック Postfix cron  USB温度計 temper” (8)

Raspberry Piで航空機のADS-Bを受信してみました “カメラ監視 LOGICOOL C270 MJPG-streamer monitor fswebcam” (9)“の続きです。

 

(1) CPUの高温対策の一環としてUSBポート接続用のミニ扇風機をコントローラしてみる

夏場に近づいてくると、気になるのは、Raspberry Piに実装されているCPU温度の上昇。Raspberry Piには、パソコンみたいなファンが付いているわけではないので、温度が高くなってくると、CPUの熱暴走などが心配だったりします。

そこで、先日作成したcronを使った状態の定期チェックのなかでCPU温度は把握できるので、Raspberry PiのUSBポートに接続した扇風機で、Raspberry Piの周辺を冷やすことができないかなあ?と思い、今回、トライしてみました。

 

(a) まずミニ扇風機を買ってみる

USBポートから電源を供給するタイプの扇風機は、巷でゴロゴロ販売されているのですが、今回は、以下の条件を満たした製品を探しました。

・USBポートから供給する電源のオンオフだけで、扇風機が回ったり停止する仕様の製品であること。なかには、タッチセンサー等でオンオフする製品もあるのですが、そういったモノですと、そもそもUSBポートの制御だけでは扇風機をオンオフできないので、兎にも角にもシンプルな仕様の製品であること。

・リビングルームに設置するので、動作音が静かであること。これは、とても重要なポイントです。

・そこそこの風力がある製品であること。ちなみに、今回チョイスした製品は、電源スイッチで風力を2種類選択できるタイプで、強の場合は、それなりの風力です。

・リビングルームに設置してあるRaspberry Piはフレキシブルアームを使って固定しているので、扇風機本体を普通に置くスペースがないため、フレキシブルアームと同様、クリップで固定できるタイプの扇風機であること。

・これは我が家に限ったことですが、リビングルームのカラーが白基調なので、白い扇風機であること。

 

以上の条件を満たしていて、かつ安価な製品ということで、”Keynice USB扇風機 卓上 クリップ型 静音 USBケーブル1.5m ミニ扇風機 風量2段階調節 360度角度調整 4枚羽根 USBファン – ホワイト“を購入しました。

こんな感じです。

余談ですが、こちらの商品をアマゾンで購入すると、999円相当のスマホ用車載ホルダーがオマケで付いてきます。ま、モノによる値引きっていう感じ。

車に乗っている時、iPhoneの置き場がなくて困っていたので、こんなオマケ、意外と役に立ちそう。

 

(b) USBポートの電源オンオフを制御する”hub-ctrl”をインストールしてみる

AC Power Control by USB Hub“で公開されている”hub-ctrl”を以下の手順でインストールします。インストール作業は短時間で終わります。

sudo apt-get install libusb-dev

wget http://www.gniibe.org/oitoite/ac-power-control-by-USB-hub/hub-ctrl.c

gcc -O2 hub-ctrl.c -o hub-ctrl-armhf-static -lusb -static

sudo cp hub-ctrl-armhf-static /usr/local/bin/hub-ctrl

 

(c) USBポートの電源オンオフを制御してみる

何事もなくインストールが完了したので、早速、制御してみます。

と、その前に、Raspberry PiのUSBポートの使用状況を、”lsusb”コマンドでチェックしたところ、どれがミニ扇風機なのか分からない!

で、気を取り直して、キーボード、マウス、USB温度計を取り外して、再度チェック。

どうも、”Bus 001 Device 002″に接続中の”Standard Microsystems Corp”というやつがミニ扇風機らしい。(消去法で、そう判断しただけですが…)

続けて、”sudo hub-ctrl -v”コマンドで、各USBポートの電源供給に関する情報をチェックしてみます。

上記の判断が正しければ、”Hub #0 at 001:002″がミニ扇風機に関するデータということになります。で、Hub Portの状態は、”Port 1〜Port 5″が電源周りっぽいことも分かります。

早速、”hub-ctrl”コマンドで、電源のオンとオフを試してみます。”b”が”Bus”、”d”が”Device”、”P”が”Port”の設定パラメータです。最後の”p”をゼロにすれば電源オフ、”1″にすれば電源オンといった制御ができます。

sudo hub-ctrl -b 1 -d 2 -P 2 -p 0

sudo hub-ctrl -b 1 -d 2 -P 2 -p 1

ちなみに、今回は使いませんが、4つあるRaspberry PiのUSBポートの電源供給を、一括でオフあるいはオンにする場合は、

sudo hub-ctrl -h 0 -P 2 -p 0

sudo hub-ctrl -h 0 -P 2 -p 1

といった感じで。

 

(2) 状態の定期チェックと組み合わせてみる

(a) まずは、Pythonのスクリプトファイルを編集してみる

既に、定期チェック用に作成してあるPythonスクリプトファイル”raspberry_report.py“の中身を編集します。

未だ適切な値が掴めていないので、取り敢えず、CPU温度が54℃を超えた場合、という仮の想定でスクリプトを追記しておきます。スクリプトの記述的には、いまいちですが、細かいチューニングは後ほどということで。

編集したスクリプトを実行してみます。

“python raspberry_report.py”。

はい、まずはエラーなく、スクリプトの実行は確認できました。

 

(b) cronで定期チェックするようにしてみる

“sudo apt-get install postfix”でインストール開始。インストール後の各種設定内容については、過去のTALKをご覧下さい。

念のために、テストメールを送ってみます。

“echo “This is test mail.” | mail -s “test” “xxxxx@gmail.com””

はい、ちゃんと届きました。

 

続いて、”cron”周りの準備を進めていきます。

“crontab -e”で、”cron”の設定ファイルの編集を行います。

今回は、1時間毎に、先程作成したPythonのスクリプトを実行したいので、

“*/60 * * * * python raspberry_report.py”と記述して、”cron”を”sudo /etc/init.d/cron start”でスタートします。

このままだと、Raspberry Piをリブートしたりすると、”cron”が起動しないままになってしますので、

“sudo apt-get install chkconfig”

“sudo chkconfig cron”

で、Raspberry Piの起動時に、”cron”も起動してくれるようにしておきます。

序に、”cron”の動作に関するログをチェックできるようにしておきます。

“sudo nano /etc/rsyslog.conf”で設定ファイルを開き、

“#cron.* /var/log/cron.log”という記述行をコメントアウトします。

その後、”nano /etc/init.d/rsyslog restart”で、ログを記録するサービスをリスタートすれば、

“/var/log/cron.log”に、”cron”に関するログが記録されるようになります。

こんな感じ。

 

で、肝心な定期チェックの結果ですが、こんな風に、CPU温度とミニ扇風機の動作有無に関するツィートが、ちゃんと1時間に1度、届くようになりました。

ちなみに、ツィートが4行に渡っているのは、リビングルームに設置しているRaspberry Piの分も一緒にツィートされているから。

後は、ミニ扇風機をオンにするCPU温度の設定値を決めた後、今回、デバッグ環境で試した内容を、リビングルームに設置しているRaspberry Piの本番環境に反映することになります。

ホームページ”THE POOH FILES”にも是非お立ち寄り下さい。

tomohiko

長年に渡りMacintosh向けの自作アプリを作り続けているPOOHです。最近はiPhone,iPad向けアプリ開発にも挑戦中。グルメ、旅行、露天風呂、写真、サイクリング、映画、STAR TREKが大好き。レトロでSFなおもちゃを大量にコレクション。プレーリードッグと同居中。

おすすめ

コメントを残す