Heim >Backend-Entwicklung >PHP-Tutorial >Ein praktischer Ansatz zur intelligenten Verkehrsüberwachung und -steuerung mithilfe von PHP und MQTT
Eine praktische Methode zur Implementierung einer intelligenten Verkehrsüberwachung und -steuerung mithilfe von PHP und MQTT.
Einführung:
Mit der kontinuierlichen Entwicklung der IoT-Technologie ist die intelligente Verkehrsüberwachung und -steuerung zu einem wichtigen Bedürfnis in der modernen Gesellschaft geworden. In diesem Artikel wird die Verwendung der PHP- und MQTT-Technologie zur Implementierung praktischer Methoden zur intelligenten Verkehrsüberwachung und -steuerung vorgestellt und entsprechende Codebeispiele bereitgestellt.
1. Was ist MQTT?
MQTT (Message Queuing Telemetry Transport) ist ein leichtes Nachrichtenübertragungsprotokoll, das für die Kommunikation über begrenzte Netzwerkbandbreite und instabile Netzwerkverbindungen geeignet ist. MQTT bietet einen Publish/Subscribe-Kommunikationsmodus, d. h. der Herausgeber der Nachricht veröffentlicht die Nachricht an einen Broker und der Abonnent empfängt die Nachricht dann, indem er das relevante Thema abonniert.
2. Vorbereitungsarbeiten:
Bevor wir mit dem Schreiben von Code beginnen, müssen wir einige Vorbereitungsarbeiten durchführen:
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
Sie können Mosquitto als MQTT-Broker installieren. Führen Sie den folgenden Befehl aus, um Mosquitto zu installieren: sudo apt-get install mosquitto
Datenbank und Tabellen erstellen:
Erstellen Sie eine MySQL-Datenbank und erstellen Sie eine Tabelle mit dem Namenflow
mit den folgenden Feldern: id
, device_id
, flow_rate
, Zeitstempel
. flow-monitor/flow-data
abonniert. Wenn eine Nachricht eintrifft, analysieren wir die empfangenen Daten in das JSON-Format und speichern die Daten in der Datenbank. 🎜🎜4. Flusskontrolle: 🎜Das folgende Codebeispiel zeigt, wie PHP zur Flusskontrolle und zum Senden von Kontrollanweisungen an den MQTT-Broker verwendet wird. 🎜rrreee🎜Im obigen Code haben wir einen weiteren MQTT-Client erstellt und das Thema flow-control/commands
abonniert. Wenn eine Steueranweisung eintrifft, führen wir entsprechende Flusskontrolloperationen gemäß verschiedenen Anweisungen durch. 🎜🎜Fazit: 🎜Dieser Artikel stellt anhand von Beispielen vor, wie man mit PHP und MQTT eine intelligente Verkehrsüberwachung und -steuerung implementiert. Durch die Verwendung des MQTT-Kommunikationsprotokolls und des zugehörigen PHP-Codes kann ein intelligentes Verkehrsüberwachungs- und -steuerungssystem realisiert werden, das eine wichtige Hilfe für das Verkehrsmanagement in der modernen Gesellschaft darstellt. 🎜🎜Referenz: 🎜🎜🎜MQTT Version 3.1.1. Abgerufen von http://docs.oasis-open.org/mqtt/v3.1.1 .html🎜🎜Das obige ist der detaillierte Inhalt vonEin praktischer Ansatz zur intelligenten Verkehrsüberwachung und -steuerung mithilfe von PHP und MQTT. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!