Maison > Article > développement back-end > Meilleures pratiques pour la visualisation de données en temps réel à l'aide de PHP et MQTT
Meilleures pratiques pour la visualisation de données en temps réel à l'aide de PHP et MQTT
Introduction :
Grâce au développement continu de la technologie IoT, nous sommes en mesure de collecter facilement diverses données de capteurs. Comment visualiser ces données en temps réel est un défi important. Cet article présentera les meilleures pratiques sur la façon d'utiliser les protocoles PHP et MQTT pour réaliser une visualisation des données en temps réel.
1. Qu'est-ce que le protocole MQTT ?
MQTT est un protocole de communication léger utilisé pour la communication entre les appareils IoT. Il est simple, léger et open source, ce qui le rend très adapté aux applications IoT.
2. Pourquoi choisir PHP et MQTT ?
3. Meilleures pratiques pour la visualisation des données en temps réel
Dans le processus de réalisation de la visualisation des données en temps réel, nous devons effectuer les étapes suivantes :
Préparer l'environnement
Tout d'abord, nous devons installer un MQTT serveur sur le serveur, tel que Mosquitto . Ensuite, nous devons installer la bibliothèque client MQTT pour PHP, telle que Mosquitto-PHP. Il peut être installé en exécutant la commande suivante :
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
Créer un client MQTT
Ensuite, nous devons créer un client MQTT pour communiquer avec le serveur MQTT. Nous pouvons utiliser la bibliothèque Mosquitto-PHP pour créer le client. L'exemple de code est le suivant :
<?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(); //开启循环监听
Publier des données
Là où nous devons publier des données, nous pouvons utiliser le code suivant pour publier des données :
$mqtt->publish('topic', 'message', 2, false); // 发布消息
S'abonner aux données
Lorsque nous devons nous abonner aux données, nous peut utiliser le code suivant pour s'abonner aux données :
$mqtt->subscribe('topic', 2); // 订阅消息
4. Exemple de démonstration
Implémentons un système simple de surveillance de la température en temps réel. Tout d'abord, nous créons un client qui publie des données, tel qu'un capteur :
$mqtt = new MosquittoClient(); $mqtt->connect('mqtt.example.com', 1883, 60); while (true) { $temperature = getTemperature(); // 获取温度数据 $mqtt->publish('temperature', $temperature, 2, false); sleep(1); // 每隔1秒发布一次数据 }
Ensuite, nous créons un client qui s'abonne aux données pour recevoir et afficher des données de température en temps réel :
$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();
Enfin, nous utilisons Highcharts pour implémenter de vrais -Visualisation de la température en temps. Tout d'abord, nous devons introduire la bibliothèque Highcharts, puis créer le graphique de température et mettre à jour le graphique après avoir reçu les données :
<!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>
Conclusion :
Avec les protocoles PHP et MQTT, nous pouvons réaliser une visualisation des données en temps réel. Dans la pratique, nous pouvons utiliser de manière flexible les fonctions et fonctionnalités fournies par PHP et MQTT en fonction de besoins spécifiques pour obtenir des effets de visualisation de données plus riches.
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!