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

2026年6月15日

はじめに

Raspberry Pi でセンサーデータを収集していると、次に課題になるのが「集めたデータをどう可視化するか」です。本ブログでもこれまで、センサーデータを AWS IoT に送信したり、Google スプレッドシートに書き込んだりする方法を紹介してきました。

ただ、クラウドサービスを使うとアカウント管理や料金が気になります。そこで「クラウドを使わず、ローカル環境かつ無料でダッシュボードを構築できないか」を調べていたところ、IoT 向けダッシュボードアプリケーションであるThingsBoardの Community Edition に出会いました。

本記事では、ThingsBoard Community Edition を Raspberry Pi にインストールし、Node-RED から送信したセンサーデータをダッシュボードに表示するまでの手順と、つまずいたポイントを紹介します。同じようにローカル環境で IoT データを可視化したい方の参考になれば幸いです。

ThingsBoard Community EditionをRaspberry Piにインストールする

課題:ThingsBoard は本格的な IoT プラットフォームのため、Raspberry Pi のようなスペックのデバイスで動くのか不安がありました。
解決策:公式サイトに Raspberry Pi 向けのインストールガイドが用意されているため、その手順に従ってインストールします。

インストールガイドは以下の公式ドキュメントで公開されています。

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

手順はほぼガイドのとおりに進められますが、Java のバージョンを指定している箇所だけは環境に合わせて調整する必要がありました。インストールから起動までは多少時間がかかりますが、起動後の Web インターフェースの操作は意外にも軽快に動作します。

なお Docker 版も提供されているため、使い慣れている方は Docker での構築もおすすめです。ただ、Raspberry Pi 1台でセンサーデータの収集と IoT ダッシュボードを兼ねられる構成は、シンプルで扱いやすいのが魅力です。

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

アカウント役割
System Administratorシステム全体の設定を管理する
Tenant Administrator顧客(テナント)単位でサービスを管理する
Customer Userテナントに紐づくエンドユーザー向けのアカウント

インストール後、Raspberry Pi のホスト名に 8080 番ポートを付けてアクセスすると、以下のようなログイン画面が表示されます。

Raspberry PiにインストールしたThingsBoardのログイン画面

Node-REDからセンサーデータを送信してダッシュボードに表示する3つのステップ

各アカウントでログインしてみても設定項目が多くどこから手を付けるべきか分かりにくいため、まずテナント管理者としてテナントを作成し、その中で作業を進めます。ここからは、センサーデータをダッシュボードに表示するまでの3つのステップを紹介します。

1. デバイスを作成してACCESS_TOKENを発行する

課題:ThingsBoard の HTTP API でテレメトリデータを送信するには ACCESS_TOKEN が必要だが、その取得方法が分からない。
解決策:ThingsBoard 上で「デバイス」を作成すると、クレデンシャル情報として ACCESS_TOKEN が割り当てられる。

HTTP API の詳細は以下の公式リファレンスにまとまっています。

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

デバイス管理画面から新しいデバイスを作成すると、そのデバイス専用の ACCESS_TOKEN が発行されます。この値を使うことで、外部からテレメトリデータを送信できるようになります。

2. Node-REDからHTTP RESTでテレメトリデータを送信する

課題:実際のセンサーが無くても、ダッシュボードの動作確認用にデータを送信したい。
解決策:Raspberry Pi 上で動かしている Node-RED から、定期的にダミーデータを HTTP POST で送信する。

ThingsBoard の Telemetry API は、以下のような形式で JSON データを POST するだけでデバイスにデータを登録できます。

curl -v -X POST -d "{\"temperature\": 25.4, \"humidity\": 60}" \
  http://YOUR_HOST:8080/api/v1/YOUR_ACCESS_TOKEN/telemetry \
  --header "Content-Type:application/json"

Node-RED もこの Raspberry Pi 上で動いているため、データ収集からダッシュボード表示まで1台で完結できるのがこの構成のメリットです(実際のセンサーから値を取得できれば、さらに実用的になります)。以下は、定期的に HTTP POST を実行する Node-RED のフロー例です。

Node-REDから定期的にHTTP POSTでテレメトリデータを送信するフローの例

データを送信すると、デバイスの「最新テレメトリ」欄に送信した値がすぐに反映されることを確認できました。

ThingsBoardのデバイス画面の最新テレメトリに送信したデータが表示された画面

3. エンティティエイリアスを設定してウィジェットにグラフを表示する

課題:データは届いているのに、ダッシュボードのウィジェットを追加してもセンサーデータを選択できない。
解決策:ウィジェットからデバイスを参照できるように、事前に「エンティティエイリアス」としてデバイスを登録しておく。

ダッシュボードの編集画面でエンティティエイリアスを作成し、対象のデバイスを紐づけます。この設定をしておくことで、ウィジェット追加時にそのデバイスのテレメトリデータをグラフや表のソースとして選択できるようになります。

ダッシュボードのエンティティエイリアス設定画面でデバイスを紐づける

出来上がったダッシュボードとMQTT送信への対応

以上の手順で、Raspberry Pi 単体でセンサーデータの収集からダッシュボード表示までが完結する環境が出来上がりました。

Raspberry Pi上で動作するThingsBoardの完成したダッシュボード画面

グラフや表形式のウィジェットはもちろん、デザイン性の高いグラフや地図表示用のウィジェットも標準で用意されており、GPS 付きセンサーの位置情報を表示する用途にも使えそうです。これが無償の Community Edition で利用できるのは、かなり充実していると感じました。

データ送信方法についても、今回試した HTTP(REST)に加えて MQTT でのテレメトリ送信にも対応していることを確認しました。Raspberry Pi で MQTT ブローカーを動かしている場合は、そちらと連携する構成も検討できそうです。

まとめ:ThingsBoardはローカル環境でIoTダッシュボードを無料構築できる選択肢

本記事で紹介したポイントをまとめます。

  • ThingsBoard Community Edition は Raspberry Pi にもインストール可能(Java のバージョン調整が必要な場合がある)
  • デバイスを作成すると発行される ACCESS_TOKEN を使い、HTTP(REST)や MQTT でテレメトリデータを送信できる
  • ダッシュボードのウィジェットでデータを表示するには、事前にエンティティエイリアスとしてデバイスを登録しておく必要がある
  • 無償の Community Edition でも、グラフ・表・マップなど多彩なウィジェットが利用できる

操作や設定にはやや手間取る部分もありますが、クラウドを使わずローカルで本格的な IoT ダッシュボードを構築できる点は大きな魅力です。Raspberry Pi で集めたデータの可視化先に悩んでいる方は、一度試してみる価値があると思います。