PHP と MQTT を使用してインテリジェントなトラフィックの監視と制御を実装する実践的な方法
はじめに:
モノのインターネット技術の継続的な発展に伴い、インテリジェントなトラフィックの監視と制御は現代社会において重要なニーズとなっています。 。この記事では、PHP と MQTT テクノロジを使用してインテリジェントなトラフィックの監視と制御の実践的な方法を実装する方法を紹介し、対応するコード例を示します。
1.MQTT とは何ですか?
MQTT (Message Queuing Telemetry Transport) は、限られたネットワーク帯域幅や不安定なネットワーク接続での通信に適した軽量のメッセージ送信プロトコルです。 MQTT は通信のパブリッシュ/サブスクライブ モードを提供します。つまり、メッセージのパブリッシャーがメッセージをブローカーにパブリッシュし、サブスクライバーが関連トピックをサブスクライブすることによってメッセージを受信します。
2. 準備作業:
コードを書き始める前に、いくつかの準備作業を行う必要があります:
sudo apt-get install php7.2-cli php7.2-mbstring php7.2-mysql php7.2-curl php7.2 -xml php7. 2-zip php7.2-mysqli php7.2-mosquitto
sudo apt-get install mosquitto
flow
という名前のテーブルを作成します。フィールド:id
、device_id
、flow_rate
、timestamp
。 3. トラフィック監視:
次のコード例は、PHP を使用してトラフィック データを監視し、データベースに保存する方法を示しています。
<?php require('vendor/autoload.php'); use MosquittoClient; $mqttClient = new Client(); $mqttClient->onConnect(function() use ($mqttClient) { echo "Connected to MQTT broker "; $mqttClient->subscribe('flow-monitor/flow-data', 2); }); $mqttClient->onMessage(function($message) { $data = json_decode($message->payload); // 将数据存储到数据库中 $conn = new mysqli('localhost', 'username', 'password', 'database'); $query = "INSERT INTO flow (device_id, flow_rate, timestamp) VALUES ('$data->device_id', '$data->flow_rate', '$data->timestamp')"; $result = $conn->query($query); echo "Received flow data: device_id=$data->device_id, flow_rate=$data->flow_rate "; }); $mqttClient->connect('localhost', 1883); $mqttClient->loopForever(); ?>
上記のコードでは、MQTT クライアントを作成し、flow-monitor/flow-data
トピックにサブスクライブしました。メッセージが到着すると、受信したデータを JSON 形式に解析し、データベースに保存します。
4. フロー制御:
次のコード例は、PHP を使用してトラフィックを制御し、制御命令を MQTT ブローカーに送信する方法を示しています。
<?php require('vendor/autoload.php'); use MosquittoClient; $mqttClient = new Client(); $mqttClient->onConnect(function() use ($mqttClient) { echo "Connected to MQTT broker "; // 向broker订阅控制指令的主题 $mqttClient->subscribe('flow-control/commands', 2); }); $mqttClient->onMessage(function($message) use ($mqttClient) { $command = $message->payload; // 根据收到的指令进行相应的流量控制 switch ($command) { case 'start': echo "Starting flow "; // 执行流量控制的相关代码 break; case 'stop': echo "Stopping flow "; // 执行流量控制的相关代码 break; default: echo "Invalid command "; break; } }); $mqttClient->connect('localhost', 1883); $mqttClient->loopForever(); ?>
上記のコードでは、別の MQTT クライアントを作成し、flow-control/commands
トピックにサブスクライブしました。制御命令が到着すると、さまざまな命令に従って対応するフロー制御操作を実行します。
結論:
この記事では、PHP と MQTT を使用してインテリジェントなトラフィックの監視と制御を実装する方法を例とともに紹介します。 MQTT 通信プロトコルと関連する PHP コードを使用することで、インテリジェントなトラフィック監視および制御システムを実現でき、現代社会のトラフィック管理に重要な助けとなります。
参照:
以上がPHP と MQTT を使用したインテリジェントなトラフィックの監視と制御への実践的なアプローチの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。