このページは機械翻訳を使用して翻訳されました。元の英語を参照するには、ここをクリックします。
MQTT の基礎
MQTT はパブリッシュ/サブスクライブ アーキテクチャであり、主に帯域幅と電力の制限されたデバイスをワイヤレス ネットワーク経由で接続するために開発されています。これは、TCP/IP ソケットまたは WebSocket 上で実行されるシンプルで軽量なプロトコルです。WebSockets 上の MQTT は、SSL によってセキュリティで保護できます。パブリッシュ/サブスクライブ アーキテクチャを使用すると、クライアント デバイスにメッセージをプッシュでき、デバイスがサーバーに継続的なポーリングを行う必要はありません。
MQTT ブローカーは通信の中心点であり、送信者および適切な受信者の間ですべてのメッセージを送り出すことを担当しています。クライアントは、ブローカーに接続し、情報にアクセスするためのトピックをパブリッシュまたはサブスクライブできる任意のデバイスです。トピックにはブローカーのルーティング情報が含まれています。メッセージを送信する各クライアントは、それらを特定のトピックにパブリッシュし、メッセージを受信する各クライアントは特定のトピックをサブスクライブします。ブローカーは、トピックのマッチするすべてのメッセージを適切なクライアントに配信します。
ThingSpeak™ では、MQTT ブローカーが mqtt3.thingspeak.com
の URL にあり、ポートは 1883
です。ThingSpeakブローカーは、次の図に示すように、MQTT パブリッシュと MQTT サブスクライブの両方をサポートします。
MQTT パブリッシュ
この図はトピックの構造を示しています。ブローカーは、CONNACK
によって正しい CONNECT
要求に応答します。
MQTT サブスクライブ
この図はトピックの構造を示しています。ブローカーは、SUBACK
によって正しい SUBSCRIBE
要求に応答します。
ThingSpeak MQTT デバイスの作成
認証情報を含むチャネルへの MQTT アクセスは、 ThingSpeak MQTT デバイスによって処理されます。デバイスは、MQTT クライアントがThingSpeakと通信し、特定のチャネルを承認するために必要な認証情報を使用して構成されています。MQTT デバイスを作成するには、次の手順を使用します。
ThingSpeakメニューで、 Devices 、 MQTTをクリックします。
「MQTT デバイス」ページで、 「Add a new device」をクリックします。
[新しいデバイスの追加] ダイアログに次のように入力します。
デバイス名を入力します。
オプションの説明を入力します。
「チャネルの許可」セクションで、リスト・メニューからチャネルを選択し、 「Add Channel」をクリックします。デバイスに接続したいすべてのチャネルが「承認済みチャネル」リストに表示されるまで、これを繰り返します。必要に応じて、パブリッシュを許可し、サブスクライブを許可するようにそれぞれを設定します。
Add Device をクリックします。
この時点で、 ThingSpeak は、クライアント ID、ユーザー名、パスワードを含むデバイスの認証情報のリストを生成します。このページからこれらの項目を表示およびコピーしたり、 Download Credentialsをクリックして資格情報をローカル ファイルに保存したりできます。 "重要":パスワードを表示したり保存したりする機会はもうないため、今すぐ資格情報を記録または保存してください。
「Done」をクリックしてデバイスの作成を完了します。
新しいデバイスが [MQTT デバイス] ページに表示されます。Editをクリックすると、デバイスの設定を変更し、チャネルを追加できます。MQTT クライアントでクライアント ID、ユーザー名、パスワードを使用してThingSpeak MQTT デバイスにアクセスし、そのチャネルを公開およびサブスクライブできます。
メモ
ユーザーあたり最大 100 台の MQTT デバイスを持つことができ、デバイスあたり最大 10 個の承認済みチャネルを使用できます。さらに多くのデバイスまたはチャネルが必要な場合は、 Contact Support。
デスクトップ MQTT クライアントの使用については、 「デスクトップ MQTT クライアントを使用したチャネルのパブリッシュとサブスクライブ」を参照してください。
「デバイスのパスワードをリセットします。」デバイスのパスワードをリセットする必要がある場合は、デバイスの編集ページからいつでもリセットできます。
Devices 、 MQTT を選択します。
表示された MQTT デバイスのリストで、リセットするデバイスのEditをクリックして、その構成の詳細を表示します。
「MQTT Credentials」セクションで、「再生成」アイコンをクリックしてパスワードをリセットします。古いパスワードを使用した接続は無効になります。
接続に対するサーバーの応答
接続が成功すると、 ThingSpeak MQTT ブローカーは接続確認CONNACK
で応答します。MQTT ブローカーは、正常なサブスクリプション要求に SUBACK
メッセージで応答し、サブスクライブ対象のチャネルやフィールドにポストされた新しいデータをクライアントに中継します。これらのメッセージの詳細については、 MQTT v3.1.1仕様を参照してください。その後、 Publish to a Channel FeedまたはPublish to a Channel Field Feedの形式を使用してトピックにメッセージをパブリッシュできます。
MQTT クライアントの構成
ThingSpeak の MQTT ブローカーは mqtt3.thingspeak.com
の URL にあります。次のいずれかのオプションに基づいて、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 …
参考
Publish to a Channel Feed | Publish to a Channel Field Feed | Subscribe to a Channel Field Feed | Subscribe to a Channel Feed
関連するトピック
- MQTT パブリッシュのトラブルシューティング
- MQTT API
- セキュア MQTT を使用したThingSpeakチャネルの公開とサブスクライブ
- デスクトップ MQTT クライアントを使用したチャネルのパブリッシュとサブスクライブ
- MQTT 経由で Particle デバイス クライアントを使用してThingSpeakチャネルにパブリッシュする
- Raspberry Pi 上の Python で WebSocket を使用してパブリッシュする
- Particle Photonクライアントを使用してチャネル更新を購読する
- MQTT サブスクライブのトラブルシューティング
- Particle Photonクライアントを使用してチャネル更新を購読する