« リストラ対象になりました。現在求職中です。 | ホーム | リストラの件、たくさんのコメントメッセージありがとうございました。 »

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種類の値から適したものを選ぶようになっている。
Safari090122009.png 普段はRawでよし。今回は温度計なので温度(C)にした。最低値と最大値を設定することで、精度を高めることができる。

ioBridge本体は適当にPLCを介して、リビングに置いた。


ケーブルが巻かれてある先が温度センサ。手前の白い板はブレッドボードで、今回紹介する以外のセンサを取り付けてテストしている。

次にColdFusion側。

ioBridgeのデータには、あらかじめ決められたIDを含んだURLにアクセスすることで取得できる。今回は温度と言うこともあり、こちらの適当なタイミングでデータをとっていけばいい。
取得したデータをTwitterへ、これまた決められたURLでポストすれば処理は完了となる。ソースは以下の通り。IDとかそのあたりはマスクしてある。

6行目でioBridgeの情報を取得し、8行目でJSON形式を構造体に変換して、内部で使いやすいようにしてある。
10行目からは温度情報を取得して、適当な文章テンプレートにはめ込んでいる。
最終的にそれをTwitterへ投げている。

プログラムができたら次は、このプログラムを定期的に実行するようにしたい。
ColdFusionにはスケジューラー(cronみたいなやつ)が備わっていて、GUIで自由にスケジュールを設定することができる。これを使って1時間ごとに室温を記録するようにした。

Safari090122010.png

ここまで何度かテストはしているものの、実際にスケジュールされているかドキドキしながら待ってみる。結果は以下のページで確認できる。
http://twitter.com/ioBridge_JP

さて、上記Twitterを見て気がついただろうか?
このTweetには温度の他に、朝になったかどうかもポストするようになっている。写真にあるように、今は温度計だけでなく、様々なセンサを稼働させている。この一環として照度センサを使って、部屋に朝が来たかどうかをTweetさせている。
これのやり方はまた次回に。

ひとまず、センサをTwitterと簡単に接続することができた。最終的にはネットと全く繋がっていない家電を、センサなどを介してネットに接続させ、なんらかのTweetをさせてみたいと思っている。

トラックバック(0)

トラックバックURL: http://okamot.com/mt/hage-tb.cgi/1868

コメントする

このブログ記事について

このページは、はげが2009年3月 9日 13:50に書いたブログ記事です。

ひとつ前のブログ記事は「リストラ対象になりました。現在求職中です。」です。

次のブログ記事は「リストラの件、たくさんのコメントメッセージありがとうございました。」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。