Raspberry Pi(ラズパイ)で IoTダッシュボードThingsBoardを動かしてみた

はじめに

本記事ではIoTダッシュボードであるThingsBoardのCommunity Eddtion版をラズベリーパイで動かした際に出来たことや見た目について説明します。

そもそもThingsBoardとは何かというと、IoT向けのダッシュボードアプリケーションとなります。センサーから取得した情報をグラフ表示したり、表形式で時間ごとに表示したりすることが出来ます。

ラズベリーパイでせっかくセンサーデータが収集したのに、肝心なデータの表示をどうしようかを悩む方は多いと思います。本ブログでもセンサーデータをAWS IoTに飛ばしてみたり、GoogleのSpreadSheetに飛ばしてみたりと試してみてはいたものの、クラウドを使わずにローカル環境で、かつ無料でどうにか出来ないかを色々と考えていた際にこのThingsBoardを見つけました。

Professional Editionも存在するようなので、この無償のCommunity Editionでどこまで出来るかわからないけど、とりあえずやってみよう!という記事になります。

インストールについて

そもそもThingsBoardってラズベリーパイのようなスペックのデバイスで動くものなの?という疑問もありましたが、なんと公式サイトにラズベリーパイ用のインストールガイドがあるので…きっと動くんだよね、という気持ちで恐る恐るインストール。お試しされたい方はこちらを参考にどうぞ。

https://thingsboard.io/docs/user-guide/install/rpi/

詳細覚えていませんが、Javaのversionの箇所だけはコピペでは動かないのでversionを合わせてあげる必要があったかと思います。(2021/06/12時点)

インストール作業と立ち上げにはインストールガイドに記載されている通り少し時間がかかりますが、立ち上がった後のWebインターフェースは意外にもサクサク動きます。

Dockerでの提供もあるようなので、そちらが良いという方はDocker版の方が色々と使いやすいと思います。ただ、ラズパイ1つでデータ収取とIoTダッシュボードまで兼ねる!という方が私は面白いと思います。

インストール後に実施したこと

インストールが完了すると3つのアカウントが自動で作成されます。

  • System Administrator … システムの設定が行える。
  • Tenant Administrator … これは顧客毎にサービスを提供するテナントの管理が行える。
  • Customer User … おそらくデフォルトで作られているテナントにアクセスする客を想定したアカウント。

インストール後、raspberrypi.local:8080にアクセスしてみるとこんな感じでした。

各アカウントでログインしてみても細かいパラメータはよくわからず、でもとりあえずテナントを作成してその中で作業してみようと自分のメールアドレスを登録してActivateしてテナント管理者としてログイン。

ここからどうするんだ…ということでドキュメントを眺めていく。

https://thingsboard.io/docs/reference/http-api/

このあたりを読んでいくとHTTP RESTでセンサーのデータの送信が出来るようなのだが、$ACCESS_TOKENが何なのかわからない。。ここでThingsBoard側を操作しているとデバイス作成時にクレデンシャル情報として任意の$ACCESS_TOKENが設定できることを確認。

これを設定して、データを投げるのは…Noderedでダミーデータを作ろう。ということで、Noderedから定期的にHTTP RESTでPostをしていくコードを作成。Noderedもラズパイで動いてますからね、全てがラズパイで動くってのが良いと思いました。(実データを用意するのがもっと良いですが)

ということで、画面を眺めているとデバイス画面の最新テレメトリの箇所に送信したデータが表示されていることを確認。天才か。

多分データがあるんだから後は画面を作るだけだろうということで、ダッシュボードの画面にいって、気になるウィジェットを選んで立ち上げようとするも、センサーデータが表示されない。。何だ何だと色々と調べてみると最初にセンサーデータをエンティティエイリアスとして設定してあげないとウィジェットでそのデータを選ぶことも出来ないようだ。こんな感じ。

他に実施した細かい作業内容はよく覚えてもいないのですが、ここでついにダッシュボードの作成に成功。

出来上がったもの

こんな感じになりました。

控え目にいってもこれが無償って凄すぎませんか?グラフや表形式の表示はもちろん、ちょっとカッコ良いグラフなんかもデフォルトで用意されていますし、Map用のウィジェットもあるのでおそらくGPS付きのセンサー移置を表示するような使い方も可能なのだと思われます。

データの送信形式にもいくつか種類がありましたが、とりあえずHTTP(REST)とMQTTでセンサーデータの送信が可能であることを確認しました。

最後に

本記事ではラズベリーパイにThingsBoardのCommunity Edition版をインストールして動かしてみて、実施したこと、出来たことを記載致しました。これは本当に無償で良いのか?というクオリティですが、やはり設定や操作方法は相当厳しいものがあり、誰にでも使えるようなものではなさそう、というのが正直な印象です。

ちょっとこれで何か作ってみたいとか、そもそも動かし方がわからない、そういった話も歓迎です。何か気になる点がありましたら是非ご連絡下さい。