KURUMIでインターネット体験 (XBee WiFiとSNShieldを使用)

※本記事はイベント関連にあったのを、作り方使い方資料に移動しました。

がじぇるね岡宮です。

以下のKURUMIインターネット体験セットを使って、Xivelyというクラウドデータセンターに温度、照度をアップするまでをブログにします。

Xivelyにデータをアップすることで、スマホのブラウザで温度や照度のグラフ表示ができます。

■必要なもの

 ・GR-KURUMI

 ・FTDI (XBee設定用、KURUMI書き込み用)

 ・メスコネクタ 2.54mmピッチ12ピン ×2

 ・オスピンヘッダ 2.54mmピッチ12ピン ×2、6ピン ×2

 ・USBケーブル Mini-B (FTDI接続用)

 ・Sensor Network Shield(SNShield)

 ・XBee S6B (WiFi版)

 

■手順

まずは、XBeeを設定するまで行います。

XBeeを設定するためのXCTUをダウンロードしてインストールしてください。

http://www.digi.com/products/wireless-wired-embedded-solutions/zigbee-rf-modules/xctu

SNShieldにオスピンヘッダー6ピンを半田付けしてください。

XBeeをSNShieldに接続してください。

取り付けた6ピンヘッダーのところにFTDIを接続し、USBケーブルをPCに接続してください。

FTDIの接続向きに注意してくださいね。

XCTUを起動してください。

XCTUのツールバーにある ボタンを押してください。

Select the Serial/USB port:欄で「COM〇〇 USB Serial Port」を選択し、デフォルトの設定で[Finish]ボタンを押してください。

XBeeが認識されます。早速WiFi接続をしてみます。

 ボタンを押してください。ルーターをスキャンします。

スキャンされたルーターが表示されますので、接続するルーターを選択し、下の方にある「Access Point Setting」の欄にセキュリティキーを入力します。

それから[Connect]ボタンを押すと、ルーターとの接続を確立します。

アクセスポイントとの接続が完了すると、SNShieldの緑色LEDが点滅しますので確認してください。

この接続が完了することをアソシエート(associate)と言います。

なお、XBeeは電源起動後、設定されtアクセスポイントに自動的にアソシエートします。

XCTUで以下の項目を変更します。該当するパラメータを選択し、 ボタンを押して書きこんでください。

BD : 115200
IP   : TCP
DL  :216.52.233.120
DE  :50

注意:ボーレートを115200を設定しますので、次回XCTU起動時はXBeeとの通信ボーレートをデフォルトの9600から115200に変更してください。

次に、Xivelyのサイトにアカウントを作り、デバイスを登録します。

Xivelyのページにアクセスしてください。

https://xively.com/

 ボタンを押してください。

「Sign up for a free a free Developer Account」のボタンを押してください。

Sign Up画面が表示されますので、項目を埋めてアカウントを作ってください。

Xivelyから送られてきた新規登録メールでActivation linkをクリックするとWelcome画面が表示されます。

既に作成したアカウントでログインしている状態ですので、早速データを上げるためのデバイスを登録していきます。

 ボタンを押してください。

Development Devicesの画面が表示されます。

「Add Device」のエリアをクリックしてください。

Device Nameを適当に入れます。

また「Private Device」を選択して、[Add Device]ボタンを押してください。

デバイスの登録が完了しましたので、次にチャネルを追加していきます。

[Add Channels]ボタンを押してください。

Add Channelの画面で情報を入力し、[Save Channel]を押してください。

例では次の通りに設定しています。

ID      :  eye_lux (このIDは後々プログラムで必要になります)

Tags : illuminance

Units : Lux

Symbol : L

Current Value : 0

同様にもう一つチャネルを追加します。

例では次の通りに設定しています。

ID      :  eye_temp (このIDは後々プログラムで必要になります)

Tags : Temperature

Units : deg C

Symbol : D

Current Value : 0

2つのチャネルが登録されました。今回は照度と温度をグラフ化します。

なお画面に表示されているFeed ID、Keyはプログラムで必要になりますので、このまま続ける場合はブラウザは開いたままにしてください。

一息入れられる場合は、メモ帳などにコピーしておきましょう。

 

さて、最後のステップです。KURUMIを使って、インターネットにつないでいきましょう。

KURUMIに12ピンのオスピンヘッダーを半田付けします。

なお写真は私の好みで赤色のピンヘッダーを付けた状態です。

SNShieldに12ピンのメスコネクタを半田付けします。

半田付けする前にきちんとコネクタが接続できるか確認した方がいいです。

ちなみに、メスコネクタは黒しかないので、好みでないですが黒コネクタをつけています。(よい色のコネクタがあったら教えていただきたいです)

SNShieldにKURUMIを接続します。

なお、裏面にはXBeeが接続されていますので、接続していない場合は接続してください。

IDE for GRを起動します。こちらから入手できます。

Webコンパイラでも開発できますが、KURUMI Writer、ターミナルソフトのインストール等、手順が長いため、今回はこのソフトを使用します。

IDE for GRが起動したらメニュー「ファイル」→「スケッチの例」→「10.SNShield」→「UploadXively」を選択してください。

Xivelyにアップロードするためのスケッチ例が表示されます。

続いてメニュー「スケッチ」→「ライブラリを使用」→「SNShield」を選択してください。

同様の操作で「SPI」、「Wire」のライブラリを追加してください。

左の画面のように、プログラムが追加された状態になります。

Xivelyでデバイスを追加したときの情報を、プログラムに反映します。下記のString型変数に情報をコピーペーストしてください。

xively_feeds : FEED IDを埋めてください。

xively_key : API Keyを埋めてください。

xively_id1 : IDを埋めてください。今回の例ではeye_luxです。

xively_id2 : IDを埋めてください。今回の例ではeye_tempです。

FTDIに、6ピンヘッダーを差し込み、USBケーブルをPCに接続してください。

そして、そのピンヘッダーを図のようにKURUMIに接続して、SNShield上のアソシエートLEDが点滅するまで待ちます。

なお、この半田付けせずにアタッチするやり方は、KURUMIにあまり半田付けしたくない私流のやり方ですので、この不安定なやり方が肌に合わない場合は、KURUMIにピンヘッダを半田付けしてください。

IDE for GRの ボタンを押してください。プログラムのコンパイルが始まり、KURUMIへの書き込みまで行われます。

その後、KURUMIのLEDが青や緑、あるいは赤に光ります。

青:XivelyへHTTPコンテンツを送った合図です。

緑:XivelyからOKの返事が返ってきた合図です。

赤:Xivelyから応答がない、またはエラーの合図です。

Xivelyにアクセスして、作成したチャネルを見てみましょう。

KURUMIが緑に光るタイミングで、グラフが更新されていくと思います。

ここは、できたぁ!簡単!と喜びたいところです。

IDE for GRのシリアルモニターで実際のHTTPのやりとりを見ることができます。

 ボタンを押してください。

 続いて、シリアルモニターの右下にあるボーレート設定を115200に設定してください。

 

今回はここまでです。

モノのインターネットの時代がくるとして、IoTという言葉が出てきました。

何がインターネットにつながり、どんな世界が実現されていくか楽しみですよね。

でもやっぱり、自分の身の回りを可視化するだけでも面白いことが発見できそうです?

例えば、子供部屋に置いたら子供がどれくらい勉強しているか。(でもこそっと置かないと、電気をつけて外に遊びにいくかもしれません。。)

ポストに入れたら郵便物の把握、トイレに置いたら使用回数とトイレットペーパーの減る量の相関、お庭に置いたら自分家の日の出日の入り、

花壇に置いたら日照時間、、などなど温度と照度だけでも遊べます。

SNShieldには加速度センサー、マイクもついてますので揺れや傾き、騒音、特有の音(防犯ベルとか)も検知できます。色々と発見できそうですね。

 

最後に、SNShieldについているmicroUSBコネクタは電源供給用です。降圧レギュレータで3.3Vを生成します。

市販の充電器などを接続したら、KURUMIがインターネットにつながります。是非お試しください。リチウムポリマーもつなげられます。

ちなみに、今回は省電力なプログラムにしていませんので長持ちさせるには一工夫必要です。またどこかでお会いしましょう。

  • 最近、たぶんここ1、2ヶ月のところでXivelyに新規アカウント登録できた人居ます?

    どうしても私のところにアクティベーションのメールが来ないんです。