困っていたこと
職場でHipChatを利用していますが、複数ルームからのメッセージがあるため、重要なルームメッセージを見逃す場合があり困っていました。
考えたこと
重要なルームメッセージを見逃さないように、
HipChatの特定ルームにメッセージが来たらパトランプを一定時間点滅させることを考えました。
実現方法
- RaspberryPiからHipChatのAPI(history)を呼び出しContentLengthを獲得する
- HipChatのAPI(history)は実行日を指定して獲得量が多くなりすぎないようにする
- ContentLength値の増加を検知してリレーのON/OFFを制御する
- リレーONに連動してパトランプ回路に電流を流す
- 点滅はパトランプ本体の機能をそのまま使う。
動作条件
- インターネットに接続している
- HipChatのAPIアクセストークンを取得している
ハードウエア
- Raspberry Pi
- リレー
- パトランプ
- 電源(5Vと12V)
プログラム仕様
- c言語で作成する
- リレー制御はGPIO17を使用
- WebAPI呼び出しインターバルは5秒とする
- 起動パラメータはチャットルーム名とパトランプを点滅させる秒数
必要なライブラリをインストール
wiringPi
git clone git://git.drogon.net/wiringPi
cd wiringPi
./build
ssl
apt-get update
apt-get upgrade
apt-get install libssl-dev
コード
実行方法
chat-reray [ルーム名] [点滅秒数] [パトランプ出力先ポート] [サウンド指定]