ホームページ  >  記事  >  バックエンド開発  >  PHP と MQTT を使用したインテリジェントなトラフィックの監視と制御への実践的なアプローチ

PHP と MQTT を使用したインテリジェントなトラフィックの監視と制御への実践的なアプローチ

WBOY
WBOYオリジナル
2023-07-09 18:40:451111ブラウズ

PHP と MQTT を使用してインテリジェントなトラフィックの監視と制御を実装する実践的な方法

はじめに:
モノのインターネット技術の継続的な発展に伴い、インテリジェントなトラフィックの監視と制御は現代社会において重要なニーズとなっています。 。この記事では、PHP と MQTT テクノロジを使用してインテリジェントなトラフィックの監視と制御の実践的な方法を実装する方法を紹介し、対応するコード例を示します。

1.MQTT とは何ですか?
MQTT (Message Queuing Telemetry Transport) は、限られたネットワーク帯域幅や不安定なネットワーク接続での通信に適した軽量のメッセージ送信プロトコルです。 MQTT は通信のパブリッシュ/サブスクライブ モードを提供します。つまり、メッセージのパブリッシャーがメッセージをブローカーにパブリッシュし、サブスクライバーが関連トピックをサブスクライブすることによってメッセージを受信します。

2. 準備作業:
コードを書き始める前に、いくつかの準備作業を行う必要があります:

  1. PHP および MQTT 拡張機能をインストールします:
    ターミナルを開くか、コマンド ライン ウィンドウで、次のコマンドを実行して PHP および MQTT 拡張機能をインストールします。
    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
  2. MQTT ブローカーのインストール:
    Mosquitto を MQTT ブローカーとしてインストールすることを選択でき、次のコマンドを実行してインストールします。 Mosquitto:
    sudo apt-get install mosquitto
  3. データベースとテーブルの作成:
    MySQL データベースを作成し、次の内容で flow という名前のテーブルを作成します。フィールド:iddevice_idflow_ratetimestamp

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 コードを使用することで、インテリジェントなトラフィック監視および制御システムを実現でき、現代社会のトラフィック管理に重要な助けとなります。

参照:

  • MQTT.org. (2022). MQTT バージョン 3.1.1. ドキュメント. http://docs.oasis-open.org/mqtt/mqtt から取得/v3.1.1/mqtt-v3.1.1.html

以上がPHP と MQTT を使用したインテリジェントなトラフィックの監視と制御への実践的なアプローチの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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