このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
MQTT の基礎
MQTT はパブリッシュ/サブスクライブ アーキテクチャであり、主に帯域幅と電力の制限されたデバイスをワイヤレス ネットワーク経由で接続するために開発されています。これは、TCP/IP ソケットまたは WebSocket 上で実行されるシンプルで軽量なプロトコルです。WebSockets 上の MQTT は、SSL によってセキュリティで保護できます。パブリッシュ/サブスクライブ アーキテクチャを使用すると、クライアント デバイスにメッセージをプッシュでき、デバイスがサーバーに継続的なポーリングを行う必要はありません。
MQTT ブローカーは通信の中心点であり、送信者および適切な受信者の間ですべてのメッセージを送り出すことを担当しています。クライアントは、ブローカーに接続し、情報にアクセスするためのトピックをパブリッシュまたはサブスクライブできる任意のデバイスです。トピックにはブローカーのルーティング情報が含まれています。メッセージを送信する各クライアントは、それらを特定のトピックにパブリッシュし、メッセージを受信する各クライアントは特定のトピックをサブスクライブします。ブローカーは、トピックのマッチするすべてのメッセージを適切なクライアントに配信します。
ThingSpeak™ では、MQTT ブローカーが mqtt.thingspeak.com
の URL にあり、ポートは 1883
です。ThingSpeak ブローカーは、図に示すとおり、MQTT パブリッシュと MQTT サブスクライブの両方をサポートしています。
MQTT パブリッシュ
この図はトピックの構造を説明しています。Write API キーはパブリッシュするために必要です。ブローカーは、CONNACK
によって正しい CONNECT
要求に応答します。
MQTT サブスクライブ
この図はトピックの構造を説明しています。チャネルをサブスクライブするには、ユーザー名と、パスワードとしての MQTT API キーも接続時に提示しなければなりません。ブローカーは、SUBACK
によって正しい SUBSCRIBE
要求に応答します。
MQTT API キー
MQTT サブスクライブを使用するには、一意のユーザー名と、パスワードとしての MQTT API キーを接続時に提示します。MQTT パブリッシュでは、この API キーは必要ありません。MQTT API キーを参照するには、[Account]、[MyProfile] を選択します。
接続に対するサーバーの応答
接続に成功すると、ThingSpeak の MQTT ブローカーは接続の肯定応答である CONNACK
によって応答します。MQTT ブローカーは、正常なサブスクリプション要求に SUBACK
メッセージで応答し、サブスクライブ対象のチャネルやフィールドにポストされた新しいデータをクライアントに中継します。これらのメッセージの詳細については、MQTT v 3.1.1 の仕様を参照してください。これにより、メッセージをPublish to a Channel FeedまたはPublish to a Channel Field Feedの形式を使用してトピックにパブリッシュできるようになります。
MQTT クライアントの構成
ThingSpeak の MQTT ブローカーは mqtt.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 API | Publish to a Channel Feed | Publish to a Channel Field Feed | MQTT パブリッシュのトラブルシューティング | Subscribe to a Channel Field Feed | Subscribe to a Channel Feed | MQTT サブスクライブのトラブルシューティング | Particle Photon クライアントを使用したチャネル更新のサブスクライブ
関連するトピック
- Arduino クライアントを使用したチャネルへのパブリッシュ
- デスクトップ MQTT クライアントを使用したチャネルへのパブリッシュ
- Particle Photon クライアントを使用したパブリッシュ
- Raspberry Pi 上の Python で WebSocket を使用したパブリッシュ
- デスクトップ MQTT クライアントを使用したチャネル更新のサブスクライブ
- Particle Photon クライアントを使用したチャネル更新のサブスクライブ