1.概要
IoTは、⽇常⽣活からビジネスの現場まで幅広く活⽤されています。とくに産業機械やプラント設備の状態監視、建機やトラクターといった産業⽤⾞両の追跡監視など、「製品の遠隔監視」は有望な活⽤例です。IoTを⽤いた遠隔監視では、遠隔地や危険区域からもリアルタイムにデータを取得できるため、コスト削減、安全性向上、迅速な対応が可能となります。
1-1.本レシピで実現できること
本記事では、Raspberry PiをIoTデバイスに⾒⽴て、イベントをThings Cloudに送信します。さらに、Things Cloud側で受信したあと、可視化を⾏います。以下の構成図に⽰すように、Raspberry Piからイベントを送信し、Things Cloudで受信したイベントをダッシュボードで可視化します。

今回はIoTデバイスとしてRaspberry Piを使⽤しますが、お持ちのIoTデバイスからでもThings Cloudにデータを送ることが可能です。お⼿元のIoTデバイスにおいて本⼿順を応⽤することで、簡単にイベントとして製品の起動・停⽌や各種ステータスの変化、位置情報などの動作情報を送信/記録/管理することができるようになります。さまざまなIoTデバイスをThings Cloudと接続しイベントを⼀元管理することによって、複数のIoT製品の遠隔監視や保守などの負担を軽減し、より効率的な運⽤を実現しコストの削減等に貢献します。
イベント機能の活⽤例
Things Cloudのイベント機能は、⼀般的なデバイスやシステムの状態や動作に関する情報を扱います。Things Cloudには似たような機能としてアラームがありますが、⼈の対応を必要とするような異常や問題を報告するアラームと異なり、イベントは基本的に⼈による対応を必要としない状態の変化や情報の通知を⽬的としています。イベントで扱う情報は⼀般的に緊急性が低いものになりますが、遠隔から正常に動作してることの把握や異常発⽣時の原因追跡など、IoTデバイスの状況を常に把握することに役⽴ちます。具体的な活⽤例を1つご紹介します。
昨今の商業施設においては、AIや5Gなどの新しい技術を⽤いて、警備員の代わりにロボットを導⼊しているケースがあります。ロボットが巡回業務を⾏うことで安⼼・安全のみならず、⼤幅な業務の効率化を実現しています。このようなデバイスでは、異常検知のみならず正常動作時も常に動作状況(作業開始/完了、デバイスのON/OFF状況など)を把握する必要があります。Things Cloudで提供している機能により、このようなロボットの遠隔監視を⽀援し、ロボットから送信される動作情報をイベントとして⼀元管理することが可能です。簡単な図を以下に⽰します。


巡回しているロボットは、起動ステータスや巡回の状況、充電の状態などのさまざまな情報をイベントとしてThings Cloudに送信します。このイベントの情報について、本記事で紹介する機能を利⽤することで、ダッシュボード上での動作情報の可視化をすることが可能です。たとえば電池残量が少なくなっていることを確認した際には、Things Cloud側から遠隔制御で充電のリクエストを⾏ったり、過去のイベント情報を参照することで、ロボットが正常に動作していたかなど状況をいつでも確認/追跡することが可能です。 このソリューションでは、⼀例として以下のような画⾯を作成し、ロボットの状態をリアルタイムに把握できるようにします。1つの画⾯で⾒たい情報を⼀覧で表⽰することができるため、運⽤者はロボットの状況を⼀⽬で把握することが可能です。本レシピでは、画像に⽰したダッシュボード画⾯のうち、イベントリストの部分を作成します。

1-2.所要時間
約90分(デバイスセットアップ50分を含む)
1-3.所要費用
約13,500円(デバイス購⼊の初期費⽤+サービス利⽤料⾦)
1-4.使用するサービス
Things Cloudとは
多様なセンサーやデバイス接続からのデータ収集・可視化・分析、デバイスの管理などIoTに必要な機能をパッケージ化したIoTプラットフォームサービスです。IoTシステムに必要な機能の9割が組み込まれており、IoTを簡単に導⼊するのに適しています。また、直感的にUIをカスタマイズ可能で⽤途に合った可視化画⾯を簡単に作成でき、さらにAPIファースト設計で柔軟なシステム連携も実現しており、幅広い使い⽅が可能なサービスとなっています。

1-5.準備する物
ハードウェア
品名 | 数量 | 価格 | 備考 |
---|---|---|---|
Raspberry Pi (3以降のModel B) | 1 | 約 10,000円 | 今回はRaspberry Pi 4 Model Bを使⽤ |
microSDカード | 1 | 約 1,000円 | 16GB以上のものを推奨 |
microSDカードリーダー | 1 | 約 500円 | ― |
Raspberry Pi ⽤電源アダプター | 1 | 約 1,000円 | 5V 2A以上のものを推奨 |
PC | 1 | ― | Windows PC もしくは Macを推奨 |
- ⾦額はレシピ作成の参考価格となります。

その他準備するもの
アイテム | 費用 | 備考 |
---|---|---|
Things Cloudのテナント | 製品IoT化パックをご契約頂くことで、Things Cloudを利⽤することが可能です。 利⽤料⾦の詳細はこちらをご参照ください。 |
― |
2.作業の流れ
2-1.ハードウェア構築⼿順
Raspberry PiのセットアップとNode-RED導⼊
Raspberry PiをIoTデバイスとして利⽤するために、OSのインストールとNode-REDの導⼊を⾏います。以下のレシピを参考に、Raspberry Piのセットアップとデバイス認証情報の作成を⾏ってください。
すでにセットアップ済みのRaspberry Piがある場合は、Node-REDのインストールとデバイス認証情報の作成のみを⾏ってください。
デバイスからイベントを送信するための設定
ここからは、Raspberry Piに導⼊したNode-REDを使ってデバイスからThings Cloudにイベントを送信するための事前設定を⾏います。
Node-REDのサンプルフロー読み込み
セットアップ済のRaspberry Piを起動し、インストールしたNode-REDの画⾯を開きます。⾃⾝のPCのブラウザから以下のURLにアクセスして、Node-REDにログインしてください。
http://things-raspi.local:1880
- Raspberry PiとPCが同じネットワークに接続されていることを確認してください。
things-raspi
の部分は、⾃⾝のRaspberry Piのホスト名に置き換えてください。- ログイン画⾯が表⽰されたら、Node-REDインストール時に指定したユーザー名とパスワードを⼊⼒してログインします。
こちらからサンプルフローをダウンロードし、Node-REDにインポートします。
インポートの手順:
1. Node-REDの画⾯右上のメニューから「読み込み」を選択

2. 「読み込むファイルを選択」からダウンロードしたファイルを選択し、「読み込み」をクリックする

3. 「イベント送信(サンプル)」というフローが追加されるので、追加されたフロー(上部タブをクリック)に切り替えます。以下のような画⾯(フロー)が表⽰されれば成功です。

MQTT接続設定
デバイスからThings Cloudにデータを送信するために、今回はMQTTを利⽤します。以下の⼿順でNode-RED上のMQTTの設定を変更していきます。
MQTTとは
MQTT(Message Queuing Telemetry Transport)は、IoTデバイス間でメッセージをやり取りするためのプロトコルです。軽量で通信速度が速く、低消費電⼒で動作するため、IoTデバイス間の通信に適しています。
Things CloudにおけるMQTT接続については、こちら をご参照ください。また、Things Cloudは、より⼀般的なHTTPを利⽤したREST API (API仕様書) にも対応しています。
1) ⾃⾝のPCのブラウザから以下のURLにアクセスしてNode-REDにログインし、フローエディタ画⾯を開きます。
http://things-raspi.local:1880
- Raspberry PiとPCが同じネットワークに接続されていることを確認してください。
things-raspi
の部分は、⾃⾝のRaspberry Piのホスト名に置き換えてください。- ログイン時のユーザー名とパスワードは、Node-REDのインストール時に設定したものを⼊⼒して下さい。
2) フロー画⾯で、「MQTT送信ノード」をダブルクリックして設定画⾯を開きます。次に、"サーバー"の右側にある鉛筆アイコンをクリックして、MQTTサーバーの設定を⾏います。

3) MQTTサーバーの設定画⾯が表⽰されたら、以下の設定を変更します。
- その他の項⽬は変更不要です。
接続タブ
項⽬ | 説明 | 備考 |
---|---|---|
サーバー | [テナントのドメイン]/mqtt |
ログイン時のURLのドメイン部分を入力 例: test-tenant.je1.thingscloud.ntt.com/mqtt 注:"https://"の部分は不要 |
ポート | 8883 |
|
TLSを使用 | チェックを入れる | |
クライアント | デバイスを一意に示す任意のID | 独自のデバイス固有のIDを設定可能(シリアル番号、社内の管理番号など) 例: Raspberry_Pi001 |
セキュリティタブ
項⽬ | 説明 | 備考 |
---|---|---|
ユーザー名 | [テナントID]/[デバイスユーザー名] |
テナントIDと先ほど作成したデバイスユーザー名を入力 例: t12345678/username |
パスワード | [デバイスユーザーのパスワード] |


テナントIDの確認方法
Things CloudのテナントIDは、ログイン後に右上のユーザーアイコンをクリックした時に表⽰されるプラットフォーム情報の中に記載されています。⼀般的に"t"から始まる英数字の⽂字列です。
- テナントのサブドメイン部分とは異なることに注意してください。

デバイスユーザー(デバイス認証情報)について
Things Cloudでは、デバイスが利用するための専用ユーザー(=デバイスユーザー)の利用を推奨しています。デバイスユーザーをまだ作成していない場合は、Raspberry Pi とノーコードツール「Node-RED」を利用したIoTデバイスのセットアップの「デバイス用の認証情報を作成」セクションを参照して下さい。
4) 設定が完了したら、画⾯右上の「更新」をクリックして設定を保存します。そのままmqtt outノードの編集画⾯も「完了」をクリックして閉じます。
5)最後に、フロー画⾯右上の「デプロイ」をクリックして設定を反映さます。デプロイが完了したら、"MQTT送信"ノード部分が接続済(緑⾊)になっていれば成功です。
- 接続済になっていない場合は、ノードをクリックして設定を確認してください。

以上で、デバイスからThings Cloudにアラームを送信するための設定は完了です。
イベント送信の実⾏⽅法
サンプルフローには、すでにイベントを送信するためのノードが設定されています。例としてデバイスの巡回開始を⽰すイベントが設定されています。「巡回開始イベント送信」ノードの左にあるボタンをクリックすることで、イベントを送信することが可能です。
Things Cloudにデバイスを登録するために、1度ボタンを押してイベントを送信してみましょう。
デバイスからMQTTでデータを送信することで、Things Cloudのデバイス⼀覧に本デバイスが⾃動的に追加されます。次の⼿順で必要なため、必ず1回以上イベントを送信してください。

2-2. イベント⼀覧の⾒⽅
デバイスからThings Cloudに向けて送信したイベントは、すぐにダッシュボードで可視化し、どのようなイベントが発⽣したか確認できます。イベントを可視化する設定を⾏い、実際にイベントを表⽰させる⽅法について紹介します。
コックピットアプリへのログイン
ご⾃⾝のThings Cloudのテナントにアクセスし、ユーザー名とパスワードを⼊⼒してログインを⾏います。

ログインに成功すると、以下の画⾯が表⽰されます。
以下のアプリケーションを「コックピット」と呼び、さまざまなデータの可視化や設定を⾏う機能があります。

すでにThings Cloudにログインしている場合は、画面右上のアプリケーションスイッチャー をクリックし、「コックピット」アプリを開いてください。
グループへのデバイス割り当て
グループとは
コックピットアプリでは、作成したデバイスを「グループ」というアセットに割り当てることにより、デバイスのデータをグループ単位で管理できます。以下の⼿順で、作成したデバイスをグループに割り当てます。
デバイスの割り当て
コックピットアプリの画⾯左に表⽰されているナビゲーターの中から、「グループ」メニューを選択すると、以下の画⾯が表⽰されます。
まだグループを作成していないので、何も表⽰されません。
画⾯右上の「グループを追加」を選択し、新しいグループを作成します。

グループの名前と、付随する説明を記載し、次へを押下します。

テナントにある全てのデバイスが表⽰されるため、先ほどNode-REDのMQTT設定時⼊⼒したクライアント(デバイスを⼀意に⽰すID)と⼀致するデバイスを選択してください。
クライアントに Raspberry_Pi001
を設定した場合、デバイス名は MQTT Device Raspberry_Pi001
になります

この操作により、作成した⾃⾝のデバイスのデータを扱うためのグループが作成されました。

ダッシュボードの追加
ダッシュボードとは
ダッシュボードとは、グラフやテーブルなどを配置して、データを可視化したり、分析するためのツールの1つです。コックピットアプリでは、⽐較的簡単にダッシュボードを作成し、直感的な画⾯を作成することが可能です。ダッシュボードの作成⽅法について、以下で説明します。
ダッシュボードを追加
さっそく、ダッシュボードを追加してみましょう。先ほど作成したグループの名前(例ではEvent-Group)をクリックし、グループの詳細画⾯に遷移すると、グループに割り当てたデバイスの⼀覧が表⽰されます。このグループのダッシュボードを作成します。⾚枠のを押下し、ダッシュボード追加画⾯に遷移します。

ダッシュボードを作成するための設定画⾯が現れます。今回はとくに設定を⾏う必要はありませんので、そのまま保存を押下します。

画⾯上部に「ダッシュボード」タブが追加され、ダッシュボードが作成されました。

イベントウィジェットの追加
ウィジェットについて
ウィジェットとは、ダッシュボード上に配置することができる、データを可視化するための部品のことです。Things Cloudでは、今回扱うイベントウィジェットの他にも、グラフやテーブルなどさまざまな種類のウィジェットが標準で組み込まれており、⾃由にダッシュボードをカスタマイズすることが可能です。この章では、今回設定するイベントウィジェットの追加⽅法について説明します。
イベントウィジェットを追加
グループに紐づくダッシュボードを作成したので、ダッシュボードにイベントウィジェットを追加します。イベントウィジェットは、デバイスから送信されたイベントを可視化するためのウィジェットです。
さっそく、先ほど作成したダッシュボードの画⾯の中央にある「ウィジェットを追加」を押下すると、ダッシュボードに追加可能なウィジェットの⼀覧が表⽰されます。
「イベント リスト」を探してください。これがイベントウィジェットを指します。このウィジェットを選択してください。

どのようなデータを表示させるかといった設定の画面が表示されます。
以下の表に、設定項目の一覧を示します。
設定項目 | 内容 | 詳細 |
---|---|---|
アセットの選択 | イベントを表⽰させたいデバイス | 今回は、作成したグループ全体を指定します。これにより、グループに複数のデバイスが割り当てられていた場合でも、すべてのデバイスのイベントを⼀覧で表⽰することが可能です。 |
タイトル | ウィジェットのタイトル | 任意のタイトルを入力します。 |
日付の範囲 | ⽇時設定の⽅法 | ダッシュボード全体で同じ⽇時を設定できる機能の設定です。今回は、デフォルトの「ウィジェット」のままにしてください。 |
Type | 表⽰するイベントの種類 | ⼊⼒欄を空欄に設定することで、全タイプのイベントが表⽰されます。 |
設定できたら、保存を押下します。

これで、ダッシュボードにイベントウィジェットが追加されました。

イベントウィジェットでイベントを可視化
今作成したイベントウィジェットでイベントが可視化できるかどうかを確認するために、まずはデバイスからイベントを送信してみましょう。
先ほど作成したNode-REDのフロー画⾯に戻り、イベントを送信するノード「巡回開始イベント送信」があることを確認します。ノードの左側にあるボタンをクリックし、イベントを送信します。
イベントを送信すると、先ほど作成したウィジェットの中にデバイスから受信したイベントが表⽰されます。ウィジェットの中には、デバイスから送信されたイベントの⼀覧が表⽰されています。イベントを選択すると、イベントの詳細情報を表⽰できます。
イベントウィジェットでは、過去のイベントを含めて表⽰されます。デバイスからイベントを送信するたびに、ウィジェットに新しいイベントがリアルタイムに追加されます。

以上で、デバイスから発⽣したイベントの⼀覧をダッシュボードで可視化することができました。
2-3. 【応⽤編】 独⾃のイベント内容を送信
最初のイベントが送信できThings Cloud上で確認ができたら、次はイベントの内容を変更してみましょう。送信する際のデータ内容を変更することで、イベントの種類や通知するテキストを⾃由に設定することが可能です。
イベントの内容を変更
別のイベントを送信するための⼿順:
1. Node-REDのフロー画⾯に戻り、イベントを送信するノード「巡回開始イベント送信」を右クリックし、「ノードをコピー」を選択します。
2. 次にフロー上で右クリックをして「ノードを貼り付け」を選択し、新たにイベントを送信するノードを配置します。配置できたら、そのノードをダブルクリックして設定画⾯を開きます。

3. 設定画⾯で、イベントの内容を変更します。msg.paylod
の右に設定されているのが送信されるデータの内容です。以下の表にデータの仕様を⽰しているので、⾃由に変更してみましょう。
- Things CloudのMQTT通信では、通常SmartRESTというプロトコルを⽤いてデータを送信します。
SmartRESTでは、あらかじめ定義されたカンマ区切りのフォーマットに合わせてデータを送信します。
データ例:
400,com_patrolStartEvent,巡回を開始します
# | データ項目 | 内容 | 詳細 |
---|---|---|---|
1 | SmartRESTのテンプレートID | 400(イベント送信) | SmartRESTのテンプレートを示す番号 標準のテンプレートがあらかじめ定義されており、汎⽤のイベント送信の場合は [400] を指定します※ 独自のテンプレートを作成することも可能 |
2 | イベントタイプ | com_patrolRestartEvent com_chargeStartEvent など |
イベントの種類を⽰す⽂字列 任意の⽂字列を設定可能 |
3 | イベントテキスト | イベントの詳細情報 | イベントの内容を示す文字列(可視化画面に表示される) 任意の文字列を設定可能 |
変更例:
400,com_chargeStartEvent,充電を開始します

4. 設定が完了したら、画⾯右上の「完了」をクリックして設定を保存します。次に、編集した新しいノードを「MQTT送信」ノードに接続してください。

5. 新しいノードが追加できMQTT送信ノードに接続されたら、画⾯右上の「デプロイ」をクリックして設定を反映させて完了です。
SmartRESTとは
SmartRESTは、IoTデバイスからThings Cloudにデータを送信するためのプロトコルの⼀つです。REST APIのようにThings Cloudに対して各種データを送信することができますが、データの形式や送信⽅法がREST APIとは異なります。SmartRESTでは、あらかじめ定義されたテンプレート(ユーザーが定義することも可能)に基づいてカンマ区切り (CSV) のデータを送信することで、イベントやアラーム、計測値など様々なIoTデータを簡単に送信することできます。詳しくはこちらをご参照ください。
追加したイベントを送信
新しいイベントの送信設定ができたので、再度デバイスからイベントを送信してみましょう。先ほど作成したノードの左のボタンをクリックしてイベントを送信します。
イベントを送信したら、再びThings Cloudのダッシュボードに戻ります。先ほど送信したイベントとは異なるテキストのイベントがウィジェットに表⽰されることが確認できるはずです。このようにデバイスから任意のイベント内容を送信することができ、Things Cloud上でイベントの可視化を⾏うことが可能です。

3.最後に
3-1. 次のステップ
本記事では、Raspberry PiをIoTデバイスとして利⽤し、Things Cloudを⽤いてデバイスからの動作情報をイベントとして受信し可視化する⽅法について解説しました。
Things Cloudを利⽤することで、デバイスの監視や運⽤を効率化することができるということが少しだけ実感できたのではないでしょうか。
今回はIoTデバイスから送信される「イベント」について扱いましたが、デバイスからは他にも「アラーム(デバイスからの異常な状態を知らせる要素)」「メジャーメント(計測値)」などが送信されています。次のステップとして、イベント以外のデータをThings Cloud上で扱う⽅法についてチャレンジしてみましょう。
3-2. Things Cloudの詳細情報とお申し込みについて
ここまで読んでいただき、誠にありがとうございました。
Things Cloudのさらなる詳細情報については、Things Cloud紹介ページをご覧ください。
資料請求に関しては、資料請求ページからお願いいたします。