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

今回はIoTデバイスとしてRaspberry Piを使⽤しますが、お持ちのIoTデバイスでもThings Cloudにデータを送ることができればThings Cloudのアラーム設定を⾏うことが可能ですので、お⼿元のIoTデバイスのアラームでも本⼿順を応⽤することで簡単にアラームを管理することができるようになります。さまざまなIoTデバイスをThings Cloudと接続し、アラームを⼀元管理することにより、複数のIoT製品の遠隔監視や保守などの負担を軽減し、より効率的な運⽤を実現することが可能となり、コストの削減などに貢献します。
アラーム機能の活⽤例
アラーム機能は、前述したとおり遠隔監視に⽤いられるケースが多いですが、具体的な活⽤例を1つご紹介します。
昨今の商業施設においては、AIや5Gなどの新しい技術を⽤いて、警備員の代わりにロボットを導⼊し、ロボットが巡回業務を⾏うことで安⼼・安全のみならず、⼤幅な業務の効率化を実現しているケースがあります。Things Cloudで提供している機能により、このようなロボットの遠隔監視を⽀援し、ロボットが発⽣させたアラームを⼀元管理することが可能です。
簡単な図を以下に⽰します。


巡回しているロボットは、センサーデータを取得し、巡回の状況をはじめ、バッテリーの情報や緊急停⽌アラームなどのさまざまな情報をThings Cloudに送信します。このアラームの情報について、本レシピで紹介する機能を応⽤することで、可視化することはもちろん、他にも発⽣したアラームに対しメールで管理者に通知を⾏うなど、運⽤する上で必要となるさまざまな機能を有しています。例えば電池残量が少なくなっていることを確認した際には、Things Cloud側から遠隔制御で充電のリクエストを⾏ったり、さまざまなアラームを確認することで、ロボットの状況を逐⼀把握し、適切な対応を⾏うことが可能です。
このソリューションでは、⼀例として以下のような画⾯を作成し、ロボットの状態をリアルタイムに把握できるようにします。
1つの画⾯で⾒たい情報を⼀覧で表⽰することができるため、運⽤者はロボットの状況を⼀⽬で把握することが可能です。

1-2.所要時間
約120分(デバイスセットアップ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のセットアップ手順の「デバイス用の認証情報を作成」セクションを参照して下さい。
4) 設定が完了したら、画⾯右上の「更新」をクリックして設定を保存します。そのままmqtt outノードの編集画⾯も「完了」をクリックして閉じます。
5)最後に、フロー画⾯右上の「デプロイ」をクリックして設定を反映さます。デプロイが完了したら、"MQTT送信"ノード部分が接続済(緑⾊)になっていれば成功です。
- 接続済になっていない場合は、ノードをクリックして設定を確認してください。

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

アラーム一覧の見方
デバイスからThings Cloudに向けて送信したアラームは、すぐにダッシュボードで可視化し、どのようなアラームが発⽣したか確認することができます。アラームを可視化する設定を⾏い、実際にアラームを表⽰させる⽅法について紹介します。
コックピットアプリへのログイン
ご自身のThings Cloudのテナントにアクセスし、ユーザー名とパスワードを入力してログインを行います。

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

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

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

今作成しようとしているグループに対し、扱いたいデバイスを割り当てる画⾯に遷移します。
画⾯には、本レシピで作成したデバイスが表⽰されています。これを割り当てるため、左にあるチェックボックスにチェックを⼊れ、作成を押下します。
テナントにある全てのデバイスが表⽰されるため、先ほどNode-REDのMQTT設定時⼊⼒したクライアント(デバイスを⼀意に⽰すID)と⼀致するデバイスを選択してください。
クライアントに Raspberry_Pi001
を設定した場合、デバイス名は MQTT Device Raspberry_Pi001
になります

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

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

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

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

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

どのようなデータを表示させるかといった設定の画面が表示されます。
以下の表に、設定項目の一覧を示します。
設定項目 | 内容 | 詳細 |
---|---|---|
アセットの選択 | アラームを表示させたいデバイス | 今回は、作成したグループ全体を指定します。これにより、 グループに複数のデバイスが割り当てられていた場合でも、 全てのデバイスのアラームを一覧で表示することが可能です。 |
タイトル | ウィジェットのタイトル | 任意のタイトルを入力します。 |
ステータス | 表示するアラームのステータス | 今回は、「クリア済み」のみチェックボックスから外します。 これにより、対処が完了したアラームをウィジェットから非表示に することが可能です。 |
タイプ | 表示するアラームの種類 | 入力欄を空欄に設定することで、全てのアラームを表示させます。 |
設定できたら、保存を押下します。

これで、ダッシュボードにアラームウィジェットが追加されました。
アラームウィジェットでアラームを可視化
今作成したアラームウィジェットでアラームが可視化できるかどうかを確認するために、まずはデバイスからアラームを送信してみましょう。
先ほど作成したNode-REDのフロー画⾯に戻り、アラームを送信するノード「緊急停⽌アラーム送信」があることを確認します。ノードの左側にあるボタンをクリックし、アラームを送信します。
先ほどデバイス登録のために送信したアラームが残っている場合は、そのまま再度送信しても問題ありません。ただし、同じアラームを連続で送信してもアラームが複数表⽰はされません。
- クリアされる前に同じアラームタイプのアラームを送信すると、アラームのカウント数が増加します。
アラームを送信すると、先ほど作成したウィジェットの中にデバイスから受信したアラームが表⽰されます。
ウィジェットの中には、デバイスから送信されたアラームの⼀覧が表⽰されています。
アラームを選択すると、アラームの詳細情報を表示することができます。さらに、承認ボタンを押すと、対処したアラームに対し確認済みのステータスに変更することができ、クリアボタン
を押すと、アラームをクリアすることができ、ウィジェットから非表示になります。

スマートルールとは
Things Cloudでは、スマートルールという機能が提供されています。スマートルールとは、デバイスから送信されたデータをリアルタイムに処理し、⾃動的にさまざまなアクションを⾏うための機能です。例えば、デバイスからのデータが指定の値を超えた場合に、メール通知を⾏うような処理を⾃動化することができます。
コックピットアプリには、簡単にスマートルールを作成するためのテンプレートが多数⽤意されており、今回もテンプレートを使⽤してスマートルールを設定していきます。
メール通知の設定
デバイスからアラームを受信したら、メールで通知を⾏うというスマートルールを設定してみましょう。先ほどアラームウィジェットを作成したダッシュボードの画⾯の上部に表⽰されている「スマートルール」タブを選択すると、スマートルールを追加する画⾯に遷移します。画⾯中央の「スマートルールを追加」を押下し、スマートルールの設定画⾯に遷移します。

スマートルールのテンプレートが表⽰されます。たくさんのテンプレートを⽤意しているので、柔軟にルールを設定しさまざまなアクションを⾃動化できることがわかります。今回は「アラーム時に電⼦メールを送信」というテンプレートを選択します。

テンプレートを選択すると、スマートルールでどのようなアラームに対しどのような電⼦メールをどこに送信するかといった設定の画⾯が表⽰されます。
以下の表に、設定項⽬の⼀覧を⽰します。
設定項目 | 内容 | 詳細 |
---|---|---|
ルール名 | スマートルールの名前 | 任意の名前を入力します。 |
次のタイプのアラームの場合 | どのようなアラームに対してメール通知を行うか | 今回は、障害物の検知による緊急停止をしたというアラームに対してメール通知を行うように設定しますので、入力欄には、緊急停止アラームのタイプである"com_emergencyStopAlarm"と入力します。また、「アラームタイプを追加」を押下することで、複数のアラームの種類を指定することも可能です。 |
Eメールを送信 | システムから送信されたメールの返信先の設定 | 送信先をはじめ、CCやBCC、システムから送信されたメールの返信先の設定を行うことができます。さらに、メールの件名や本文の設定も行うことが可能です。 件名や本文にデフォルトで指定されているプレースホルダーについては、以下の内容が反映されます。
#{source.name} : アラームを発生させたデバイスの名前
#{severity} : アラームの重要度
#{text} : アラームの内容 |
対象のアセット もしくはデバイス |
どのデバイスのアラームに対してメール通知を行うか | 今回は、作成したグループ全体を指定します。 |
アラームタイプとは、デバイスから送信されるアラームの種類のことを指します。1種類のアラームに対し、1つのアラームタイプが紐づきます。
⼀連の設定が完了したら、保存を押下します。



これで、デバイスからアラームを受信したら、メールで通知を⾏うというスマートルールを設定することができました。

では、改めてもう⼀度アラームを発⽣させ、メールで通知されるかを確認してみましょう。この時、先ほど受信したアラームをクリアするようにしてください。赤枠のを押下することで、アラームをクリアすることができます。
スマートルールは、複数回同じ種類のアラームを受信した場合、最初の⼀度のみ作動します。そのため、先ほど試しに発⽣させたアラームが残っていると、正しくメールが送信されません。

では、Node-REDの画⾯からもう⼀度緊急停⽌アラームを発⽣させてみましょう。すると、まもなくして指定したメールアドレスに対しメールが届きます。

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

3) 設定画⾯で、アラームの内容を変更します。msg.paylod
の右に設定されているのが送信されるデータの内容です。以下の表にデータの仕様を⽰しているので、⾃由に変更してみましょう。
- Things CloudのMQTT通信では、通常SmartRESTというプロトコルを⽤いてデータを送信します。SmartRESTでは、あらかじめ定義されたカンマ区切りのフォーマットに合わせてデータを送信します。
データ例:
304,deviceBatteryAlarm,
機器のバッテリー残量が低下しています
# | データ項目 | 内容 | 詳細 |
---|---|---|---|
1 | SmartRESTのテンプレートID | 301 (クリティカルアラーム) 302 (メジャーアラーム) 303(マイナーアラーム) 304 (警告アラーム) |
SmartRESTのテンプレートを示す番号 標準のテンプレートがあらかじめ定義されており、アラームの場合は重大度に応じて4種類が定義 ※ 独自のテンプレートを作成することも可能 |
2 | アラームタイプ | deviceBatteryAlarm deviceFailureAlarm など |
アラームの種類を示す文字列 任意の文字列を設定可能 |
3 | アラームテキスト | アラームの詳細情報 | アラームの内容を示す文字列(可視化画面に表示される) 任意の文字列を設定可能 |
変更例:
301,deviceFailureAlarm,
機器が故障しました

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紹介ページをご覧ください。
資料請求に関しては、資料請求ページからお願いいたします。
-
お問い合わせ
製品IoT化パッケージに関するお問い合わせはこちら
関連コンテンツ
-
Things Cloud®
NTT ComのIoTプラットフォーム「Things Cloud®」は、 センサーデバイス、ネットワーク、クラウド、アプリケーションといった多岐に渡る分野をIoT Platformとしてトータルで提供します。
-
IoT Connect Gateway
クラウド側のインターフェース仕様に合わせて簡単・セキュアに接続いただけるゲートウェイサービスです。セキュアなIoT通信をスモールスタートから実現できます。
-
IoT Connect Mobile® Type S
1枚のSIMで世界196の国と地域で利用可能。日本でもグローバルでも最適なデータ通信料金を実現。フルMVNOならではの柔軟性・拡張性。
-
ドコモビジネスのIoT総合サイト
ドコモビジネスのIoTサービス&ソリューションや導入事例をご紹介しています。IoTにドコモビジネスのアセットを組み合わせて、お客さまのビジネスに無限大の可能性を提供します。