M5stickCを使用したセンサーの値をGoogleスプレッドシートに

  • このエントリーをはてなブックマークに追加

はじめに

M5stickCに人感センサーを接続し、センサーが反応したらその時刻をGoogleのスプレッドシートに表示します。

 

  1. 必要なもの
  2. Googleスプレッドシートの編集
  3. スケッチ例
  4. 実行

 

1.必要なもの

 

M5StickCと人感センサーです。(SwitchSienceは年末セール中のようです)

番号

商品名

価格

参考販売店

1

M5StickC

1980円(セット)

1650円(本体のみ)

SwitchSience

2

M5StickC PIR Hat(AS312搭載)

363円

SwitchSience

 

2.Googleスプレッドシートの編集

 

Googleスプレッドシートを使用するにはGoogleアカウントが必要です。Googleアカウントを取得したら以下にアクセスします。 sheets.google.comまたはsheets.google.com/create で直接スプレッドシートを開きます。

 

左上の「無題のスプレッドシート」をクリックして題名を付けます。

M5stickCのデータと取得時間を表示します。A1セルとB1セルに「メッセージ」と「時刻」を記述します。

[ツール]⇒[<>スクリプトエディタ]を選択してApp Scriptを開きます。

関数を2つ記入します。

setData
M5StickCから受け取ったデータをシートに記入する関数です。
  • sheet.insertRows(2,1)
    2行目に1行挿入します。
  • sheet.getRange(2,1).setValue(val);
    2行1列目のセル(A2)にvalを書き込みます。
  • Sheet.getRange(2,2).setValue(new Date());
    2行2列目のセル(B2)に日付を書き込みます。

doPost
WebアプリにPOSTリクエストが送られた時に実行される関数です。

  • var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(‘シート1’);
    sheetにシート1を代入します。
  • var params = JSON.parse(e.postData.getDataAsString());
    送られてきたデータをJSON形式に変換してpramに代入します。
  • var val = params.check;
    valにprams.checkの値を代入します。checkはArduinoのスケッチで定義します。

関数を記述したらプロジェクト名を記入します。

最後にデプロイします。

デプロイの方法が変更されているようです。右上の[デプロイ]⇒[新しいデプロイ]を選択し、[種類の選択]の横の歯車をクリックして、[ウェブアプリ]を選びます。

[アクセスできるユーザー]を[全員]にし、デプロイをクリックします。

アクセスを承認をクリックします。Choose an accountと表示されるので自分のアカウントを選択します。

 

「Google has’nt verified this app」と表示されるので「Advanced」をクリックします。

(日本語表記ならば以下のように表示されると思います。
「このアプリは確認されてません」と表示されるので「詳細を表示」をクリックします。)

[Go to M5stickCの人感センサープロジェクト1 (unsafe)]と表示されている部分をクリックします。
(もしくはM5stickCの人感センサープロジェクト1(安全でないページ)に移動)

[Allow]をクリックします。(もしくは「許可」をクリックします)

 

(GMAILに本人確認用のメールも来ます。心当たりがあるを選択します。)

ウェブアプリのURLが表示されるので、控えておきます。

URLの確認は[デプロイ]⇒[新しいデプロイ]⇒[デプロイ]で表示されます。

 

3.スケッチ例

 

データをJSONフォーマットで扱うためにArduinojsonライブラリを追加します。[スケッチ]⇒[ライブラリをインクルード]⇒[ライブラリを管理]で、ライブラリマネージャを開きます。

「Arduinojson」で検索し、インストールします。

 

スケッチは前回の「M5StickCと人感センサーで画像表示」を使用します。WiFi接続の記述は「M5StickC WiFi接続」を使用します。

WiFiの追加とGoogleスプレッドシートにアクセスするための記述を追加します。Googleスプレッドシートにアクセスするために、HTTPClient.hをインクルードします。インストールしたArduinojsonライブラリもインクルードします。

センサーに反応した場合に、データをGoogleスプレッドシートに送る関数sendData()を追加しています。

 

4.実行

スケッチをM5StickCに書き込みます。

センサーが反応したらM5StickCのスケッチのsendData関数からデータが送られてスプレッドシートにライトされます。送付データはcheck変数の値で、checkが1の時に送付しているので、スプレッドシートには常に1が表示されます。

日付だと毎回同じなので、日時に変更します。[123]⇒[日時]で変更します。

 

変更後

  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。

コメント

コメントを残す

*