Edited at

特定のチャットルームにメッセージが来たらパトランプを点滅させる

More than 1 year has passed since last update.


困っていたこと

職場でHipChatを利用していますが、複数ルームからのメッセージがあるため、重要なルームメッセージを見逃す場合があり困っていました。


考えたこと

重要なルームメッセージを見逃さないように、

HipChatの特定ルームにメッセージが来たらパトランプを一定時間点滅させることを考えました。


実現方法


  • RaspberryPiからHipChatのAPI(history)を呼び出しContentLengthを獲得する

  • HipChatのAPI(history)は実行日を指定して獲得量が多くなりすぎないようにする

  • ContentLength値の増加を検知してリレーのON/OFFを制御する

  • リレーONに連動してパトランプ回路に電流を流す

  • 点滅はパトランプ本体の機能をそのまま使う。


動作条件


  • インターネットに接続している

  • HipChatのAPIアクセストークンを取得している


ハードウエア


  • Raspberry Pi

  • リレー

  • パトランプ

  • 電源(5Vと12V)

chat-relay.png


プログラム仕様


  • c言語で作成する

  • リレー制御はGPIO17を使用

  • WebAPI呼び出しインターバルは5秒とする

  • 起動パラメータはチャットルーム名とパトランプを点滅させる秒数

https通信はここを参考にさせていただきました


必要なライブラリをインストール


wiringPi

git clone git://git.drogon.net/wiringPi

cd wiringPi

./build


ssl

apt-get update

apt-get upgrade

apt-get install libssl-dev


コード

https://github.com/shigeru-yokochi/chat-relay


実行方法

chat-reray [ルーム名] [点滅秒数] [パトランプ出力先ポート] [サウンド指定]