Google Sheetsを使ったIoTサービス
概要
Leafony blockは、センシングデータをBeacon1の電波で飛ばします。beaconの電波をRaspberry Piが受け、インターネット経由でGoogle スプレッドシートに書かせて、データの可視化が出来ます。
用意するもの
- Basic Kit 2
- Raspberry Pi 3B等
- ブラウザが閲覧できるパソコンやスマホ
システム構成
Leafony block、Raspbery Pi、インターネット、そして、Google スプレットシートだけで、センシングしたデータを可視化出来ます。システム構成図を以下に記します。また、Leafony blockは、Basic Kit 2 スタートガイドで使用したものとスケッチ含め一緒です。
Raspberry Piの環境構築
初めてRaspberry Piをご使用になる方は、Raspberry Pi 3 B+ スターターキット が便利です。Raspbian OSイメージを書き込んだmicroSDが入っています。Raspberry Pi は、無線LANでインターネットに接続して使用します。
今回使用するサンプルコードでは、Node.jsでnobleを使ってBLE Beaconを受信します。受信したデータはGoogle API経由でGoogle スプレッドシートに書き込みます。
下記のスクリプト(6項目)を実行して環境構築をします。https://github.com/Leafony/leafony-beacon/tree/master/spreadsheet-logger
sudo apt update
sudo apt upgrade
sudo apt install -y bluetooth libbluetooth-dev libudev-dev git
git clone https://github.com/Leafony/leafony-beacon
cd leafony-beacon/spreadsheet-logger
npm install
注意:WARNINGと表示されますが、このまま進んでください。
Google スプレットシートのAPIの取得
- Google スプレットシートをNode.jsで操作するためには、APIを取得する必要があります。下記 Node.js Quick Start のStep.1で、 Enable the Google Sheets API をクリックし、credentials.jsonをダウンロードします。
Node.js Quickstart | Sheets API | Google Developers : https://developers.google.com/sheets/api/quickstart/nodejs
- Raspberry Piのleafony-beacon/spreadsheet-loggerディレクトリに、credentials.jsonをコピーしてください。
Google スプレッドシートのIDと名前の設定
- Google スプレッドシート を開いて、URLの赤線部分の
spredsheetID
とsheetName
を確認します。
- Raspberry Piのleafony-beacon/spreadsheet-loggerディレクトリの「index.js」のファイルに、スプレッドシートのIDと名前を書き込みます。
「index.js」の18, 19行目に上記の
spredsheetID
とsheetName
を貼り付けて下さい。
Raspberry Pi でBeaconの受信の仕方
-
Raspberry piのターミナルに「sudo node .」と入力してEnterをクリックしてください。
-
上記URLにブラウザでアクセスすると、Googleアカウントに移動し、ご自身のアカウントを選択します。
-
「詳細」をクリックしてください。
-
「Leafony Beacon Logger「安全ではないページ」に移動」をクリックしてください。
-
「詳細」をクリックしてください。
-
「Leafony Beacon Logger「安全ではないページ」に移動」をクリックしてください。
-
「許可」をクリックしてください。以下のコードをコピーしてください。ターミナル内に貼り付けると、「token.json」というファイルが生成されたあとに、beaconのスキャンが始まります。
-
Beaconが見つかるとログが表示されると同時に、スプレッドシートに同じ内容が追記されるので、スプレッドシートを開いてデータを確認してください。
-
Beaconとは、地上にある電波を特定の機器で受信することで、位置をはじめとした各種情報を取得するための設備です。BluetoothのBeacon機器の場合、温度や気圧などのセンサを搭載したモジュールを任意の場所に設置して、その場所の環境を観測します。 ↩︎