【無料!道具不要!】畑のピンポイント降水量を自動で記録する方法

突然ですが、あなたの畑で前回雨が降ったのはいつですか?また、どれくらい降りましたか?

野菜の成長にとって畑の水分量は非常に大事ですので、降水量は把握しておきたいです。

とはいえ、農家さんならまだしも、家庭菜園ではなかなか覚えているのは難しいですよね。

そこで今回はタイトルの通り、何も道具を使わずに無料で畑のピンポイント降水量を自動で記録する方法を紹介します。

これは怪しい方法でもなんでもなく、インターネット上で無料で使えるサービスを組み合わせることで実現できます。

記録した降水量はグラフ化してスマホで見れるようになりますので、畑に出ている時でもスマホがあれば過去の降水量が確認できます。

パソコンにあまり詳しくない方でもできるように手順を説明していきますので、苦手な方もぜひチャレンジしてくださいね。

スポンサーリンク

手順1.Googleスプレッドシートを用意する

まずは降水量を記録する場所を用意しましょう。

今回降水量を記録するのは「Googleスプレッドシート」というGoogleが無料で提供しているインターネット上で使える表計算ソフトです。

Googleスプレッドシートをご存じでない方は、「ネット上でエクセルが使える」と思っていただいて差し支えないです。

しょちお

Googleスプレッドシートを使うにはGoogleのアカウントが必要です。
Googleのアカウントをお持ちでない方は事前に作成しておきましょう。
「…@gmail.com」というメールアドレスをお持ちでしたら、Googleアカウントを持っていることになりますので問題なしです。

では、さっそくGoogleスプレッドシートを用意しましょう。

Googleのトップページを開きましょう。

1.右上のメニューボタン(・が9個のボタン)から、「スプレッドシート」を選択します。
 
2.空白を選択します。
 
3.左上で名前を決められますので今回は「畑の降雨情報」としておきます。
 

これでGoogleスプレッドシートの準備は完了です。

スポンサーリンク

手順2.Google Apps Script(GAS)のプログラムを書く

次に降水量を取得して、Googleスプレッドシートに記載をするプログラムを書きます。

しょちお

プログラムと言ってもコピペで書けますので、経験がなくてもご安心ください。

Googleスプレッドシートでは、Google Apps Script(GAS)という制御プログラムを書くことができます。

GASもGoogleスプレッドシート同様、Googleが提供しているネット上で使える無料のサービスです。

では、手順を紹介していきます。

1.Googleスプレッドシートの「ツール」から「スクリプト エディタ」を選択します。
 
2.左上の「無題のプロジェクト」という部分がこの機能の名前になりますので選択して名前を変えましょう。
 
3.今回は「降水量の取得」とします。
 
4.名前が変わればOKです。
 
5.以下のプログラムを記載します。
 
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マップを使います。

6.Googleマップで畑の場所を右クリックするとこのように緯度と経度が表示されます。
 

「YYY.YYYYYY」に経度「XX.XXXXXX」に緯度を入れましょう。

Googleマップの表記とは経度と緯度の記載が逆ですので気を付けましょう。

次に、同じく6行目で「ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ」となっているところですが、こちらにはこれから登録するサービスのIDを入れます。

入力内容は次の章で紹介しますので、一旦GASのプログラムはここまでです。

「Ctrlキー + s」で保存しておきましょう。

後でまた編集するので画面は開いたままでOKです。

手順3.気象情報取得サービスの利用登録をする

次に気象情報を取得するためのサービスの利用登録をします。

今回はYahooが無料で提供している「気象情報API」を使います。

APIとは…
Application Programming Interface の略。
簡単に言うと、必要な情報を渡すと欲しい情報を返却してくれる機能のことです。
今回でいうと、欲しい情報は「降雨量の情報」で、渡す情報は「緯度、経度」です。
しょちお

Yahooの気象情報APIを使うにはYahooのアカウントが必要です。
Yahooのアカウントをお持ちでない方は事前に作成しておきましょう。
「…@yahoo.co.jp」というメールアドレスをお持ちでしたら、Yahooアカウントを持っていることになりますので問題なしです。

こちらのサイトから利用登録を進めていきましょう。

1.「新しいアプリケーションを開発」ボタンを押します。
 
2.「サーバーサイド」を選択します。
 
3.利用者情報で「個人」を選択します。アプリケーション名は今回は「WeatherInformation」とします。
 
4.ガイドラインに同意できたら「同意する」を選択して「確認」ボタンを押します。
 
5.登録内容の確認画面が出ますので、問題なければ「登録」ボタンを押します。
 
6.登録完了画面が出ますので、Client IDとシークレットはメモ帳にコピペして保管しておきましょう。

これで、気象情報取得サービスの利用登録は完了です。

手順4.降水量情報が取得できるか確認する

ここで一度、降水量情報が取得できるかを確認しましょう。

手順3.で取得したClient IDを手順2.で作成したGASプログラムの 「ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ」の部分に入力します。

1.Client IDを入れたら「実行」ボタンを押します。
 
2.スプレッドシートに取得日時と降雨量の数字が入力されれば成功です。(1行目に日時、降水量などタイトルをつけておきましょう)
 
うまくいかない場合は・・・
・緯度・経度の入力が逆になっていませんか?
・Client IDはあっていますか?
しょちお

6行目のURLの前半部分(https://map.yahooapis.jp/weather/V1/place?)は変わる可能性があるので、うまくいかない場合は「Yahoo 気象情報API」で検索して最新のURLを確認してみましょう。

手順5.降水量情報の取得プログラムを定期的に実行する

降水量が取得するプログラムが正常に動いたら、プログラムを定期的に実行するように設定をしましょう。

今回は1時間に一回プログラムを動かし、降水量を記録していくようにします。

情報取得頻度を増やすことは可能ですがAPIの利用制限を超えないように注意しましょう!
1.GAS画面の左メニューから「トリガー」ボタンを押します。
 
2.右下の「トリガーを追加」ボタンを押します。
 
3.画像のように設定し、「保存」ボタンを押します。
 
4.このように1行トリガーが追加されていれば成功です。
 
5.1時間おきにプログラムが実行され、降水量のデータが蓄積されていきます。
 

手順6.データをグラフ化する

ここまでの手順で定期的にデータを取得できるようになりましたので、データを見やすくするためにグラフを作っておきましょう。

グラフはGoogleスプレッドシートの機能で簡単に作れます。

1.日付と降水量が入力されているA列とB列を選択し、上部のメニューからグラフのアイコンを押します。
 
2.最初は円グラフが出てくると思いますが、右側の「グラフエディタ」から「グラフの種類」を選択します。
 
3.棒グラフを選択しましょう。
 
4.時間ごとの降水量が棒グラフで表示されます。
 

まとめ

畑の降水量は取得できましたでしょうか。

今回使ったYahooの気象情報APIは、緯度・経度をかなり細かく設定できますので、計算上は数メートルという誤差での降水量が取得できます。

雨の量は少し場所がずれると変わってきますので、ピンポイントで取得できるのはうれしいですよね。

Googleスプレッドシートはスマホアプリもありますので、スマホにアプリをインストールすれば、いつでもどこでも降水量が確認できます。

一度設定してしまえば、勝手にデータを取得し続けられますので、ぜひ試してくださいね。

最後におまけですが、Googleスプレッドシートは初期状態だと1000行がマックスになっております。

1時間おきにデータを蓄積していると1カ月ちょっとで行がいっぱいになってしまうので、あらかじめ行を追加しておきましょう。

追加したい行数を入れて「追加」ボタンを押します。
 
しょちお

1万行で約1年は持ちます

最後までお読みいただきありがとうございました。

追加で、天気や気温、風速を取得したい方はこちらの記事もお読みください。

センサーを使って、より高度な情報取得がしたい方はこちらにもチャレンジしてみてください。

コメント