PHP 및 MQTT를 사용한 실시간 데이터 시각화 모범 사례
소개:
IoT 기술의 지속적인 발전으로 다양한 센서 데이터를 쉽게 수집할 수 있습니다. 이 데이터를 실시간으로 시각화하는 방법은 중요한 과제입니다. 이 기사에서는 실시간 데이터 시각화를 달성하기 위해 PHP 및 MQTT 프로토콜을 사용하는 방법에 대한 모범 사례를 소개합니다.
1. MQTT 프로토콜이란 무엇입니까?
MQTT는 IoT 장치 간의 통신에 사용되는 경량 통신 프로토콜입니다. 간단하고 가벼우며 오픈 소스이므로 IoT 애플리케이션에 매우 적합합니다.
2. PHP와 MQTT를 선택하는 이유는 무엇인가요?
3. 실시간 데이터 시각화를 위한 모범 사례
실시간 데이터 시각화를 구현하는 과정에서는 다음 단계를 수행해야 합니다.
환경 준비
먼저 MQTT를 설치해야 합니다. Mosquitto와 같은 서버의 서버. 그런 다음 Mosquitto-PHP와 같은 PHP용 MQTT 클라이언트 라이브러리를 설치해야 합니다. 다음 명령을 실행하여 설치할 수 있습니다.
sudo apt-get install mosquitto mosquitto-clients sudo apt-get install php-pear sudo apt-get install php-dev sudo pecl install Mosquitto-alpha sudo echo "extension=mosquitto.so" > /etc/php/7.2/cli/conf.d/20-mosquitto.ini
MQTT 클라이언트 생성
다음으로 MQTT 서버와 통신하기 위해 MQTT 클라이언트를 생성해야 합니다. Mosquitto-PHP 라이브러리를 사용하여 클라이언트를 만들 수 있습니다. 샘플 코드는 다음과 같습니다.
<?php $mqtt = new MosquittoClient(); $mqtt->onConnect('connectHandler'); $mqtt->onMessage('messageHandler'); $mqtt->connect('mqtt.example.com', 1883, 60); // 连接到MQTT服务器 function connectHandler($r) { // 连接成功后的处理逻辑 } function messageHandler($m) { // 接收到消息后的处理逻辑 } $mqtt->loopForever(); //开启循环监听
데이터 게시
데이터를 게시해야 하는 경우 다음 코드를 사용하여 데이터를 게시할 수 있습니다.
$mqtt->publish('topic', 'message', 2, false); // 发布消息
데이터 구독
데이터를 구독해야 하는 경우 다음을 수행할 수 있습니다. 데이터를 구독하려면 다음 코드를 사용하세요.
$mqtt->subscribe('topic', 2); // 订阅消息
4. 예시 시연
간단한 실시간 온도 모니터링 시스템을 구현해 보겠습니다. 먼저 센서 장치와 같은 데이터를 게시하는 클라이언트를 만듭니다.
$mqtt = new MosquittoClient(); $mqtt->connect('mqtt.example.com', 1883, 60); while (true) { $temperature = getTemperature(); // 获取温度数据 $mqtt->publish('temperature', $temperature, 2, false); sleep(1); // 每隔1秒发布一次数据 }
그런 다음 실시간 온도 데이터를 수신하고 표시하기 위해 데이터를 구독하는 클라이언트를 만듭니다.
$mqtt = new MosquittoClient(); $mqtt->connect('mqtt.example.com', 1883, 60); $mqtt->subscribe('temperature', 2); $mqtt->onMessage(function ($message){ $temperature = $message->payload; echo '当前温度:' . $temperature . '℃'; }); $mqtt->loopForever();
마지막으로 Highcharts를 사용하여 실제 온도를 구현합니다. -시간 온도 시각화. 먼저 Highcharts 라이브러리를 도입한 다음 온도 차트를 만들고 데이터를 받은 후 차트를 업데이트해야 합니다.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="https://code.highcharts.com/highcharts.js"></script> <script src="https://code.highcharts.com/modules/exporting.js"></script> </head> <body> <div id="container"></div> <script> var chart = Highcharts.chart('container', { title: { text: '实时温度监控' }, series: [{ name: 'Temperature', data: [] }] }); var topic = 'temperature'; var client = new Paho.MQTT.Client("mqtt.example.com", 1883, "clientId"); client.onConnectionLost = function (responseObject) { if (responseObject.errorCode !== 0) { console.log("连接丢失: " + responseObject.errorMessage); } }; client.onMessageArrived = function (message) { var temperature = parseFloat(message.payloadString); chart.series[0].addPoint(temperature); }; client.connect({ onSuccess: function () { client.subscribe(topic); } }); </script> </body> </html>
결론:
PHP 및 MQTT 프로토콜을 사용하면 실시간 데이터 시각화를 달성할 수 있습니다. 실제로 우리는 보다 풍부한 데이터 시각화 효과를 얻기 위해 특정 요구 사항에 따라 PHP 및 MQTT에서 제공하는 기능과 기능을 유연하게 사용할 수 있습니다.
위 내용은 PHP 및 MQTT를 사용한 실시간 데이터 시각화 모범 사례의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!