ホームページ >バックエンド開発 >PHPチュートリアル >PHPとMQTTでリモートデバイスデータのリアルタイム表示と分析を実現

PHPとMQTTでリモートデバイスデータのリアルタイム表示と分析を実現

WBOY
WBOYオリジナル
2023-07-08 18:06:341170ブラウズ

PHP と MQTT は、リモート デバイス データのリアルタイムのプレゼンテーションと分析を実現します。

はじめに:
モノのインターネット技術の発展により、ますます多くのデバイスがインターネットに接続され、大規模なデータが生成されます。データ量。デバイス データをリアルタイムで取得および分析するために、この記事では、PHP および MQTT プロトコルを使用して、リモート デバイス データのリアルタイムの表示と分析を実現する方法を紹介します。

1. MQTT プロトコルとは
MQTT (Message Queuing Telemetry Transport) は、モノのインターネットの分野で広く使用されている、軽量で柔軟なオープン メッセージング プロトコルです。 MQTT プロトコルはパブリッシュ/サブスクライブ モデルに基づいており、低帯域幅、低電力のデバイス通信をサポートし、メッセージの信頼性と高い伝送効率という特徴を備えています。

2. MQTT サーバーの構築

  1. MQTT サーバーのインストール
    MQTT サーバーのインストールと設定を選択します。この記事では、MQTT サーバーとして Eclipse Mosquitto を使用することを推奨します。方法については、公式ドキュメントを参照してください。インストールが成功したら、MQTT サーバーを起動します。
  2. MQTT トピックの定義
    MQTT トピックは、デバイスによってパブリッシュおよびサブスクライブされたメッセージを識別するために使用されます。テーマは、実際のニーズに応じてカスタマイズできます (例: "/devices/device1/temperature")。

3. PHP と MQTT の統合

  1. MQTT クライアント ライブラリをインストールする
    Composer を使用して MQTT クライアント ライブラリをインストールします。次のコマンド:

    composer require php-mqtt/client
  2. MQTT サーバーに接続します
    PHP ファイルで、次のコードを使用して MQTT サーバーに接続します:

    use PhpMqttClientMqttClient;
    
    $mqtt = new MqttClient('mqtt://localhost:1883');
    $mqtt->connect();

    必要があります。 「localhost」を MQTT サーバーの IP アドレスに置き換えます。「1883」は MQTT サーバーのデフォルトのポート番号です。

  3. メッセージをパブリッシュする
    次のコードを使用して、指定した MQTT トピックにメッセージをパブリッシュします。

    $topic = '/devices/device1/temperature';
    $payload = '25°C';
    $qosLevel = 0; // 可选,默认为0
    
    $mqtt->publish($topic, $payload, $qosLevel);

    $topic と $payload の値は次のとおりです。実際のニーズに応じて変更してください。

  4. メッセージのサブスクライブ
    次のコードを使用して、指定された MQTT トピックにサブスクライブします。

    $topic = '/devices/device1/temperature';
    $qosLevel = 0; // 可选,默认为0
    
    $mqtt->subscribe($topic, function ($topic, $message) {
     // 在此处处理接收到的消息
    }, $qosLevel);

    受信したメッセージは、コールバック関数で処理できます。メッセージをデータベースに保存するか、リアルタイムでフロントエンド インターフェイスに提示します。

4. デバイス データのリアルタイムのプレゼンテーションと分析

  1. HTML と JavaScript を使用してフロントエンド ページを作成する
    HTML ページを作成するデバイス データのリアルタイム表示用。 JavaScript を使用すると、Ajax テクノロジーを使用してサーバーからデバイス データを定期的に取得し、ページを動的に更新するなど、バックエンド PHP スクリプトと対話できます。
  2. デバイス データを取得するための PHP スクリプト
    データベースまたは MQTT サーバーからデバイス データを取得するための PHP スクリプトを作成します。ニーズに応じて、最新のデータを取得するか、指定した期間内のデータを取得するかを選択できます。
  3. デバイス データをリアルタイムで更新する
    JavaScript と Ajax テクノロジを使用して、フロントエンド ページで PHP スクリプトを定期的にリクエストしてデバイス データを取得し、そのデータをリアルタイムでページに更新します。

5. 概要
この記事では、PHP および MQTT プロトコルを使用して、リモート デバイス データのリアルタイムのプレゼンテーションと分析を実現する方法を紹介します。 MQTT プロトコルのパブリッシュ/サブスクライブ モードにより、デバイス データのリアルタイム送信と信頼性保証を実現でき、PHP の強力な機能を利用して、データの取得、保存、およびアプリケーションの柔軟性を実現できます。この記事が、モノのインターネット アプリケーションの開発に参考になり、役立つことを願っています。

参考:

  1. Eclipse Mosquitto 公式ドキュメント: https://mosquitto.org/documentation/
  2. php-mqtt/client GitHub ページ: https://mosquitto.org/documentation/
php-mqtt/client github.com/php-mqtt/client######

以上がPHPとMQTTでリモートデバイスデータのリアルタイム表示と分析を実現の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。