PR 記事には広告が含まれています
スポンサーリンク
Translate

OpenWeatherMapで天気予報を取得するまでの方法

スポンサーリンク

スポンサーリンク

OpenWeatherMap

OpenWeatherMapは、無料で全世界の天気予報を取得できるサービスです。世界の各地域の3時間毎、5日後までの天気、気温、気圧、降水量などの予測が得られます。OpenWeatherMapから、これらの天気予報を取得するためには、API Keyというキーが必要です。まずはそのAPI Keyを取得し、その後天気予報を取得する方法をご説明します。

Sign inで新規登録する

https://openweathermap.org/にアクセスします。

上部の「Sign in」をクリックします。

「Create an Account」をクリックします。

スポンサーリンク

Username:ユーザー名

Enter email:メールアドレス

Password:パスワード

「I am 16 years old and over」と「I agree with...」にチェック

私はロボットではありませんにチェック

[Create Accont]をクリックします。

続いて、利用目的を聞かれますがCnacelでも大丈夫でした。

確認のメールが届く

「OpenWeatherMap Account Confirmation」というメールが、先ほど設定したメールアドレス宛にすぐに届きます。このメールの「Verify your email」をクリックします。

メール認証が行われました。

API Keyの確認

「OpenWeatherMap」のページの「API keys」をクリックしても確認できます。

Keyの下にある文字列がAPI Keyです。

天気予報を取得してみる

それではAPI Keyを使って情報を取得してみましょう。

東京の現在の天気

http://api.openweathermap.org/data/2.5/weather?q=Tokyo,jp&units=metric&lang=ja&APPID=[API Key]

[API Key]に取得したAPI Keyを入れて、ブラウザのアドレスのところにコピーしてみてください。

スポンサーリンク

今の天気は「Rain(弱いにわか雨)」、気温は10.61℃、気圧は993hPa、湿度は93%という情報が得られました。

郵便番号で現在の天気を取得

先ほどは都市名で検索しましたが、郵便番号でも検索できます。

http://api.openweathermap.org/data/2.5/weather?zip=100-0005,jp&units=metric&lang=ja&APPID=[API Key]

zip=の後に郵便番号,jpを入れます。

今の天気は「Rain(弱いにわか雨)」、気温は10.76℃、気圧は992hPa、湿度は87%という情報が得られました。

正しい郵便番号を入力しているのに、天気情報が取得できない場合があります。その場合の調べ方は、後述します。

郵便番号で天気予報を取得

http://api.openweathermap.org/data/2.5/forecast?zip=100-0005,JP&units=metric&lang=ja&APPID=[API Key]

weatherだったところをforecastとすると天気予報になります。

スポンサーリンク

時間は世界標準時を基準にしているため、日本では+9時間する必要があります。そのため9:00の天気はRain(小雨)とありますが、日本の時間では18:00(午後6時)の天気はRain(小雨)となります。同様に21:00(午後9時)の天気はClease(晴天)。このように、3時間毎の天気予報が得られます。

郵便番号で天気予報が取得できない時

全ての地域で郵便番号検索ができるわけではないようです。例えば沖縄県那覇市泉崎の場合、郵便番号は900-0021になりますが、結果は

のように、404 ページが存在しませんという結果になってしまいます。

その場合は、都市名で検索します。

Interactive weather maps - OpenWeatherMap
Explore OpenWeather's interactive weather map focused on tem...

上記のページを開くとGoogleMapのように地図が表示され、その中に都市名が表示されています。

自分の知りたい場所をズームしていきます。例えば沖縄県那覇市は、

「Naha-shi」というのがあります。これが検索できる都市名です。

スポンサーリンク

都市名で天気予報を検索する場合は、以下のように、「q=都市名,JP」というフォーマットになります。

http://api.openweathermap.org/data/2.5/forecast?&q=Naha-shi,JP&units=metric&cnt=3&appid=[API Key]

[API Key]のところを、ご自身で取得したAPI keyに変更して、ブラウザのURLのところに貼り付けてみてください。

都市名で天気予報が取得できました。

データはJSON形式

ブラウザで見ると先ほどのように整列して見ることができますが、実際はこのようなテキストデータです。

JSONという形式で各データが格納されていて、JSONを解析するプログラムを使うと必要なデータを取り出すことができます。arduinoの場合ArduinoJsonなんかが使えます。

5日も不要で6時間先まで欲しい時

普通にデータを取得すると、5日先までの大きなデータとなってしまいます。マイコンで処理する場合小さい方がいいですね。例えば6時間先まででいい場合、3時間毎のデータを2つだけ取得すれば済みます。その場合は以下のようになります。

http://api.openweathermap.org/data/2.5/forecast?zip=100-0005,JP&units=metric&lang=ja&cnt=2&APPID=[API Key]

cnt=を追加して何個のデータが欲しいか設定します。

するこ、このように2セットだけのデータとなります。これでマイコンでも処理できますね。