2011年6月11日土曜日

「俺ピークシフト」機能の作成(1) - 概要

自作のツイッターBOT“リブレッタ(@libretta_albot)”を動かしているノートPCがあります。
昼間の電力使用ピーク時間帯にそのPCのAC電源供給を切り、バッテリー動作させる機能を作ってみました。

実用4割、興味6割ぐらいでやってしまいましたがどんな感じで実現したか紹介できればと思います。

注意
趣味ですので、製品レベルの品質には遠く及びません。動作検証、安全性の検証は十分ではありません。このシリーズの記事を参考に作成、使用した結果発生したトラブルなどの責任は一切負えません。自己責任で!

AC100Vを扱う工作になりますので、感電には十分注意して下さい。下手をすると死ねます。

導入

皆さんもご存じの通り、原子力発電所停止の影響で、特に夏場昼間の電力不足が心配されます。
ピーク時間帯の電力消費を少しでも減らすために、最近のノートPCに搭載された「ピークシフト機能」のような「俺ピークシフト」機能を実現しようと考えました。

今回の要件は以下の4点です。

  • 昼間の電力使用ピーク時刻帯(13:00~16:00)にAC電源供給を切り、バッテリ駆動すること
  • “リブレッタ”を動作させているOSの「FreeBSD 8.1 RELEASE」で制御できること
  • 設定したバッテリ残量を切ったらAC電源供給をONにすること
  • AC電源状態とバッテリ残量をツイートすること

バッテリ切れによる電源断はマズイので、タイマー付きタップによる時刻のみの制御では不足です。
PCからの制御が必要です。

ハードウェアの構成はざっくり以下の図のようになります。

要件を満たすためにハードウェアは、以下の2点の機能を

  • ソリッドステートリレー(SSR)によるAC100VのON/OFF切り替え
  • PCに接続できるデジタル出力(DO)によりSSRを駆動

ソフトウェアは、以下の2点の機能を作成します。

  • cronでSSR制御コマンドを実行
  • リブレッタのバッテリ残量通知スクリプトから、新規作成のSSR制御コマンドを実行

ハードウェアは、ソリッドステートリレーに秋月電子の「ソリッド・ステート・リレーキット 35Aタイプ」。デジタルI/Oに秋月電子の「FT245RL USBパラレル変換モジュール」を使用します。

ソフトウェアは、デジタルI/Oを駆動するために「libFTDI」を使用します。

ハードウェア編に続く(予定)