狠狠撸

狠狠撸Share a Scribd company logo
碍尝补产の梅雨対策
                  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で取得できます!
? 計測できるもの
  – 温度、湿度、気圧、風向、風速、雨量
    の瞬時値
齿惭尝の中身はこんな感じ
                          東京都港区白金6-9-5]"
                          東京都港区白金
<sensorGroup address="[東京都港区白金
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”)
ついでにグラフも表示してみよう
? センサデータをグラフで見たい欲求が
  沸き起こる
? GAEでグラフサイトを作ろう
? デモ↓

http://roppongi-weather.appspot.com/
グラフ表示
? 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)

 ? template側
<html>
<body>
  <h2>{{name}} is {{content}}!!</h2>
</body>
</html>
まとめ
? こんかいやったこと
 – 六本木の雨実況Twitterボットを製作
 – 六本木のセンサデータ表示サイト製作
? これで碍濒补产の梅雨対策は完璧です
? 今後の展開
 – 雨が降ると動くミニ四駆の製作


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

More Related Content

碍濒补产の梅雨対策