1. はじめに
皆様の中で手軽に実施したい実証実験で、データ保存やデータの可視化のために費用をかけてクラウド環境を構築することを悩んでいる方も多くいらっしゃるのではないでしょうか。
そこで今回のブログでは、Googleサービスが提供する機能を用いて、無料でデータ活用できる方法を説明します。
ブログの第一回目ではGoogle Sheetsへのデータ送信、第2回目ではLooker Studioを使用した可視化をお伝えするので、是非ご覧ください。

図1.1 Looker Studioを使用した可視化イメージ
2. 実証実験を無料でかつ開発期間を短く開始するために
今回のブログでは、実証実験を無料でかつ開発期間を短くする方法を説明します。
2.1 無料利用
2.1.1 NEQTOライセンス
NEQTOライセンスにはトライアルライセンスがあり、90日間無料でNEQTOのサービスをお試しいただけます。
トライアルライセンスでも簡単なリアルタイムの可視化はNEQTO Console上で行うことができますがNEQTO Consoleのストレージ機能がご使用いただけないので、今回はデータ保存の方法としてGoogleサービスの機能を使用した方法を説明します。
2.1.2 Googleサービス
無料でご使用可能なGoogleサービスを使用し、データ保存の方法としてGoogle Sheets、可視化の方法としてLooker Studioを使用した方法を説明します。
Google Sheets上では、データはリアルタイムに更新され、自動で保存されます。
2.2 開発期間短縮
2.2.1 NEQTO
NEQTOでは、IoTを実現する上での必要となるOS、ハードウェア、通信、システム、サーバー、セキュリティの知識を極力不要とし、ユーザー様がアプリケーション開発に注力できるようデバイスとクラウドの運用・開発環境を提供していることが特徴です。
SDKとは異なり、ユーザー様は実運用でご使用可能でかつ堅実なNEQTOシステム上でアプリケーションのみを開発するだけで開発が完了します。
デバイス側はJavaScript言語 (neqto.js) でアプリケーション開発いただけます。
JavaScriptによる開発メリットの詳細につきましては、以下リンク先でご確認いただくことが可能です。
資料ダウンロード
2.2.2 ハード
すぐ購入して試せるハードとしては、STマイクロエレクトロニクス社の「STM32 Discovery Kit」やSONYの「Spresense」があります。STM32 Discovery Kitは各種センサーが搭載されていることから、今回はSTM32 Discovery Kitを使用して説明します。
3. Google Sheetsへのデータ転送方法
Google Sheetsへのデータ転送を行うため、neqto.js Snippetsの中の「Google Sheets」を使用します。
スニペットの中では「SA_EMAIL」、「PRIVATE_KEY」、「SPREADSHEET_ID」、「CA」というパラメータを入力する必要があります。

図3.1 GOOGLE SHEETS SNIPPETのパラメータ
3.1項以降の章で、スニペット内で必要となる各種パラメータの入手方法ならびにGoogle Sheets APIおよびスプレッドシートの設定方法を説明していますので、そちらを参照してください。
- SA_EMAIL、PRIVATE_KEY→3.1 Google Sheets APIの設定
- SPREADSHEET_ID→3.2 Google Sheets スプレッドシートの設定
- CA→3.3 Google Trust ServicesからCAを入手
NEQTO Console上のスクリプト登録からスクリプトを作成します。
neqto.js SnippetsのGoogle Sheets内にあるFunction Usage Exampleのコードをコピーし、スクリプトエディター上に貼り付けます。

図3.2 Function Usage Example
neqto.js Snippetsの「Google Sheets」上にある「GOOGLE SHEETS SNIPPET」をコピーします。

図3.3 GOOGLE SHEETS SNIPPET
先ほどコピー&ペーストしたコードの/*<INSERT ABOVE SNIPPET HERE WITH SET CONFIGURATIONS>*/の部分にGOOGLE SHEETS SNIPPETを貼り付けます。

図3.4 GOOGLE SHEETS SNIPPETを貼り付ける場所
GOOGLE SHEETS SNIPPET内にある「SA_EMAIL」、「PRIVATE_KEY」、「SPREADSHEET_ID」、「CA」は3.1項以降の章を参照して記入してください。
スクリプトを実行すると下図のようにGoogle Sheetsへデータが送信できていることを確認できます。

図3.5 Google Sheetsへのデータ送信
3.1 Google Sheets APIの設定
3.1.1 下記にアクセスし、「プロジェクトを作成」を選択します
https://console.developers.google.com/apis/api/sheets.googleapis.com/overview?project=

図3.1.1 有効なAPIとサービス
3.1.2 「作成」を選択します

図3.1.2 プロジェクト作成
3.1.3 「Google Sheets API」の「有効にする」を選択します

図3.1.3 Google Sheets APIを「有効にする」
3.1.4 「認証情報」を選択します

図3.1.4 「認証情報」の選択
3.1.5 「+認証情報を作成」から「サービスアカウント」を選択します

図3.1.5 「+認証情報を作成」から「サービスアカウント」を選択
3.1.6 サービスアカウント名に「test」と入力するとサービスアカウントIDが自動的に入力されます
「完了」を選択し、「サービス アカウントの作成」を完了します

図3.1.6 「サービス アカウント」の作成の完了
3.1.7 サービスアカウントとして「test-317@gold-enterprise-366704.iam.gserviceaccount.com」が作成されたことが確認できます
「サービスアカウント」欄のメールアドレスをクリックします

図3.1.7 サービスアカウント
3.1.8 「サービスアカウントの詳細」に遷移します

図3.1.8 サービスアカウントの詳細
3.1.9 「キー」項目の「鍵を追加」をクリックし「新しい鍵を作成」を選択します

図3.1.9 キー
3.1.10 キーのタイプを聞かれるので「JSON」を選択して「作成」をクリックします

図3.1.10 「JSON」の選択
3.1.11 フォルダーを選択してキーを保存します


図3.1.11 秘密鍵の保存
3.1.12 ダウンロードしたJSONに記載の情報の中から、Google Sheets Snippetsで使用する「SA_EMAIL」、「PRIVATE_KEY」情報を取得します

JSONファイル | Google Sheets Snippets |
---|---|
private_key | PRIVATE_KEY |
client_email | SA_EMAIL |
図3.1.12 「SA_EMAIL」、「PRIVATE_KEY」情報の取得
3.2 Google Sheets スプレッドシートの設定
3.2.1 Googleの「スプレッドシート」を選択します

図3.2.1 「スプレッドシート」の選択
3.2.2 「新しいスプレッドシートを作成」の中の「空白」を選択します

図3.2.2 「新しいスプレッドシートを作成」の選択
3.2.3 「無題のスプレッドシート」が生成されます

図3.2.3 「SPREADSHEET_ID」情報の取得
スプレッドシートのURLは次のような形式となり、「スプレッドシートID」「シートID」の箇所がそれぞれのIDとなる。
https://docs.google.com/spreadsheets/d/スプレッドシートID/edit#gid=シートID
スプレッドシートのURLの中のスプレッドシートIDから、Google Sheets Snippetsで使用する「SPREADSHEET_ID」情報を取得します
3.2.4 スプレッドシートに名前を付け、「共有」をクリックします

図3.2.4 スプレッドシート名
3.2.5 「ユーザーやグループを追加」に3.1.7で得たサービスアカウント情報を入力して「送信」をクリックします

図3.2.5 「Google Sheets demo」の共有
3.3 Google Trust ServicesからCAを入手
3.3.1 Google Trust Servicesへアクセスします
3.3.2 Download CA certificatesの画面からRoot Casを開き、GTS Root R1 RSAの「Action」をクリックして「Certificate (PEM)」をダウンロードします

図3.3.1 CAのダウンロード
3.3.3 ダウンロードした「gtsr1.pem」の中から、Google Sheets Snippetsで使用する「CA」情報を取得します

図3.3.2 CA情報の取得
4. まとめ
今回のGoogle Sheetsを使用したデータ活用方法について第一回では、Google Sheetsへのデータ転送をお伝えしました。
第2回ではSTM32 Discovery Kit上に実装されている温湿度センサーの情報をGoogle Sheetsへ転送し、Looker Studio上で可視化する方法をお伝えします。
今回使用したデバイス
STM32L4+ Discovery kit IoT node [B-L4S5I-IOT01A]: STマイクロエレクトロニクス