17

Click here to load reader

Klabの梅雨対策

Embed Size (px)

Citation preview

Page 1: Klabの梅雨対策

KLabの梅雨対策KLab株式会社研究開発部

竹井英行GREE×KLab合同勉強会

2010/05/07

Page 2: Klabの梅雨対策

自己紹介

• たけいひでゆき(2年目)

• 興味

–人とロボット、ロボットとロボットの関わり

• 趣味

–役に立たないモノを作る

• モノの新たな価値を創見出す

Page 3: Klabの梅雨対策

今日は役に立つモノを発表したいと思います

Page 4: Klabの梅雨対策

Agenda

• Klabオフィス(六本木ヒルズ)の弱点

• 梅雨を快適に過ごすために

• Live E! について

• GAEまわりについて

• デモ

Page 5: Klabの梅雨対策

梅雨時期のオフィスの弱点

• 5月とえいば梅雨です!

• Klabは六本木ヒルズ22F

にオフィスがあります

• 雨音が聞こえません

• 気づかずに外に出ると雨・・・・ということが多々あります

• 雨かどうか知るために我々はどうしているか・・・

このへんこのへんこのへんこのへん

Page 6: Klabの梅雨対策

「窓から下を覗く」という愚かな行為注)夜になると、うっすらとしか見えません!

傘をさしている人がいる

=雨が降っている

Page 7: Klabの梅雨対策

梅雨を快適に過ごすために

• リアルタイムな雨状況を知りたい– Not 天気予報

• 下を覗くは面倒

–パソコンなら覗ける

• 雨が降ったとき、やんだ時をリアルタイムにTwitしてくれるボットの製作

Page 8: Klabの梅雨対策

デモ

http://twitter.com/roppongi_rain

雨が降っていないとき 雨が降っているとき

Page 9: Klabの梅雨対策

Live E! ~活きた地球の環境情報~

• http://www.live-e.org/index.html

• インターネットに接続されたデジタル百葉箱が六本木ヒルズの近くに設置されている– http://www.map-asp.net/Spatial_Gateway/pl/Live-E_v2.html

• 5分置きにデータが中央サーバに集まる

• XMLで取得できます!

• 計測できるもの– 温度、湿度、気圧、風向、風速、雨量の瞬時値

Page 10: Klabの梅雨対策

XMLの中身はこんな感じ<sensorGroup address="[東京都港区白金東京都港区白金東京都港区白金東京都港区白金6-9-5]" class="combined" id="live-e.org/WXT510/030000049bc2/"

latitude="35.640388" location="Shinno elementary

school[神応小学校神応小学校神応小学校神応小学校]" longitude="139.72783" sensorModel="WXT510" sensorVendor="Vaisala">

<sensor id="live-e.org/WXT510/030000049bc2/DayRainFall"

sensorType="DayRainFall">

<value time="2010-04-28T04:03:31.0000000+00:00"

jptime="2010-04-28T13:03:31.0000000+09:00">0</value>

</sensor>

<sensor id="live-e.org/WXT510/030000049bc2/Humidity"

sensorType="Humidity">

<value time="2010-05-07T03:33:35.0000000+00:00"

jptime="2010-05-07T12:33:35.0000000+09:00">68.5</value>

</sensor>

・・・・・・・・・・・・・・・・・・・・・・・・

Page 11: Klabの梅雨対策

Google App Engineで作ろう

• TwitterにはOauthで

– Twitter APIのBasic認証は6月30日に終了

– Tweepyというライブラリを使用

• cronで5分おきにデータを取得・DBに保存

– http://live-e.naist.jp/data/getLatestDataAll/

• データストアでDBにつっこむ

– RDBではないが、GQLでRDBからデータを取り出すのと

似たような感覚で問い合わせを行うことができる

– SELECT * FROM SensorData ORDER BY created_at

DESC LIMIT 576

Page 12: Klabの梅雨対策

データストアの使い方

• エンティティの定義class Message(db.Model):

author = db.UserProperty()

content = db.StringProperty()

• データストアに保存するmessage = Message(author=‘‘‘‘takei’’’’, content=‘‘‘‘nice guy’’’’)message.put()

• GqlQueryによる問い合わせmessages = db.GqlQuery("SELECT * FROM Message””””

““““WHERE author = :1””””, ‘‘‘‘takei’’’’)

Page 13: Klabの梅雨対策

Tweepy

• 前提:アクセストークンを取得しておく

• 初期化

• アイコンを変更する

auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)

auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)

auth_api = tweepy.API(auth)

• Twitするauth_api.update_status(“takei is nice guy!!!”)

auth_api.update_profile_image(“images/cloudy.png”)

Page 14: Klabの梅雨対策

ついでにグラフも表示してみよう

http://roppongi-weather.appspot.com/

• センサデータをグラフで見たい欲求が沸き起こる

• GAEでグラフサイトを作ろう

• デモ↓

Page 15: Klabの梅雨対策

グラフ表示

• Google Visualization APIとGoogle Chart APIを使う

– http://code.google.com/intl/ja/apis/visu

alization/documentation/gallery.html

• データソースをpython側で作る

– google-visualization-python

– http://code.google.com/p/google-

visualization-python/

• センサデータをjsonに

– テンプレート機能を使用し、jsonをテンプ

レートに渡す

Page 16: Klabの梅雨対策

templateを使ってページを表示

• Python側

params[‘name’] = ‘takei’params[‘content’] = ‘nice guy’fpath = os.path.join(os.path.dirname(__file__), 'views', 'index.html')

html = template.render(fpath, params)

self.response.headers['Content-Type'] = 'text/html'

self.response.out.write(html)

<html>

<body>

<h2>{{name}} is {{content}}!!</h2>

</body>

</html>

• template側

Page 17: Klabの梅雨対策

まとめ

• こんかいやったこと–六本木の雨実況Twitterボットを製作

–六本木のセンサデータ表示サイト製作

• これでKlabの梅雨対策は完璧です

• 今後の展開

–雨が降ると動くミニ四駆の製作

• ありがとうございました