概要

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

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

 

必要なハードウェアの準備

Leafony Beacon (送信側)

Type Name Q’ty
AC02A BLE Sugar 1
AI01A 4-Sensors 1
AP01A AVR MCU 1
AV01A CR2032 1
AZ01A USB 1
AZ62A Connector Cover 1
CR2032 3V Lithium coin cell battery 1
Screw M2×25mm 2

 

Raspberry Pi (受信側)

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

Leafony Beaconの作成

組み立て

注意:ネジは交互に締めてください。

スケッチの書き込み

    • 書き込みには、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 スプレッドシート APIの取得

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

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

index.js へGoogle スプレッドシートの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「安全ではないページ」に移動」をクリックしてください。

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

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