☆ボードオレンジ:「活用事例1:センサ1つでこんなに楽しいmbedワールド!」
.
Languages
English version is here : StarBoard Orange : "Application example No.1 : Enjoy mbed world with just one sensor!"
概要
☆ボードオレンジは@logic_starさんが企画設計したmbed NXP LPC1768用のベースボードです。
この基板には
- microSDカードスロット
- USB(ホスト)
- LAN(RJ-45)
- LCD
が搭載可能で、mbedで考えられる沢山のアプリケーションに活用可能な設計になっています。
本文書ではこのボードの特徴を活かし、センサを1つ加えるだけで楽しいアプリケーションとなる活用事例を御紹介します。
アプリケーション
概要
この活用事例では、☆ボードに接続した温度センサから温度を読み取り、TwitterにSuperTweet.Net経由で測定データをツイートするアプリケーションを御紹介します。
この手のアプリケーション事例は数多く見られますが、今回の活用事例では数値データをそのままツイートするのではなく、GoogleChart ( http://code.google.com/intl/ja/apis/chart/index.html )を使ってグラフ化できるようにして見ました。
以下の画像は実際にセンサからデータを読み取り、SuperTweet経由でTwitterにツイートされた内容をクリックして、GoogleChartでグラフ化したものです。このようにmbedと☆ボード、それにセンサが1つあるだけで、ウェブと連携した測定装置が実現できてしまいます。
データフロー
データフローは以下のようになっています。
- センサーの値を読み取り一定サンプリング間隔でグラフデータを作成します。
- グラフデータはベーシック認証でTwitterにポスト可能なsupertweet.netのサービスを経由してTwitterにポストされます。
- supertweet.netでは長いURLをbit.lyで自動的に短縮してくれます。
- ユーザはTwitterにポストされたURLをクリックすることでグラフを参照することができます。
用意するもの
物品
- ☆ボード
- mbed NXP LPC1768
- 温度センサ (LM60, LM35, MCP9700のいずれかを1つか2つ。)
- microSDカード (FAT32でフォーマットしてあるもの。)
環境
- LAN環境 (DHCP対応環境を推奨。)
- Twitterのアカウント ( http://twitter.com/ )
- SuperTweetのアカウント ( http://www.supertweet.net/ )
プログラム
以下のプログラムをインポートして下さい。
http://mbed.org/users/shintamainjp/programs/StarBoardOrangeExample1/latest
準備
ネットワークの接続
RJ-45コネクタにネットワークケーブルを接続します。
センサの接続
センサの出力をp19, p20に接続します。
microSDカードの挿入
microSDカードを挿入します。
環境に合わせてソースを修正
SuperTweetアカウント情報
main.cppの21行目に、SuperTweetに対するアカウント情報の記述があります。
これを御自身のアカウント情報に書き換えて下さい。
#define SUPERTWEET_ACCOUNT "YourAccount" #define SUPERTWEET_PASSWORD "YourPassword"
ネットワーク環境
デフォルトではDHCPサーバからIPアドレスの供給を受ける設定になっています。
必要に応じて静的IPアドレスを割り当てることもできます。
main.cppの24行目以降に記述があります。
#if 1 /* * Use "DHCP" */ EthernetNetIf eth; #else /* * Use "static IP address" * * -> IP * -> Subnet mask * -> Gateway * -> DNS */ EthernetNetIf eth( IpAddr(xxx,xxx,xxx,xxx), IpAddr(xxx,xxx,xxx,xxx), IpAddr(xxx,xxx,xxx,xxx), IpAddr(xxx,xxx,xxx,xxx)); #endif
センサーの種類
デフォルトではMCP9700を使うようになっています。
main.cppの47行目に以下のような記述があります。
SensorMCP9700 sensor1(p20); SensorMCP9700 sensor2(p19);
これをセンサの種類に応じて
SensorLM35 sensor1(p19);
SensorLM60 sensor1(p19);
のように書き換えて下さい。
また、実際にセンサを用意するのが難しい場合にはダミーセンサを使っても構いません。
以下のコードを挿入すれば外部にセンサを取りつけることなく擬似的なセンサ(値をランダムに返すセンサ)を動作させて楽しむことができます。
SensorDummy sensor1; SensorDummy sensor2;
ダミーセンサの出力例
リアルタイムクロックの設定
グラフ中に挿入している日付と時刻はリアルタイムクロックから持ってきています。
main.cppの185行目にリアルタイムクロックを設定するコードをコメントアウトして設置してあります。
/* * Set date and time. (If you want.) * * -> Year. * -> Month. * -> Day. * -> Hour. * -> Minutes. * -> Seconds. */ #if 0 setDateTime(2012, 1, 1, 0, 0, 0); #endif
簡易的に設定したい時には上記のコードを生かして設定しても構いません。
動作させてみる
実際にプログラムをコンパイルしてmbedに投入し動作させてみましょう。
- プログラムが動作するとスプラッシュ画面の後に、ネットワークの初期化、SDカードのチェックが行われます。
- プログラムではサンプリングを1秒毎に行い、60回のサンプルが得られた時点で、SDカードへの記録、Twitterへのポストが行われます。但し、このプログラムではSDカードへの記録時やTwitterへのポスト処理時にはサンプリング動作を行いません。
- LEDはサンプリング毎に点灯パターンが変化します。
動作の様子
Twitterへの出力例
Twitterへの出力は以下のような感じです。
グラフの出力例
Twitterのアドレスをクリックするだけで、下記のようなグラフが瞬時に得られます。
単なる数値の羅列ではない面白さを体験することができます。
まとめ
- ☆ボードがあればmbed NXP LPC1768を簡単にネットワークに接続できる環境が整えられます。
- 今回は一歩踏み出し、どのようにそれを活用するのかにフォーカスし、センサを使った活用事例を御紹介しました。
- 今回のチャート作成のために、GoogleChartを抽象的に扱うためのクラスを設計実装し、応用事例の一つとして本活用事例を作成しました。
- ☆ボードさえあればセンサ1つでこんなに楽しい応用へと展開可能。皆さんも是非お試し下さい。
関連情報
基本情報
- StarBoard Orange: mbed評価用ベースボード(in Japanese)
- Twitterアプリを動かしてみる ("Let's try Twitter" in Japanese)
- おまけ (mbedを始めましょう!("Let's get started!" in Japnaese))
- ☆ボードオレンジ:「ハンダ付けステップバイステップ」
- ☆ボードオレンジ:「拡張性を見てみましょう!」
サービス関連
活用事例
- ☆ボードオレンジ:「活用事例1:センサ1つでこんなに楽しいmbedワールド!」
- ☆ボードオレンジ:「活用事例2:赤外線リモコンで楽々操作しよう!」
- ☆ボードオレンジ:「活用事例3:wiiヌンチャクを使ってチョロQを運転しよう!」
更新履歴
バージョン | 日付 | 更新内容 |
1.0.0 | 2010/08/11 | 初版。 |
1.0.1 | 2010/08/12 | ダミーセンサ追加に伴う文書修正。 |
1.0.2 | 2010/08/14 | 関連情報に活用事例を追加。 |
1.0.3 | 2010/08/16 |
関連文書を更新。 |
1.0.4 | 2010/09/10 | 活用事例を更新。 |
- | - | - |
- | - | - |
- | - | - |
- | - |
- |
4 comments
You need to log in to post a comment