ホームページ >バックエンド開発 >PHPチュートリアル >PHPとMQTT:スマートホームシステムのデータ送信と制御を実現
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 サイトの他の関連記事を参照してください。