2012-04

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

XBee WiFi経由でGoogle天気APIを使ってみる

概要:


XBeeWiFi経由でGoogle天気APIにアクセスして天気情報を取得.
ついでにArduino側で取得したXMLを解析と天気の表示までやってみました.

実行環境:


・X-CTU
・XBee WiFi
・ネット環境
Arduiono Harpy

天気データ取得:


以前の記事(XBee WiFiを使ってWebサーバーからファイルを取得する
を参考にして接続の環境を整えます.
接続するサーバーのIPは次のようになっています.
Destination IP : 173.194.38.73


次にこのサーバーに送るメッセージを決定します.
以下のようなものになります.
メッセージの末尾についているのが位置情報です.
これを変えることで,天気情報を取得する場所を変更することができます.

GET http://www.google.com/ig/api?weather=toyohashi,aichi HTTP/1.1
(改行)


以上のメッセージの送信に成功すると,下の画像のようなレスポンスとXMLが返ってきます.

xbee-weather-xctu

後は取得したXMLを分析し,必要な情報を取り出すだけになります.

天気データ:


XMLを分析します.
取得したXMLには今日を含めた4日間の天気予報が書かれています.
今回,天気予報?に現在の天気情報を使用します.
使用するデータは,取得したXMLの以下のものとなります.

google_weather_xml
*テキストを貼り付けると上手く表示してくれないので,画像になっています

この部分の中のタグの中を取得出来れば,今の天気を知ることができます.


Arduinoを使ってXMLを解析:


ここまで分かれば,あとはArduinoにXBeeWiFiをつなげてアクセスするだけです.
使用したArduinoはAtmega328と同等品になります.

Arduionoで使えるXML解析ライブラリを探したのですが,
なかなか容量が小さい物が見つからなかったため,
最小限の機能を搭載したものを作成しました.

作成したプログラムはタグの開始【<】 と 終端【>】を見つけるだけの簡単なものです.
(これを解析プログラムと呼んでいいのか?)
ソースは下に公開しておきます.
完成度が低いので,あまり参考にならないと思いますが....
MicroXMLParser?


動作実験:


このXML解析プログラムを実際に動かしたものがこちらになります.



解析して得た天気情報を基にフルカラーLEDの色を決定し,PWM(アナログ)値を設定.
同時にソフトウェアシリアルを用いて,PC側に解析結果を送信しています.


まとめ:


今回はシリアル周りの通信でだいぶ苦労しました.
XBeeWiFiとの通信はソフトウェアシリアルで行うことを考えていたのですが,
データの取りこぼしが多かったため,使用を断念しました.

全てのソースを公開したいのですが,
今回はまだ人に見せることができるレベルに達していないため,見送ることに決めました.

次回からは,天気予報ガジェットをMakeに出展できるレベルまで作りこんでいく予定です.


参考サイト:


google api からデータ取得
Arduiono Harpy
ArduinoでXMLを解析する
スポンサーサイト

NEW ENTRY «  | BLOG TOP |  » OLD ENTRY

カレンダー

03 | 2012/04 | 05
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 - - - - -

FC2カウンター

最新記事

最新コメント

最新トラックバック

月別アーカイブ

カテゴリ

未分類 (7)
日記 (7)
wiiremote (1)
google (1)
回路 (3)
psp (1)
programing (15)
linux (0)
OpenWRT (3)
kinect (1)
Raspberry Pi (8)

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する

google adsense

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。