Google SheetsをつかったIoTサービス入門

概要

Leafony Beacon1)とRaspberry Piとを使ってIoT環境センサを作り、Google スプレッドシートを使って、センサデータを可視化します。

  1. Beaconとは、地上にある電波を特定の機器で受信することで、位置をはじめとした各種情報を取得するための設備です。BluetoothのBeacon機器の場合、温度や気圧などのセンサを搭載したモジュールを任意の場所に設置して、その場所の環境を観測します。

about

用意するもの

  • Leafony Basic Kit
  • Raspberry Pi (3, 4, zero等)
  • ブラウザが閲覧できるPCやスマホ
  • Arduino IDE

サンプルアプリのコード

Raspberry Piの準備

  • Raspberry Pi 初めての方は、Raspberry Pi 3 B+ スターターキット( https://www.switch-science.com/catalog/3880/ )が便利です。Raspbian OSイメージを書き込んだmicroSDが入っていますが、ディスプレイ、キーボード、マウスは有りません。別途 ご用意してください。
  • Raspberry Pi は、無線LANでインターネットに接続します。こちらも事前にご用意してください。

Leafonyの構成

Type Name Q’ty
AZ62 Connector Cover 1
AI01 4-Sensors 1
AZ01 USB 1
AP01 AVR MCU 1
AC02 BLE Sugar 1
AV01 CR2032 1
- CR2032 coin cell battery 1
- M2*18mm screw 2

Leafonyの組み立て

スケッチの書き込み

  • 書き込みには、BLE、4-Sensorsライブラリが必要です。予め、ライブラリをインクルードしておいてください。詳しくは、こちら。
  • Arduino IDEで、以下のスケッチをマイコンボードに書き込んでください。 ・leafony_beacon.ino
  • Arduino IDE 1.8.9で動作を確認しています。書き込みエラーが発生したら、IDEのバージョンを確認してください。

Raspberry Piの環境構築

BLE Beaconの受信機にはRaspberry Piを使います。今回使用するサンプルコードでは、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と表示されますが、このまま進んでください。

gs_pi_1

Google Sheets APIの取得

Google スプレットシートをNode.jsで操作するためにはAPIを取得する必要があります。まず、下記 Node.js Quick Start のStep.1で、 Enable the Google Sheets API をクリックし、credentials.jsonをダウンロードします。次に、credentials.jsonをleafony-beacon/spreadsheet-loggerディレクトリにコピーしてください。

Node.js Quickstart | Sheets API | Google Developers : https://developers.google.com/sheets/api/quickstart/nodejs

index.js へGoogle SheetsのIDとシート名の設定

Google スプレッドシート を開いて、URLの赤線部分の「シートID」と「シート名」を確認します。

gs_pi_2 gs_pi_3

leafony-beacon/spreadsheet-loggerディレクトリ「index.js」があります。「index.js」の18, 19行目にある「spreadsheetId」と「sheetName」に、上記の「シートID」と「シート名」を貼り付けることで、データが書き込まれます。

gs_pi_4

アプリの実行

Raspberry piのターミナルに「sudo node .」と入力してEnterをクリックしてください。

gs_pi_5

上記URLにブラウザでアクセスすると、Googleアカウントに移動し、ご自身のアカウントを選択します。

gs_pi_6

「詳細」をクリックしてください。

gs_pi_7

「Leafony Beacon Logger「安全ではないページ」に移動」をクリックしてください。

gs_pi_8

「詳細」をクリックしてください。

gs_pi_9

「Leafony Beacon Logger「安全ではないページ」に移動」をクリックしてください。

gs_pi_10

「許可」をクリックしてください。以下のコードをコピーしてください。ターミナル内に貼り付けると、「token.json」というファイルが生成されたあとに、beaconのスキャンが始まります。

gs_pi_11

Beaconが見つかるとログが表示されると同時に、スプレッドシートに同じ内容が追記されるので、スプレッドシートを開いてデータを確認してください。

gs_pi_12


最終更新 September 11, 2020