LPWAでオフィス環境を可視化せよ!(前編)
先般の投稿で、LoRaWAN の GPS Trackerである Dragino LGT92 が追尾できるか?のご報告させていただきました。
1. はじめに
今回は、LoRaWANノード、EnOceanセンサーを使ったオフィス環境の可視化を題材に、センサーデータの可視化方法について触れてみたいと思います。
と言っても、「センサーデータの可視化」なんて記事は、巷にはごまんとありまして、秀逸な記事が数多あります。
この記事の特徴は、次の通りです。
i. 可視化サービスとして、日本語情報が少ないTago.ioを利用
ii. LoRaWANノード、EnOceanノードを混在させていること
この特徴に興味がない方は、数多ある記事と同様の読後感となるかと思います。ご容赦ください。
さらに、どこまで細かく記載するのか?今この時点で決められていないので、本タイトルについて、何度かに分けて説明していきたいと思っています。
2. 可視化したダッシュボード画面
まずは、結果から。こんな塩梅。
見えているものは、「温度、湿度、照度、ドア開閉(2種類)、人感センサ、センサーの電池容量」です。(右上は、おまけ的に、”時計”)
人感センサー(動作検知センサー)のみが、EnOceanデバイスです。その他は、全てLoRaWANデバイスです。
2. 全体構成・利用するもの
上述の可視化を実現している全体構成図(非常にラフですが)です。
オフィス側には、(基本購入により入手することになる)センサノードとGateway/Hubがあります。Gateway/Hubから(ISPを通じて)インターネットの世界に出て、クラウド側で、TTN(The Things Network)とTago.ioを利用します。
LoRaWANノードは、そのプロトコル仕様上、LoRaWANサーバを経由しなければいけません。直接、Tago.ioには接続できません。ここでは、LoRaWANプラットフォームとして、無償利用できるTTN(The Things Network)を活用しています。
EnOceanノードは、中継Hubとなっているラズパイから、Tago.ioが用意するmqtt brokerに対して、mqttパケットをpublishしています。
[ ノード類 ]
- 温度・湿度・照度 : Dragino LHT65 w/ illumination sensor (fwをv1.7に更新したもの)
- ドア開閉(Do): Dragion LDS01
- ドア開閉(Ne): NetVox R718LB (IP65)
- 人感: Optex DPI-J(WH) ・・・これが、EnOceanデバイス
[ Gateway / 中継Hub 類 ]
- LoRaWAN Gateway: Dragino LPS8 (LoRa Pico Station) ・・・屋内向けLoRaWAN Gateway
- EnOcean Hub: Rapberry Pi 4 + ROHM USB400J ・・・ラズパイにUSBタイプのEnOcean受信モジュール(ROAM製)を接続
[ サーバ側 ]
- LoRaWAN Server: TTN(The Things Network)
- 可視化サービス: Tago.io
ちなみに、Tago.ioはフリーミアムモデルを採用しているため、ある程度までは無償利用できます。「登録できるデバイスは5つまで」というのが、無償枠の制約としては、一番気になるところかもしれません。
だって、
可視化でき始めると、
いろいろやりたくなっちゃうから、
5つじゃ足りないもの・・・
ってなるはず
3. (Tago.ioにたどり着くまでの)事前準備
Tago.ioをいじる前に、やはりいくつかの事前準備が必要です。
なんだか、こう書くと、可視化まで道のりが遠いように思ってしまうかもしれません。が、一つ一つは難し事ではなく、慣れて仕舞えばあっという間に終わる事です。ご容赦を。
ざっくり、流れは以下の通りです。
[ LoRaWAN側 ]
1. 何はともあれ、TTNにアカウントを作成
2. コンソール画面で、Gatewayを登録
3. コンソール画面で、Applicationを作成。今回は、LoRaWANノード毎に分けて、3つのApplicationを作っています。
4. Applicationを作成したら、LoRaWANノードを登録。
5. Application毎に、「インテグレーション」でTago.ioを選択し、(後ほどTago.io側で取得する)Tokenの値などを設定し、Tago.ioへデータが流れるようにしてあげます。
[ EnOcean側 ]
i. ラズパイでEnOceanデバイスのデータを取得できるようにプログラミング
ii. 取得したデータを(必要に応じて整形して)、Tago.ioの仕様に従ってMQTTでデータをPublishする
上述の"5番"と"ii番"は、Tago.io側の操作・設定が必要な部分であり、この部分については後述したいと思います。
それ以外の部分は、数多ある秀逸な記事・情報で代替できるものと思います。大変申し訳ないですが、ここでは割愛をします。ご了承ください。
で、今回は、ここまでとします。次は、Tago.ioの操作・設定について触れていきたいと思います。(おそらく、次で、完結できるはず)