netatmo ウェザーステーションを買ってAPIを叩いてみる
netatmo ウェザーステーションとは
その名の通り気象情報をセンサーで取得するデバイスです。基本構成は2つのセンサーデバイスで、大きいほうが室内用、小さいほうが屋外用となっています。電源は室内用はUSBから、屋外用は単4電池2本で駆動します。それぞれのセンサーから取得できるデータは以下になります。屋外用のセンサーというのは実はありそうで無いので、ベランダなどに設置しておくと今の屋外気温が取得できるので面白いです。
室内用
- 気温
- 湿度
- 気圧
- CO2
- 騒音
屋外用
- 気温
- 湿度
これを設置してユーザ登録してログインすると、PCではこんな画面でデータを見ることができます。
※地図の部分はボカしています
ちなみに、全世界の今の気温もGoogleMap上でみることができます。クリック
また、iPhoneアプリ、Androidアプリもあります。Androidではウィジェットに設定できるのでこれは便利!です。
IFTTTと連携
このデータを元にIFTTTを使って連携しようと考えました。例えばこんな感じのレシピを作れます。
これは「湿度が10%を切ったら、Tweetする」ということになります。とはいえ、本当にやりたかったのは「毎朝8時に、今の屋外の気温をTweetする」のようなことがしたかったのでこれはイマイチです。IFTTTではnetatmoウェザーステーションはトリガーにしか使えない、かつこの場合、3つの事象が含まれるのでIFTTTでは実現できません。
netatmoのAPIを利用
というわけで、netatmo APIを利用して作ることにしました。ここにアクセスして、「MY APPLICATIONS」を登録することでAPIを叩くことができるようになります。
APIの取得の仕方等はNetatmo ウェザーステーションを買ってみたので Node.js でいじってみたを参照して下さい。
今回はVPSを使わず、手元にあったRaspberry Piを使用して、下記のような構成を作ってみました。
- Raspberry Pi + Ubuntuを使用
- netatmo-api-pythonを使ってPythonスクリプトを作成
- TwitterのOAuthはrequests_oauthlibを使用
- cronを設定して毎朝8時にPythonスクリプトを実行し、最新データを取得してTwitterに投稿する
- 屋外は「温度」「湿度」のみが取得しかできないので、ここにある不快指数の計算式を使って、不快指数を同時にTweetしています
結果
気温: 19℃ 湿度: 68% 不快指数: 65 @さいたま 2014-05-02/07:59 #netatmo
— 繋がれたひよこ (@tomo_watanabe) 2014, 5月 1
これはこれで簡単にできるので、もう少し色々連携させたくなってきました\(^o^)/ Raspberry Pi上でMQTTのブローカーを導入して、周辺デバイスと連携とか
【日本正規代理店品・保証付】Netatmo ウェザーステーション NET-OT-000001
- 出版社/メーカー: Netatmo
- 発売日: 2013/10/10
- メディア: エレクトロニクス
- この商品を含むブログ (1件) を見る