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 とフィールド番号に対応する channelID
と fieldNumber
を設定します。
MQTT Subscribe
ブロックは、次の形式のトピックで事前構成されています。
channels/<channelID>/subscribe/<fieldNumber>.
ThingSpeak チャネルのチャネル ID とフィールド番号に対応する channelID
と fieldNumber
を設定します。
エクスターナル モード用の Simulink モデルの準備
モデルでこれらのパラメーターを構成します。
[Hardware]
タブで、[Model Settings]
をクリックして [コンフィギュレーション パラメーター] ダイアログ ボックスを開きます。[Hardware Implementation]
を選択し、[Hardware board]
パラメーターを[NVIDIA Jetson]
に設定します。[Group]
セクションの[Target hardware resources]
で、[MQTT]
を選択します。MQTT プロパティの構成方法の詳細については、Model Configuration Parameters for NVIDIA Hardware Boardを参照してください。ThingSpeak MQTT デバイスの作成時に設定したのと同じパラメーターを使用します。[External mode]
セクションで、[Communication interface]
が[XCP on TCP/IP]
に設定されていることを確認します。
エクスターナル モードの実行
[Hardware]
タブで、[Monitor & Tune]
をクリックします。これにより、モデルがターゲット ハードウェアに展開され、モデルがエクスターナル モードで実行され、以下の出力が Simulink モデルに渡されます。
MQTT Publish
ブロック -Status
出力。MQTT Subscribe
ブロック -IsNew
出力およびMessage
出力。
Simulink データ インスペクターでの結果の表示
モデルが停止したら、Simulink データ インスペクターを開いて、各サンプル時間におけるパブリッシュ メッセージとサブスクライブ メッセージを表示します。
ThingSpeak ブローカーでのパブリッシュ済みデータの表示
パブリッシュ済みのメッセージをブローカーで表示するには、[Channels]、[My Channels] を選択し、メッセージがパブリッシュされたチャネルをクリックします。