Click here to load reader
Upload
hideyuki-takei
View
1.243
Download
1
Embed Size (px)
Citation preview
KLabの梅雨対策KLab株式会社研究開発部
竹井英行GREE×KLab合同勉強会
2010/05/07
自己紹介
• たけいひでゆき(2年目)
• 興味
–人とロボット、ロボットとロボットの関わり
• 趣味
–役に立たないモノを作る
• モノの新たな価値を創見出す
今日は役に立つモノを発表したいと思います
Agenda
• Klabオフィス(六本木ヒルズ)の弱点
• 梅雨を快適に過ごすために
• Live E! について
• GAEまわりについて
• デモ
梅雨時期のオフィスの弱点
• 5月とえいば梅雨です!
• Klabは六本木ヒルズ22F
にオフィスがあります
• 雨音が聞こえません
• 気づかずに外に出ると雨・・・・ということが多々あります
• 雨かどうか知るために我々はどうしているか・・・
このへんこのへんこのへんこのへん
「窓から下を覗く」という愚かな行為注)夜になると、うっすらとしか見えません!
傘をさしている人がいる
=雨が降っている
梅雨を快適に過ごすために
• リアルタイムな雨状況を知りたい– Not 天気予報
• 下を覗くは面倒
–パソコンなら覗ける
• 雨が降ったとき、やんだ時をリアルタイムにTwitしてくれるボットの製作
デモ
http://twitter.com/roppongi_rain
雨が降っていないとき 雨が降っているとき
Live E! ~活きた地球の環境情報~
• http://www.live-e.org/index.html
• インターネットに接続されたデジタル百葉箱が六本木ヒルズの近くに設置されている– http://www.map-asp.net/Spatial_Gateway/pl/Live-E_v2.html
• 5分置きにデータが中央サーバに集まる
• XMLで取得できます!
• 計測できるもの– 温度、湿度、気圧、風向、風速、雨量の瞬時値
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>
・・・・・・・・・・・・・・・・・・・・・・・・
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
データストアの使い方
• エンティティの定義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’’’’)
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”)
ついでにグラフも表示してみよう
http://roppongi-weather.appspot.com/
• センサデータをグラフで見たい欲求が沸き起こる
• GAEでグラフサイトを作ろう
• デモ↓
グラフ表示
• 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をテンプ
レートに渡す
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側
まとめ
• こんかいやったこと–六本木の雨実況Twitterボットを製作
–六本木のセンサデータ表示サイト製作
• これでKlabの梅雨対策は完璧です
• 今後の展開
–雨が降ると動くミニ四駆の製作
• ありがとうございました