端っこプログラマーの手帳

主にプログラムに関する手記です

「Raspberry Pi + レンタルサーバー」で円滑に退社時間を伝える~おきがる伝言鳥~

Raspberry Piレンタルサーバーで、自宅に会社を出た時間を伝える仕組みを作りました。

プログラムは「作って楽しい、使って便利」となれば最高ですが、割と前者の自己満足で終わることが多かったりします。 しかし、今回は後者の便利な点が少し実現できたかなと思っているのでまとめてみます。

我が家のお話。会社から帰るとき自宅に「今から帰るよ~」と電話してます。なぜ電話かって、私の親は携帯を持っていないためメールという手段は持ち合わせいません。電話ってかける方はいいですけど、出る方は大変です。常に電話のあるお茶の間にいる訳じゃないですから。トイレにいっていたり、テレビドラマを見ていて盛り上がっているところかもしれません。

そこで、電話を使わずに「今から帰るよ」と伝える手段を考えてみました。思いついたのは、

スマホでWebページのボタンを押すと、自宅ラズベリーパイの7セグLEDに退社時間が点灯

という装置。名付けて「おきがる伝言鳥~msgbird~」
実は伝言じゃない気もするのですが、初めは退社時間だけでなく、文字でメッセージ通知もする予定でそのときの名残です。でなんで鳥なんだというと、そのままでは味気ないため、鳥のぬいぐるみにLEDをひっかけようと思ったからです。

構成図

f:id:kzhishu:20151103124503j:plain:w600

説明

  1. 退社時にスマホでサーバーにアクセスし退社ボタンを押す
  2. サーバーのJSONファイルに退社時間が書き込まれる
  3. ラズパイは、サーバー上のJSONファイルを監視(1分おきにリクエスト)
  4. 更新があったら退社時間を7セグLEDを点灯。圧電ブザーも鳴らす。

JSONファイルの監視は1分毎なので、点灯するまでブランクがある設計です。ただ、今回の目的は退社時間を伝えることなので、1分後でも問題ないと判断しました。あと、レンタルサーバーを経由するため、自宅のラズパイは外からアクセスできる必要はないです。(外からアクセスは自分の今の技術では難しそうなため断念しました。) 退社ボタン画面は、さくらのレンタルサーバー スタンダードに置きました。 自宅のラズパイは、RaspberryPi2です。言語は、Python3系を使いました。

後で思いついたのですが「node.js + websocket」を使えば、即反映とサーバーへの無駄なリクエストを無くすことができそうです。今後改良をしてみたいと思います。

3週間程使っていますが、安定して動作しています。

f:id:kzhishu:20151128004729j:plain:w600

コードはGitHubにおいてます。

おきがる伝言鳥 GitHub
GitHub - megatk/msgbird: 退社・メッセージ通知 「おきがる伝言鳥」のリポジトリ

client/  自宅ラズパイのPG
doc/    回路図
server/  サーバーに置くPG
README.md