☆ボードオレンジ:「活用事例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つ加えるだけで楽しいアプリケーションとなる活用事例を御紹介します。

アプリケーション

概要

この活用事例では、☆ボードに接続した温度センサから温度を読み取り、TwitterSuperTweet.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をクリックすることでグラフを参照することができます。

用意するもの

物品

  1. ☆ボード
  2. mbed NXP LPC1768
  3. 温度センサ (LM60, LM35, MCP9700のいずれかを1つか2つ。)
  4. microSDカード (FAT32でフォーマットしてあるもの。)

環境

  1. LAN環境 (DHCP対応環境を推奨。)
  2. Twitterのアカウント ( http://twitter.com/ )
  3. 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つでこんなに楽しい応用へと展開可能。皆さんも是非お試し下さい。

関連情報

基本情報

サービス関連

活用事例

更新履歴

バージョン 日付 更新内容
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

28 Aug 2012
こんにちは。 質問なのですが、上記のプログラムをインポートして何も触らない状態でコンパイルしてもコンパイルエラーが出ます どのように対処すればよろしいでしょうか? 当方の環境としては上記の環境でダミーセンサを使うため、センサ等の取り付けは行なっておらず、mbed+ボードオレンジの組み合わせです。 よろしくお願いします。 "cannot open source input file "FATFileSystem.h": No such file or directory" in file "extlib//SDFileSystem.h", Line: 27, Col: 26 "cannot open source input file "TCPSocketConnection.h": No such file or directory" in file "HTTPClient//HTTPClient.h", Line: 27, Col: 32 "cannot open source input file "FATFileSystem.h": No such file or directory" in file "extlib//SDFileSystem.h", Line: 27, Col: 26
30 Nov 2012
はじめまして、山内です。 自分も同じエラーがでます、マイコン初心者のため解決できません。ご教授いただければ幸いです。
13 Dec 2012
ライブラリーを変えたらコンパイルできました。SuperTweetの投稿アドレスも変わってました。
19 Aug 2015 . Edited: 19 Aug 2015
はじめまして。akiと申します。 インポート時に”Unable to update library to revision: /StarBoardExample1/HTTPClient”のメッセージがでてアップデートができなかったようです。 コンパイルをしても、Cannot open source input file !!TCPSocktConnection.h":No such file or directory "#include"TCPSocktConnection.h" とエラー表示がでて上手くコンパイルでできませんでした。mbedのWorkSpace上のHTTPClientをマウス右クリックでUpdateしてみましたが、上手くいきませんでした。 masa yama様、ご教示いただけると幸いです。

You need to log in to post a comment