Satu kaedah praktikal untuk melaksanakan pemantauan dan kawalan trafik pintar menggunakan PHP dan MQTT
Pengenalan:
Dengan pembangunan berterusan teknologi IoT, pemantauan dan kawalan trafik pintar telah menjadi keperluan penting dalam masyarakat moden. Artikel ini akan memperkenalkan cara menggunakan teknologi PHP dan MQTT untuk melaksanakan kaedah praktikal pemantauan dan kawalan trafik pintar, serta menyediakan contoh kod yang sepadan.
1. Apakah itu MQTT?
MQTT (Message Qeuing Telemetry Transport) ialah protokol penghantaran mesej ringan yang sesuai untuk komunikasi melalui lebar jalur rangkaian terhad dan sambungan rangkaian yang tidak stabil. MQTT menyediakan mod komunikasi terbitkan/langgan, iaitu penerbit mesej menerbitkan mesej kepada broker, dan kemudian pelanggan menerima mesej dengan melanggan topik yang berkaitan.
2. Kerja penyediaan:
Sebelum kita mula menulis kod, kita perlu melakukan beberapa kerja penyediaan:
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
。三、流量监控:
下面的代码示例演示了如何使用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格式,并将数据存储到数据库中。
四、流量控制:
下面的代码示例演示了如何使用PHP来控制流量,并向MQTT broker发送控制指令。
<?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
Anda boleh memilih untuk memasang Mosquitto sebagai broker MQTT, jalankan arahan berikut untuk memasang Mosquitto: sudo apt-get install mosquitto
Buat pangkalan data dan jadual:
Buat pangkalan data MySQL, Dan buat jadual bernamaflow
dengan medan berikut: id
, device_id
, flow_rate
, cap masa
. flow-monitor/flow-data
. Apabila mesej tiba, kami menghuraikan data yang diterima ke dalam format JSON dan menyimpan data ke dalam pangkalan data. 🎜🎜4. Kawalan aliran: 🎜Contoh kod berikut menunjukkan cara menggunakan PHP untuk mengawal aliran dan menghantar arahan kawalan kepada broker MQTT. 🎜rrreee🎜Dalam kod di atas, kami mencipta klien MQTT yang lain dan melanggan topik flow-control/commands
. Apabila arahan kawalan tiba, kami melaksanakan operasi kawalan aliran yang sepadan mengikut arahan yang berbeza. 🎜🎜Kesimpulan: 🎜Artikel ini memperkenalkan dengan contoh cara menggunakan PHP dan MQTT untuk melaksanakan pemantauan dan kawalan trafik pintar. Dengan menggunakan protokol komunikasi MQTT dan kod PHP yang berkaitan, sistem pemantauan dan kawalan trafik pintar boleh direalisasikan, memberikan bantuan penting untuk pengurusan trafik dalam masyarakat moden. 🎜🎜Rujukan: 🎜🎜🎜MQTT.org (2022 Versi 3.1.1 .html🎜🎜Atas ialah kandungan terperinci Pendekatan praktikal untuk pemantauan dan kawalan trafik pintar menggunakan PHP dan MQTT. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!