Raspberry Pi(ラズパイ)で IoTダッシュボードThingsBoardを動かしてみた
目次
はじめに
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 番ポートを付けてアクセスすると、以下のようなログイン画面が表示されます。

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 のフロー例です。

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

3. エンティティエイリアスを設定してウィジェットにグラフを表示する
課題:データは届いているのに、ダッシュボードのウィジェットを追加してもセンサーデータを選択できない。
解決策:ウィジェットからデバイスを参照できるように、事前に「エンティティエイリアス」としてデバイスを登録しておく。
ダッシュボードの編集画面でエンティティエイリアスを作成し、対象のデバイスを紐づけます。この設定をしておくことで、ウィジェット追加時にそのデバイスのテレメトリデータをグラフや表のソースとして選択できるようになります。

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

グラフや表形式のウィジェットはもちろん、デザイン性の高いグラフや地図表示用のウィジェットも標準で用意されており、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 で集めたデータの可視化先に悩んでいる方は、一度試してみる価値があると思います。





ディスカッション
コメント一覧
はじめまして!
記事、拝見致しました。
私は、Arduino(ESP等)で気温,湿度などのデータを取得出来るデバイスを作りました。
それに伴い、データをどこかに蓄積しグラフ化など加工したいと思っております。
しかし、クラウドサービスやスプレッドシートなどで行うとアップデートなどで使えなくなる可能性があると思い、一度作ったスクリプトが永久的に使える物を探しておりました。
本記事で、ローカル環境で使えると記載されていましたが、上記のように活用出来るという内容であっていますでしょうか??
またこれはウェブ上でデータが見れるようになっているのでしょうか?(特定のデバイスでしか見れない?)
お手数ですが、ご返信頂けると幸いです。
浅野様
記事を読んで頂き有難うございます。
デバイス、サーバ側でのアップデートの状況に依らず永久的に使えるとは申し上げにくいのですが、
こちらについてはデバイス・サーバー間のデータのやり取りはMQTTで送信する、HTTPSで送信する、
といったところを決めておくことで、長期に渡り利用し続けることが可能ではないかと考えております。
> 本記事で、ローカル環境で使えると記載されていましたが、
> 上記のように活用出来るという内容であっていますでしょうか??
はい、本記事記載のやり方の場合、センサーデータはラズベリーパイの中に蓄積され、
そのデータを加工してグラフ表示等を行うことが可能です。まさにIoT向けのサービス
ですので、浅野様のご利用用途にピッタリなのではないかと思います。
> またこれはウェブ上でデータが見れるようになっているのでしょうか?
> (特定のデバイスでしか見れない?)
はい、こちらは特定のデバイスからのみではなく、ウェブ経由でのデータ閲覧が可能です。
本記事の内容では自宅のネットワークに接続しているラズベリーパイ上でサービス(Webサーバー)を
動かしておりますので、自宅内のPC等からのグラフ等を表示するダッシュボード画面へのアクセスが可能です。
この場合、一般的なインターネット経由でダッシュボード画面へのアクセスは出来ません。
もし、インターネット経由でダッシュボード画面へのアクセスが必要ということであれば、
こちらはやはりクラウド上でサービスを立ち上げるのが良いかと思います。
こちらでご回答となっておりますでしょうか?