メインコンテンツ

このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。

MQTTの基礎

MQTT は、主に帯域幅と電力が制限されたデバイスをワイヤレス ネットワーク経由で接続するために開発されたパブリッシュ/サブスクライブ アーキテクチャです。これは、TCP/IP ソケットまたは WebSocket 上で実行されるシンプルで軽量なプロトコルです。WebSocket 経由の MQTT は SSL で保護できます。パブリッシュ/サブスクライブ アーキテクチャにより、デバイスがサーバーを継続的にポーリングする必要なく、メッセージをクライアント デバイスにプッシュできます。

MQTT ブローカーは通信の中心点であり、送信者と正当な受信者の間のすべてのメッセージの送信を担当します。クライアントとは、ブローカーに接続し、トピックを公開またはサブスクライブして情報にアクセスできる任意のデバイスです。トピックにはブローカーのルーティング情報が含まれています。メッセージを送信したい各クライアントは、メッセージを特定のトピックに公開し、メッセージを受信したい各クライアントは、特定のトピックにサブスクライブします。ブローカーは、一致するトピックを持つすべてのメッセージを適切なクライアントに配信します。

ThingSpeak™ には、URL mqtt3.thingspeak.com とポート 1883 に MQTT ブローカーがあります。ThingSpeak ブローカーは、次の図に示すように、MQTT パブリッシュと MQTT サブスクライブの両方をサポートしています。

MQTT パブリッシュ

この図はトピックの構造を示しています。ブローカーは正しい CONNECT要求をCONNACK で確認します。

MQTT サブスクライブ

この図はトピックの構造を示しています。ブローカーは正しい SUBSCRIBE要求をSUBACK で確認します。

ThingSpeak MQTTデバイスを作成する

資格情報を含むチャネルへの MQTT アクセスは、ThingSpeak MQTT デバイスによって処理されます。デバイスには、MQTT クライアントが ThingSpeak と通信し、特定のチャネルを承認するために必要な資格情報が構成されています。MQTT デバイスを作成するには、次の手順に従います。

  1. ThingSpeak メニューで DevicesMQTT をクリックします。

    Device menu

  2. MQTT Devices ページで、Add a new device をクリックします。

    Add device option

  3. [Add a new device] ダイアログに入力します。

    New device dialog

    1. デバイス名を入力してください。

    2. オプションの説明を入力します。

    3. 「Authorize Channels」セクションで、リスト メニューからチャネルを選択し、「Add Channel」をクリックします。デバイスに接続するすべてのチャネルが「承認済みチャネル」リストに表示されるまで、これを繰り返します。必要に応じて、それぞれ公開とサブスクライブを許可するように設定します。

    4. Add Deviceをクリックします。

    5. この時点で、ThingSpeak はクライアント ID、ユーザー名、パスワードを含むデバイスの資格情報のリストを生成します。このページからこれらの項目を表示およびコピーすることも、Download Credentials をクリックして資格情報をローカル ファイルに保存することもできます。重要:パスワードを表示したり保存したりする機会が再度ないため、今すぐ資格情報を記録または保存してください。

    6. Done をクリックしてデバイスの作成を完了します。

新しいデバイスが MQTT Devices ページに表示されます。Edit をクリックすると、デバイスの設定を変更したり、チャネルを追加したりできます。MQTT クライアントのクライアント ID、ユーザー名、およびパスワードを使用して、ThingSpeak MQTT デバイスにアクセスし、そのチャネルをパブリッシュおよびサブスクライブすることができます。

メモ

ユーザーごとに最大 100 個の MQTT デバイスを持つことができ、デバイスごとに最大 10 個の承認済みチャネルを持つことができます。追加のデバイスまたはチャネルが必要な場合は、サポートにお問い合わせください

デスクトップ MQTT クライアントの使用については、デスクトップ MQTT クライアントを使用してチャネルを公開およびサブスクライブする を参照してください。

デバイスのパスワードをリセットします。いつでもデバイスのパスワードをリセットする必要がある場合は、デバイスの編集ページからリセットできます。

  1. DevicesMQTTを選択します。

  2. 表示された MQTT デバイスのリストで、リセットするデバイスの Edit をクリックして、その構成の詳細を表示します。

  3. MQTT Credentials セクションで、再生成アイコンをクリックしてパスワードをリセットします。古いパスワードを使用した接続は無効になります。

    MQTT device password reset icon

接続に対するサーバー応答

接続が成功すると、ThingSpeak MQTT ブローカーは接続確認応答 CONNACK で応答します。MQTT ブローカーは、サブスクリプション要求の成功に SUBACK メッセージで応答し、サブスクライブされたチャネルまたはフィールドに投稿された新しいデータをクライアントに中継します。これらのメッセージの詳細については、MQTT v3.1.1 仕様を参照してください。その後、Publish to a Channel Feed または Publish to a Channel Field Feed の形式を使用してトピックにメッセージを公開できます。

MQTTクライアント構成

ThingSpeak には、URL mqtt3.thingspeak.com に MQTT ブローカーがあります。次のいずれかのオプションに基づいて、ThingSpeak MQTT ブローカーと通信するように MQTT クライアントを構成します。

ポート

接続タイプ

暗号化

1883

TCP

なし

8883

TCP

TLS/SSL

80

WebSocket

なし

443

WebSocket

TLS/SSL

クライアント接続を構成するときは、次の点を考慮してください。

  • ハードウェアがセキュア SSL ソケット接続モードをサポートしている場合は、可能な限りそのモードを使用して ThingSpeak MQTT ブローカーと通信してください。

  • ThingSpeak は、QoS = 0 を使用して MQTT パブリッシュおよびサブスクライブ機能を実装します。この「ファイア アンド フォーゲット」プロトコルは、ThingSpeakチャネルに公開したときにクライアントが確認応答を受信しないことを意味します。

  • MQTT 接続は、アイドル状態が 1 時間続くとタイムアウトします。

  • WebSocket 接続を使用する場合、必要なパスは /mqtt です。

    • Raspberry Pi® 上の Python® を含む Paho ライブラリを使用すると、デフォルトの MQTT パスは "/mqtt" になりますが、次のコード行でこれを設定することもできます。

      client.ws_set_options("/mqtt")
    • HiveMQ MQTT CLI では、コマンド オプションを使用してパスを設定します。

      mqtt pub … -ws -ws:path /mqtt … 

参考

| | |

トピック

外部の Web サイト