Maison > Article > développement back-end > Une approche pratique de la surveillance et du contrôle intelligents du trafic à l'aide de PHP et MQTT
Une méthode pratique pour mettre en œuvre une surveillance et un contrôle intelligents du trafic à l'aide de PHP et MQTT
Introduction :
Avec le développement continu de la technologie IoT, la surveillance et le contrôle intelligents du trafic sont devenus un besoin important dans la société moderne. Cet article présentera comment utiliser les technologies PHP et MQTT pour mettre en œuvre des méthodes pratiques de surveillance et de contrôle intelligents du trafic, et fournira des exemples de code correspondants.
1. Qu'est-ce que MQTT ?
MQTT (Message Queuing Telemetry Transport) est un protocole de transmission de messages léger adapté à la communication sur une bande passante réseau limitée et des connexions réseau instables. MQTT fournit un mode de communication publication/abonnement, c'est-à-dire que l'éditeur du message publie le message auprès d'un courtier, puis l'abonné reçoit le message en s'abonnant au sujet concerné.
2. Travail de préparation :
Avant de commencer à écrire du code, nous devons effectuer un travail de préparation :
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 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
Vous pouvez choisir d'installer Mosquitto en tant que courtier MQTT, exécutez la commande suivante pour installer Mosquitto : sudo apt-get install mosquitto
Créer une base de données et des tables :
Créez une base de données MySQL, et créez une table nomméeflow
avec les champs suivants : id
, device_id
, flow_rate
, horodatage
. flow-monitor/flow-data
. Lorsqu'un message arrive, nous analysons les données reçues au format JSON et stockons les données dans la base de données. 🎜🎜4. Contrôle de flux : 🎜L'exemple de code suivant montre comment utiliser PHP pour contrôler le flux et envoyer des instructions de contrôle au courtier MQTT. 🎜rrreee🎜Dans le code ci-dessus, nous avons créé un autre client MQTT et nous sommes abonnés à la rubrique flow-control/commands
. Lorsqu'une instruction de contrôle arrive, nous effectuons les opérations de contrôle de flux correspondantes selon différentes instructions. 🎜🎜Conclusion : 🎜Cet article présente, avec des exemples, comment utiliser PHP et MQTT pour mettre en œuvre une surveillance et un contrôle intelligents du trafic. En utilisant le protocole de communication MQTT et le code PHP associé, un système intelligent de surveillance et de contrôle du trafic peut être réalisé, fournissant une aide importante pour la gestion du trafic dans la société moderne. 🎜🎜Référence : 🎜🎜🎜MQTT.org (2022). Document MQTT version 3.1.1 Extrait de http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/mqtt-v3. .html🎜🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!