Main Content

MQTT ブロックを使用した ThingSpeak でのメッセージのパブリッシュとサブスクライブ

この例では、NVIDIA® Jetson® および DRIVE® プラットフォームで Message Queuing Telemetry Transport (MQTT) を使用した通信を行う方法を示します。

MQTT は無線のパブリッシュ/サブスクライブ アーキテクチャであり、ブローカーを継続的にポーリングしなくても、メッセージをクライアント デバイスにプッシュできます。この例では、ThingSpeak™ が通信の中心部分であるブローカーとしてクライアントとの間でメッセージの送受信を仲介し、NVIDIA Jetson ボードが MQTT クライアント (パブリッシャーとサブスクライバー) として機能します。MQTT プロトコルの詳細については、MQTT の基礎 (ThingSpeak)およびIntroduction to MQTTを参照してください。

この例の Simulink® モデルは、MATLAB® Coder™ Support Package for NVIDIA Jetson and NVIDIA DRIVE Platforms の MQTT Publish ブロックと MQTT Subscribe ブロックを使用して、ThingSpeak MQTT ブローカーと MQTT メッセージを送受信します。

必要条件

ターゲット ボード要件

  • NVIDIA Jetson 組み込みプラットフォーム。

  • ターゲット ボードとホスト PC を接続するイーサネット クロスオーバー ケーブル (ターゲット ボードをローカル ネットワークに接続できない場合)。

  • コンパイラおよびライブラリ用の、ターゲット ボード上のツール、ライブラリ、および環境変数。詳細については、Install and Setup Prerequisites for NVIDIA Boardsを参照してください。

ThingSpeak ブローカーの要件

  • NVIDIA Jetson ボードが ThingSpeak と通信するように構成された MQTT ThingSpeak デバイス。認証情報を含む、ユーザー作成チャネルへの MQTT アクセスは、ThingSpeak MQTT デバイスによって処理されます。このデバイスは、NVIDIA Jetson が ThingSpeak と通信し、特定のチャネルを承認するために必要な資格情報を使用して構成されなければなりません。MQTT デバイスの作成方法の詳細については、ThingSpeak MQTT デバイスの作成 (ThingSpeak)を参照してください。

Simulink モデルの構成

この例の Simulink モデルは、Counter Limited ブロックの出力を MQTT メッセージとして使用します。MQTT Publish ブロックは、このメッセージをパブリッシュ トピックにパブリッシュするために使用されます。MQTT Subscribe ブロックは、対応するサブスクライブ トピックにサブスクライブして、前述のパブリッシュ済みのメッセージを受信するために使用されます。

open_system('nvidia_MQTT_publish_subscribe')

MQTT Publish ブロックは、次の形式のトピックで事前構成されています。

channels/<channelID>/publish/fields/<fieldNumber>

ThingSpeak チャネルのチャネル ID とフィールド番号に対応する channelIDfieldNumber を設定します。

MQTT Subscribe ブロックは、次の形式のトピックで事前構成されています。

channels/<channelID>/subscribe/<fieldNumber>.

ThingSpeak チャネルのチャネル ID とフィールド番号に対応する channelIDfieldNumber を設定します。

エクスターナル モード用の Simulink モデルの準備

モデルでこれらのパラメーターを構成します。

  1. [Hardware] タブで、[Model Settings] をクリックして [コンフィギュレーション パラメーター] ダイアログ ボックスを開きます。

  2. [Hardware Implementation] を選択し、[Hardware board] パラメーターを [NVIDIA Jetson] に設定します。

  3. [Group] セクションの [Target hardware resources] で、[MQTT] を選択します。MQTT プロパティの構成方法の詳細については、Model Configuration Parameters for NVIDIA Hardware Boardを参照してください。ThingSpeak MQTT デバイスの作成時に設定したのと同じパラメーターを使用します。

  4. [External mode] セクションで、[Communication interface][XCP on TCP/IP] に設定されていることを確認します。

エクスターナル モードの実行

[Hardware] タブで、[Monitor & Tune] をクリックします。これにより、モデルがターゲット ハードウェアに展開され、モデルがエクスターナル モードで実行され、以下の出力が Simulink モデルに渡されます。

  1. MQTT Publish ブロック - Status 出力。

  2. MQTT Subscribe ブロック - IsNew 出力および Message 出力。

Simulink データ インスペクターでの結果の表示

モデルが停止したら、Simulink データ インスペクターを開いて、各サンプル時間におけるパブリッシュ メッセージとサブスクライブ メッセージを表示します。

ThingSpeak ブローカーでのパブリッシュ済みデータの表示

パブリッシュ済みのメッセージをブローカーで表示するには、[Channels][My Channels] を選択し、メッセージがパブリッシュされたチャネルをクリックします。