« リストラ対象になりました。現在求職中です。 | ホーム | リストラの件、たくさんのコメントメッセージありがとうございました。 »
2009年3月 9日
室温をTwitterにポストする、Temp Loggerを作った
アメリカでβテスト中の、ホームオートメーションデバイス"ioBridge"を使って、自宅の室温をログってみたよ。
仕組みを説明する前に、ioBridgeって何なのかを軽く説明してみようと思う。
ioBridgeは4つの入出力ポートを持っていて、それぞれのポートにインターネット上からアクセスできるデバイス。
これを使って何をやるかは人次第なのだけど、たとえば、センサーの入力をメールで配信したり、逆にネットからの入力をポートを介して出力することもできる。
すでに、ioBridgeを使っていろんなガジェットをつくってる人がいる。
たとえばこんなやつ。
iPhoneから犬の餌やりができるという。
iPhoneで表示されているのは、ioBridgeを購入することでアクセスできる管理画面で、ここで各ポートに信号を送ったりできる。
もちろん、APIを介して自分で作ったアプリからアクセスすることもできる。
ioBridgeの仕組みは、まず、デバイスがLANを介してインターネットに接続し、ioBridgeの中継サーバーとセッションを張る。
管理画面はその中継サーバー内にあり、変更された値はサーバー内にPOSTされて、ioBridgeはそれをGETする...といったかんじ。
なので、外部から家のネットワークに入る必要がない。環境を選ばない点は非常にすばらしい。
ただし、タイムラグが若干発生するし、ベータテストなせいか、サーバー自体がレスポンスを返さないことすらある。
とりあえず僕は「家電にTwitterさせる」のが目的だったので、ioBridgeに接続した何らかのセンサーの値を、Tweetさせてみようと思い立った。
購入時に専用に設計された温度センサを一緒に買っておいたのだ。
ioBridgeのSTOREにいけば、ioBridge本体やそれに接続できるテスト用のボード、延長コードなど様々なオプションを購入できる。
まぁ正直なところ、テスト用のボードとシリアル変換ボード、サーボコントローラーぐらいがあれば、あとは自作できるので問題ないと思う。
前置きが長くなった。道具は揃ったので早速室温をTweetするデバイスを作ってみようと思う。
設計
設計と言っても回路図を書くとか、そんな恐ろしいことはしない。
まず、測定した温度をどう扱うか、そして、それをどのようにしてTwitterへPOSTするかを考えるだけでいい。
ioBridgeのAPIを直接呼んで、データをJSON形式で取得。これをパースして温度情報を抜き出して、TwitterへPOSTすることにした。なんのことはない。単純なアプリケーションだ。
実装
温度センサをioBridgeに差し込んで、好きなところにセンサを設置する。これだけでいい。センサのケーブル長は1mぐらいある。ioBridge自体をLANに接続する必要があるので、意外と置き場所に困る用に見受けられるが、そこはPLC使って回避した。
コンセントさえ近くにあれば、どこでも温度をTweetできる。
まず、温度情報をきちんと入力できるように、ioBridgeを設定する。
ioBridgeの管理画面では、センサの入力を電圧や気圧、気温など5種類の値から適したものを選ぶようになっている。
普段はRawでよし。今回は温度計なので温度(C)にした。最低値と最大値を設定することで、精度を高めることができる。
ioBridge本体は適当にPLCを介して、リビングに置いた。

ケーブルが巻かれてある先が温度センサ。手前の白い板はブレッドボードで、今回紹介する以外のセンサを取り付けてテストしている。
次にColdFusion側。
ioBridgeのデータには、あらかじめ決められたIDを含んだURLにアクセスすることで取得できる。今回は温度と言うこともあり、こちらの適当なタイミングでデータをとっていけばいい。
取得したデータをTwitterへ、これまた決められたURLでポストすれば処理は完了となる。ソースは以下の通り。IDとかそのあたりはマスクしてある。
6行目でioBridgeの情報を取得し、8行目でJSON形式を構造体に変換して、内部で使いやすいようにしてある。
10行目からは温度情報を取得して、適当な文章テンプレートにはめ込んでいる。
最終的にそれをTwitterへ投げている。
プログラムができたら次は、このプログラムを定期的に実行するようにしたい。
ColdFusionにはスケジューラー(cronみたいなやつ)が備わっていて、GUIで自由にスケジュールを設定することができる。これを使って1時間ごとに室温を記録するようにした。
ここまで何度かテストはしているものの、実際にスケジュールされているかドキドキしながら待ってみる。結果は以下のページで確認できる。
http://twitter.com/ioBridge_JP
さて、上記Twitterを見て気がついただろうか?
このTweetには温度の他に、朝になったかどうかもポストするようになっている。写真にあるように、今は温度計だけでなく、様々なセンサを稼働させている。この一環として照度センサを使って、部屋に朝が来たかどうかをTweetさせている。
これのやり方はまた次回に。
ひとまず、センサをTwitterと簡単に接続することができた。最終的にはネットと全く繋がっていない家電を、センサなどを介してネットに接続させ、なんらかのTweetをさせてみたいと思っている。
トラックバック(0)
トラックバックURL: http://okamot.com/mt/hage-tb.cgi/1868
コメントする