突然ですが、あなたの畑で前回雨が降ったのはいつですか?また、どれくらい降りましたか?
野菜の成長にとって畑の水分量は非常に大事ですので、降水量は把握しておきたいです。
とはいえ、農家さんならまだしも、家庭菜園ではなかなか覚えているのは難しいですよね。
そこで今回はタイトルの通り、何も道具を使わずに無料で畑のピンポイント降水量を自動で記録する方法を紹介します。
これは怪しい方法でもなんでもなく、インターネット上で無料で使えるサービスを組み合わせることで実現できます。
記録した降水量はグラフ化してスマホで見れるようになりますので、畑に出ている時でもスマホがあれば過去の降水量が確認できます。
パソコンにあまり詳しくない方でもできるように手順を説明していきますので、苦手な方もぜひチャレンジしてくださいね。
手順1.Googleスプレッドシートを用意する
まずは降水量を記録する場所を用意しましょう。
今回降水量を記録するのは「Googleスプレッドシート」というGoogleが無料で提供しているインターネット上で使える表計算ソフトです。
Googleスプレッドシートをご存じでない方は、「ネット上でエクセルが使える」と思っていただいて差し支えないです。
Googleスプレッドシートを使うにはGoogleのアカウントが必要です。
Googleのアカウントをお持ちでない方は事前に作成しておきましょう。
「…@gmail.com」というメールアドレスをお持ちでしたら、Googleアカウントを持っていることになりますので問題なしです。
では、さっそくGoogleスプレッドシートを用意しましょう。
Googleのトップページを開きましょう。
これでGoogleスプレッドシートの準備は完了です。
手順2.Google Apps Script(GAS)のプログラムを書く
次に降水量を取得して、Googleスプレッドシートに記載をするプログラムを書きます。
プログラムと言ってもコピペで書けますので、経験がなくてもご安心ください。
Googleスプレッドシートでは、Google Apps Script(GAS)という制御プログラムを書くことができます。
GASもGoogleスプレッドシート同様、Googleが提供しているネット上で使える無料のサービスです。
では、手順を紹介していきます。
function rainFall() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var lastRow = sheet.getLastRow();
var url = 'https://map.yahooapis.jp/weather/V1/place?coordinates=YYY.YYYYYY,XX.XXXXXX&output=json&appid=ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ';
var response = UrlFetchApp.fetch(url).getContentText();
var json = JSON.parse(response);
var date = json.Feature[0].Property.WeatherList.Weather[0].Date
sheet.getRange(lastRow+1,1).setValue(date.substring(0, 4)+"/"+date.substring(4, 6)+"/"+date.substring(6, 8)+" "+date.substring(8, 10)+":"+date.substring(10, 12));
sheet.getRange(lastRow+1,2).setValue(json.Feature[0].Property.WeatherList.Weather[0].Rainfall);
}
6行目に「YYY.YYYYYY,XX.XXXXXX」という部分がありますが、こちらには降水量を取得する場所の経度と緯度を入力します。
畑の場所の経度、緯度を調べるにはGoogleマップを使います。
「YYY.YYYYYY」に経度、「XX.XXXXXX」に緯度を入れましょう。
次に、同じく6行目で「ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ」となっているところですが、こちらにはこれから登録するサービスのIDを入れます。
入力内容は次の章で紹介しますので、一旦GASのプログラムはここまでです。
「Ctrlキー + s」で保存しておきましょう。
後でまた編集するので画面は開いたままでOKです。
手順3.気象情報取得サービスの利用登録をする
次に気象情報を取得するためのサービスの利用登録をします。
今回はYahooが無料で提供している「気象情報API」を使います。
Yahooの気象情報APIを使うにはYahooのアカウントが必要です。
Yahooのアカウントをお持ちでない方は事前に作成しておきましょう。
「…@yahoo.co.jp」というメールアドレスをお持ちでしたら、Yahooアカウントを持っていることになりますので問題なしです。
こちらのサイトから利用登録を進めていきましょう。
これで、気象情報取得サービスの利用登録は完了です。
手順4.降水量情報が取得できるか確認する
ここで一度、降水量情報が取得できるかを確認しましょう。
手順3.で取得したClient IDを手順2.で作成したGASプログラムの 「ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ」の部分に入力します。
6行目のURLの前半部分(https://map.yahooapis.jp/weather/V1/place?)は変わる可能性があるので、うまくいかない場合は「Yahoo 気象情報API」で検索して最新のURLを確認してみましょう。
手順5.降水量情報の取得プログラムを定期的に実行する
降水量が取得するプログラムが正常に動いたら、プログラムを定期的に実行するように設定をしましょう。
今回は1時間に一回プログラムを動かし、降水量を記録していくようにします。
手順6.データをグラフ化する
ここまでの手順で定期的にデータを取得できるようになりましたので、データを見やすくするためにグラフを作っておきましょう。
グラフはGoogleスプレッドシートの機能で簡単に作れます。
まとめ
畑の降水量は取得できましたでしょうか。
今回使ったYahooの気象情報APIは、緯度・経度をかなり細かく設定できますので、計算上は数メートルという誤差での降水量が取得できます。
雨の量は少し場所がずれると変わってきますので、ピンポイントで取得できるのはうれしいですよね。
Googleスプレッドシートはスマホアプリもありますので、スマホにアプリをインストールすれば、いつでもどこでも降水量が確認できます。
一度設定してしまえば、勝手にデータを取得し続けられますので、ぜひ試してくださいね。
最後におまけですが、Googleスプレッドシートは初期状態だと1000行がマックスになっております。
1時間おきにデータを蓄積していると1カ月ちょっとで行がいっぱいになってしまうので、あらかじめ行を追加しておきましょう。
1万行で約1年は持ちます
最後までお読みいただきありがとうございました。
追加で、天気や気温、風速を取得したい方はこちらの記事もお読みください。
センサーを使って、より高度な情報取得がしたい方はこちらにもチャレンジしてみてください。
コメント