ホームページ > バックエンド開発 > PHPチュートリアル > PHP と MQTT: リモート エネルギー監視および管理システムの構築

PHP と MQTT: リモート エネルギー監視および管理システムの構築

WBOY
リリース: 2023-07-08 14:06:01
オリジナル
1640 人が閲覧しました

PHP と MQTT: 遠隔エネルギー監視および管理システムの構築

はじめに
エネルギー需要の増大と環境意識の高まりに伴い、遠隔エネルギー監視および管理システムの構築がますます重要になってきています。より重要。 。この種のシステムは、エネルギー使用量をリアルタイムに監視して省エネ管理を行うことができ、遠隔制御によってエネルギー使用量を調整することにより、エネルギーの無駄と二酸化炭素排出量を削減します。この記事では、PHP および MQTT プロトコルを使用してリモート エネルギー監視および管理システムを構築する方法を検討し、参考としていくつかのコード例を提供します。

  1. MQTT の概要
    MQTT (Message Queuing Telemetry Transport) は、ネットワーク帯域幅とコンピューティング リソースが限られているデバイスに適した軽量のパブリッシュ/サブスクライブ メッセージ送信プロトコルです。通信には TCP/IP プロトコルを使用し、プッシュモードをサポートし、低遅延かつ高信頼性を備えています。
  2. MQTT サーバーの構築
    まず、デバイスとアプリケーション間の通信を処理する MQTT サーバーを構築する必要があります。これは、Mosquitto などのオープンソース MQTT サーバーを使用して実現できます。以下は、基本的な Mosquitto サーバーの構成例です。
sudo apt-get install mosquitto
sudo systemctl enable mosquitto
sudo systemctl start mosquitto
ログイン後にコピー
  1. PHP MQTT 拡張機能
    PHP で MQTT プロトコルを使用するには、MQTT 拡張機能をインストールする必要があります。 mosquitto または phpMQTT 拡張機能の使用を選択できます。以下は、phpMQTT 拡張機能を使用したサンプル コードです。
require("phpMQTT.php");

$server = "mqtt.example.com";
$port = 1883;
$client_id = "phpMQTT-subscriber";

$mqtt = new phpMQTT($server, $port, $client_id);

if ($mqtt->connect(true, NULL, "username", "password")) {
    $topics = array("energy/usage/#" => array("qos" => 0, "function" => "processMessage"));
    $mqtt->subscribe($topics, 0);
    while ($mqtt->proc()) {
    }
    $mqtt->close();
} else {
    echo "Failed to connect to MQTT server.";
}

function processMessage($topic, $message) {
    echo "Received message on topic: $topic
";
    echo "Message: $message
";
    // 在这里可以编写处理MQTT消息的代码逻辑
}
ログイン後にコピー

上の例では、まず phpMQTT オブジェクトを作成し、MQTT サーバーに接続しました。次に、1 つ以上のトピックをサブスクライブし、メッセージを処理するためのコールバック関数 processMessage を定義します。 proc メソッドを呼び出すことで、MQTT サーバーからのメッセージの受信と処理を続行できます。

  1. 設備側
    遠隔エネルギー監視・管理システムにおいて、設備側とはセンサーやスマートメーターなどのエネルギー利用機器を指します。デバイスは、エネルギー使用量データをリアルタイムで MQTT サーバーに送信し、サーバーから制御命令を受信する必要があります。
require("phpMQTT.php");

$server = "mqtt.example.com";
$port = 1883;
$client_id = "phpMQTT-publisher";
$topic = "energy/usage";

$mqtt = new phpMQTT($server, $port, $client_id);

if ($mqtt->connect(true, NULL, "username", "password")) {
    $usage_data = "100"; // 从能源使用设备中获取实时能源使用数据
    $mqtt->publish($topic, $usage_data, 0);
    $mqtt->close();
} else {
    echo "Failed to connect to MQTT server.";
}
ログイン後にコピー

上の例では、phpMQTT オブジェクトを作成し、MQTT サーバーに接続しました。次に、publish メソッドを使用して、リアルタイムのエネルギー使用量データをトピック energy/usage に送信します。

  1. Web アプリケーション
    Web アプリケーションは、遠隔エネルギー監視および管理システムの中核です。 MQTT サーバー上のトピックをサブスクライブすることでエネルギー使用量データをリアルタイムで受信し、トピックを公開することで制御命令を送信できます。
require("phpMQTT.php");

$server = "mqtt.example.com";
$port = 1883;
$client_id = "phpMQTT-subscriber";
$topic = "energy/usage";

$mqtt = new phpMQTT($server, $port, $client_id);

if ($mqtt->connect(true, NULL, "username", "password")) {
    $mqtt->subscribe(array($topic => array("qos" => 0, "function" => "processMessage")), 0);
    while ($mqtt->proc()) {
        // 处理其他业务逻辑
    }
    $mqtt->close();
} else {
    echo "Failed to connect to MQTT server.";
}

function processMessage($topic, $message) {
    echo "Received message on topic: $topic
";
    echo "Message: $message
";
    // 在这里可以编写处理MQTT消息的代码逻辑
}
ログイン後にコピー

上の例では、phpMQTT オブジェクトを作成し、MQTT サーバーに接続しました。次に、トピック energy/usage をサブスクライブし、メッセージを処理するためのコールバック関数 processMessage を定義します。 proc メソッドを呼び出すことで、MQTT サーバーからのメッセージの受信と処理を続行できます。

結論
リモート エネルギー監視および管理システムは、PHP および MQTT プロトコルを使用して簡単に構築できます。 MQTT プロトコルは軽量で信頼性が高いため、エネルギーを使用するデバイスと Web アプリケーション間のリアルタイム通信に適しています。エネルギー使用量のリアルタイム監視と遠隔制御により、エネルギー節約、排出量削減、持続可能な開発の目標を達成できます。

参考資料:

  1. Mosquitto - https://mosquitto.org/
  2. phpMQTT - https://github.com/bluerhinos/phpMQTT

以上がPHP と MQTT: リモート エネルギー監視および管理システムの構築の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート