ホームページ >バックエンド開発 >PHPチュートリアル >PHP と MQTT: モノのインターネットに基づくリアルタイム環境監視システムの構築

PHP と MQTT: モノのインターネットに基づくリアルタイム環境監視システムの構築

WBOY
WBOYオリジナル
2023-07-09 09:01:441431ブラウズ

PHP と MQTT: モノのインターネットに基づくリアルタイム環境監視システムの構築

モノのインターネット テクノロジの急速な発展により、相互接続できるデバイスがますます増えています。温度、湿度、気圧などのさまざまな環境パラメータをセンサーで簡単に監視できる時代。ただし、これらのデータをどのようにリアルタイムに取得して処理するかが重要な問題になります。この記事では、PHP と MQTT を使用して、IoT に基づいたリアルタイム環境監視システムを構築する方法を紹介します。

MQTT (Message Queue Telemetry Transport) は、パブリッシュ/サブスクライブ モデルに基づく軽量の通信プロトコルであり、モノのインターネット アプリケーションにおけるデバイス間の通信に非常に適しています。低帯域幅、低消費電力、メモリ占有面積が小さいという利点があり、データを効率的に送信できます。

まず、MQTT プロキシ サーバーを構築する必要があります。一般的な MQTT プロキシ サーバーには、Mosquitto、EMQ、ActiveMQ などがあります。この記事では Mosquitto を例に挙げます。Ubuntu システムに Mosquitto をインストールするのは非常に簡単です。次のコマンドを実行するだけです:

sudo apt-get update
sudo apt-get install mosquitto mosquitto-clients

インストールが完了したら、次のコマンドで Mosquitto サービスを開始できます:

mosquitto -v

次に、PHP コードを書き始めます。まず、MQTT PHP クライアント ライブラリをインストールする必要があります。これは Composer を使用して簡単にインストールできます。

composer require eclipse/paho-mqtt

PHP では、MQTT クライアント ライブラリを導入し、特定の状況に応じてサーバー接続情報を構成する必要があります。

require_once("vendor/autoload.php");

$server = "mqtt.example.com"; // MQTT服务器地址
$port = 1883; // MQTT服务器端口
$username = "your_username"; // MQTT服务器用户名
$password = "your_password"; // MQTT服务器密码
$client_id = "your_client_id"; // 客户端ID,用于区分不同的设备

$client = new EclipseMosquittoClient($client_id); // 创建MQTT客户端实例

// 配置服务器连接信息
$client->setCredentials($username, $password);
$client->connect($server, $port, 60);

// 订阅主题
$client->subscribe("environment/temperature", 1);

// 接收消息
while (true) {
    $client->loop();
}

// 断开连接
$client->disconnect();

上記のコードでは、最初に MQTT クライアント ライブラリを導入し、MQTT クライアント インスタンスを作成しました。次に、サーバー接続情報を構成し、提供されたユーザー名とパスワードを使用して接続しました。次に、トピック「環境/温度」をサブスクライブし、QoS (サービス品質) を 1 に設定しました。これは、メッセージが少なくとも 1 回送信されることを意味します。最後に、無限ループを使用してメッセージを受信し、必要に応じて処理します。

メッセージの受信に加えて、MQTT クライアント ライブラリを使用してメッセージをパブリッシュすることもできます。以下は例です:

require_once("vendor/autoload.php");

$server = "mqtt.example.com"; // MQTT服务器地址
$port = 1883; // MQTT服务器端口
$username = "your_username"; // MQTT服务器用户名
$password = "your_password"; // MQTT服务器密码
$client_id = "your_client_id"; // 客户端ID,用于区分不同的设备

$client = new EclipseMosquittoClient($client_id); // 创建MQTT客户端实例

// 配置服务器连接信息
$client->setCredentials($username, $password);
$client->connect($server, $port, 60);

// 发布消息
$message = "25.5"; // 温度数值
$client->publish("environment/temperature", $message, 1);

// 断开连接
$client->disconnect();

上記のコードでは、MQTT クライアント インスタンスを作成し、サーバー接続情報を構成します。次に、publish() 関数を使用して、温度データをトピック「環境/温度」に公開しました。メッセージを公開するときは、メッセージが少なくとも 1 回送信できるようにするために、QoS を 1 に指定する必要があることに注意してください。

上記のコード例を通じて、モノのインターネットに基づいたリアルタイム環境監視システムを構築できます。センサー データを MQTT サーバーに送信し、PHP スクリプトを通じてトピックをサブスクライブしてデータを受信し、それに応じて処理して表示できます。

要約すると、PHP と MQTT を使用すると、モノのインターネットに基づいたリアルタイム環境監視システムを迅速に構築できます。 MQTT プロトコルの柔軟性と PHP の開発の利便性により、デバイス間の通信とデータ処理を簡単に実現できます。この記事が読者にインスピレーションを与え、IoT アプリケーションの開発において何かを得るのに役立つことを願っています。

参考:

  • MQTT 公式 Web サイト: http://mqtt.org
  • Eclipse Paho MQTT PHP クライアント ライブラリ: https://github.com /eclipse /paho.mqtt.php

以上がPHP と MQTT: モノのインターネットに基づくリアルタイム環境監視システムの構築の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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