PHP 및 MQTT를 사용하여 지능형 트래픽 모니터링 및 제어를 구현하는 실용적인 방법
소개:
IoT 기술의 지속적인 발전으로 지능형 트래픽 모니터링 및 제어는 현대 사회에서 중요한 요구 사항이 되었습니다. 이 기사에서는 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
。三、流量监控:
下面的代码示例演示了如何使用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
Mosquitto를 MQTT 브로커로 설치하도록 선택할 수 있습니다. 다음 명령을 실행하여 Mosquitto를 설치할 수 있습니다. sudo apt-get install mosquitto
데이터베이스 및 테이블 생성:
MySQL 데이터베이스를 생성하고id
, device_id
, flow_rate
필드를 사용하여 flow
라는 테이블을 생성합니다. , 타임스탬프
. flow-monitor/flow-data
주제를 구독했습니다. 메시지가 도착하면 수신된 데이터를 JSON 형식으로 구문 분석하여 데이터베이스에 저장합니다. 🎜🎜4. 흐름 제어: 🎜다음 코드 예제는 PHP를 사용하여 흐름을 제어하고 MQTT 브로커에 제어 명령을 보내는 방법을 보여줍니다. 🎜rrreee🎜위 코드에서는 또 다른 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. .html🎜🎜위 내용은 PHP 및 MQTT를 사용한 지능형 트래픽 모니터링 및 제어에 대한 실용적인 접근 방식의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!