Google SheetsをつかったIoTサービス入門
概要
Leafony Beacon1)とRaspberry Piとを使ってIoT環境センサを作り、Google スプレッドシートを使って、センサデータを可視化します。
- Beaconとは、地上にある電波を特定の機器で受信することで、位置をはじめとした各種情報を取得するための設備です。BluetoothのBeacon機器の場合、温度や気圧などのセンサを搭載したモジュールを任意の場所に設置して、その場所の環境を観測します。
用意するもの
- Leafony Basic Kit
- Raspberry Pi (3, 4, zero等)
- ブラウザが閲覧できるPCやスマホ
- Arduino IDE
サンプルアプリのコード
Raspberry Piの準備
- Raspberry Pi 初めての方は、Raspberry Pi 3 B+ スターターキット が便利です。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と表示されますが、このまま進んでください。
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」と「シート名」を確認します。
leafony-beacon/spreadsheet-loggerディレクトリ「index.js」があります。「index.js」の18, 19行目にある「spreadsheetId」と「sheetName」に、上記の「シートID」と「シート名」を貼り付けることで、データが書き込まれます。
アプリの実行
Raspberry piのターミナルに「sudo node .」と入力してEnterをクリックしてください。
上記URLにブラウザでアクセスすると、Googleアカウントに移動し、ご自身のアカウントを選択します。
「詳細」をクリックしてください。
「Leafony Beacon Logger「安全ではないページ」に移動」をクリックしてください。
「詳細」をクリックしてください。
「Leafony Beacon Logger「安全ではないページ」に移動」をクリックしてください。
「許可」をクリックしてください。以下のコードをコピーしてください。ターミナル内に貼り付けると、「token.json」というファイルが生成されたあとに、beaconのスキャンが始まります。
Beaconが見つかるとログが表示されると同時に、スプレッドシートに同じ内容が追記されるので、スプレッドシートを開いてデータを確認してください。