ホームページ > バックエンド開発 > PHPチュートリアル > PHPとMQTT:スマートホームシステムのデータ送信と制御を実現

PHPとMQTT:スマートホームシステムのデータ送信と制御を実現

WBOY
リリース: 2023-07-10 09:14:02
オリジナル
1413 人が閲覧しました

PHP と MQTT: スマート ホーム システムのデータ送信と制御の実現

スマート ホーム システムの急速な発展により、スマート デバイスを使用してホーム デバイスを制御する人がますます増えています。スマートホームシステムのデータ伝送と制御を実現するために、MQTTプロトコルを使用してデバイス間の通信を実装できます。この記事では、PHPとMQTTを使って簡単なスマートホームシステムを構築する方法を紹介します。

まず、MQTT 拡張ライブラリをインストールする必要があります。次のコマンドを使用して Mosquitto PHP 拡張機能をインストールできます:

pecl install Mosquitto-alpha
ログイン後にコピー

インストールが完了したら、php.ini ファイルで拡張機能を有効にします:

extension=mosquitto.so
ログイン後にコピー

次に、MQTT をインストールする必要があります。デバイス間の通信に使用される Mosquitto などのブローカー。コマンド ラインで次のコマンドを使用して Mosquitto エージェントをインストールできます:

sudo apt-get install mosquitto
ログイン後にコピー

インストールが完了したら、次のコマンドで Mosquitto エージェントを起動できます:

mosquitto -v
ログイン後にコピー

さて、 PHP コードを記述して、スマート ホーム システムのデータ送信と制御を実現します。ホームデバイスとして温度センサーとLEDライトがあるとします。温度センサーは温度値を MQTT ブローカーに送信し、LED ライトは受信した指示に従ってスイッチを制御します。

<?php
 
require("phpMQTT.php");
 
$mqtt = new phpMQTT("localhost", 1883, "ClientID".rand());
 
if(!$mqtt->connect()){
    exit(1);
}
 
$topics['temperature'] = array("qos" => 0, "function" => "procTemperature");
$mqtt->subscribe($topics, 0);
 
while($mqtt->proc()){
}
 
$mqtt->close();
 
function procTemperature($topic, $msg){
    echo "Received temperature: " . $msg . "C" . "
";
 
    // 控制LED灯的代码
 
    // 如果温度大于30°C,开启LED灯
    if($msg > 30){
        echo "Turn on LED" . "
";
    }else{
        echo "Turn off LED" . "
";
    }
}
 
?>
ログイン後にコピー

上記のコードは、phpMQTT クラスを使用して接続し、MQTT 操作を実行します。まず phpMQTT のインスタンスを作成し、MQTT ブローカーのアドレスとポート番号を渡します。次に、connect() メソッドを呼び出して、MQTT ブローカーへの接続を確立します。

サブスクリプション部分では、「温度」という名前のトピックを定義し、コールバック関数 procTemperature を指定します。温度センサーが新しい温度データをリリースすると、コールバック関数 procTemperature が呼び出されます。

コールバック関数では、最初に受信した温度値を出力します。次に、温度値に基づいて LED ライトのオン/オフを制御します。

メイン ループでは、proc() メソッドを使用して、接続が閉じられるまで MQTT メッセージを処理します。

LED ライトのスイッチを制御する命令を送信したい場合は、次のコードを記述できます:

<?php
 
require("phpMQTT.php");
 
$mqtt = new phpMQTT("localhost", 1883, "ClientID".rand());
 
if(!$mqtt->connect()){
    exit(1);
}
 
$topic = "led";
$message = "on";
$mqtt->publish($topic, $message, 0);
 
$mqtt->close();
 
?>
ログイン後にコピー

上記のコードでは、まず phpMQTT のインスタンスを作成し、 MQTT ブローカーとの接続。次に、トピック「led」とメッセージ「on」を指定し、publish() メソッドを使用してメッセージを MQTT ブローカーに送信しました。最後に、MQTT ブローカーへの接続を閉じます。

上記のコード例は、PHP と MQTT を使用してデータ送信とスマート ホーム システムの制御を実装する方法を示しています。 MQTTプロトコルを利用することで、機器間の通信を簡単に実装してスマートホームシステムを構築できます。さらなる拡張と最適化により、より複雑でインテリジェントなホーム制御システムを実現できます。

以上がPHPとMQTT:スマートホームシステムのデータ送信と制御を実現の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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