Meilleures pratiques pour la visualisation de données en temps réel à l'aide de PHP et MQTT

PHPz
Libérer: 2023-07-07 17:56:01
original
868 Les gens l'ont consulté

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 ?

  1. PHP en tant que langage de script est facile à apprendre et à utiliser.
  2. Le protocole MQTT présente les caractéristiques d'une faible bande passante, d'une faible consommation d'énergie et d'une grande fiabilité, ce qui le rend très adapté aux applications IoT.
  3. PHP dispose de riches bibliothèques client MQTT, telles que Mosquitto, PHPMQTT, etc., qui peuvent facilement communiquer avec les serveurs 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 :

  1. 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
    Copier après la connexion
  2. 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(); //开启循环监听
    Copier après la connexion
  3. 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); // 发布消息
    Copier après la connexion
  4. 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); // 订阅消息
    Copier après la connexion
  5. Visualisation des données
    Après avoir reçu les données, nous pouvons utiliser la bibliothèque de graphiques correspondante pour visualiser les données. Ceci peut être réalisé en utilisant des bibliothèques de graphiques telles que Highcharts et Echarts.

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秒发布一次数据
}
Copier après la connexion

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();
Copier après la connexion

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>
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal