Best Practices für die Echtzeit-Datenvisualisierung mit PHP und MQTT

PHPz
Freigeben: 2023-07-07 17:56:01
Original
814 Leute haben es durchsucht

Best Practices für die Echtzeit-Datenvisualisierung mit PHP und MQTT

Einführung:
Durch die kontinuierliche Weiterentwicklung der IoT-Technologie sind wir in der Lage, problemlos verschiedene Sensordaten zu erfassen. Die Visualisierung dieser Daten in Echtzeit ist eine große Herausforderung. In diesem Artikel werden die Best Practices für die Verwendung von PHP- und MQTT-Protokollen zur Erzielung einer Echtzeit-Datenvisualisierung vorgestellt.

1. Was ist das MQTT-Protokoll?
MQTT ist ein leichtes Kommunikationsprotokoll, das für die Kommunikation zwischen IoT-Geräten verwendet wird. Es ist einfach, leichtgewichtig und Open Source und eignet sich daher sehr gut für IoT-Anwendungen.

2. Warum PHP und MQTT wählen?

  1. PHP als Skriptsprache ist einfach zu erlernen und zu verwenden.
  2. Das MQTT-Protokoll zeichnet sich durch geringe Bandbreite, geringen Stromverbrauch und hohe Zuverlässigkeit aus und eignet sich daher sehr gut für IoT-Anwendungen.
  3. PHP verfügt über umfangreiche MQTT-Client-Bibliotheken wie Mosquitto, PHPMQTT usw., die problemlos mit MQTT-Servern kommunizieren können.

3. Best Practices für die Echtzeit-Datenvisualisierung
Bei der Realisierung der Echtzeit-Datenvisualisierung müssen wir die folgenden Schritte ausführen:

  1. Vorbereiten der Umgebung
    Zuerst müssen wir ein MQTT installieren Server auf dem Server, z. B. Mosquitto . Anschließend müssen wir die MQTT-Clientbibliothek für PHP installieren, beispielsweise Mosquitto-PHP. Es kann durch Ausführen des folgenden Befehls installiert werden:

    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
    Nach dem Login kopieren
  2. MQTT-Client erstellen
    Als nächstes müssen wir einen MQTT-Client erstellen, um mit dem MQTT-Server zu kommunizieren. Wir können die Mosquitto-PHP-Bibliothek verwenden, um den Client zu erstellen. Der Beispielcode lautet wie folgt:

    <?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(); //开启循环监听
    Nach dem Login kopieren
  3. Daten veröffentlichen
    Wo wir Daten veröffentlichen müssen, können wir den folgenden Code zum Veröffentlichen von Daten verwenden:

    $mqtt->publish('topic', 'message', 2, false); // 发布消息
    Nach dem Login kopieren
  4. Daten abonnieren
    Wo wir Daten abonnieren müssen, wir Sie können den folgenden Code verwenden, um Daten zu abonnieren:

    $mqtt->subscribe('topic', 2); // 订阅消息
    Nach dem Login kopieren
  5. Datenvisualisierung
    Nach Erhalt der Daten können wir die entsprechende Diagrammbibliothek verwenden, um die Daten zu visualisieren. Dies kann mithilfe von Diagrammbibliotheken wie Highcharts und Echarts erreicht werden.

4. Beispieldemonstration
Lassen Sie uns ein einfaches Echtzeit-Temperaturüberwachungssystem implementieren. Zuerst erstellen wir einen Client, der Daten veröffentlicht, beispielsweise ein Sensorgerät:

$mqtt = new MosquittoClient();
$mqtt->connect('mqtt.example.com', 1883, 60);

while (true) {
    $temperature = getTemperature(); // 获取温度数据
    $mqtt->publish('temperature', $temperature, 2, false);
    sleep(1); // 每隔1秒发布一次数据
}
Nach dem Login kopieren

Dann erstellen wir einen Client, der Daten abonniert, um Echtzeit-Temperaturdaten zu empfangen und anzuzeigen:

$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();
Nach dem Login kopieren

Schließlich verwenden wir Highcharts, um real zu implementieren -Zeit-Temperatur-Visualisierung. Zuerst müssen wir die Highcharts-Bibliothek vorstellen, dann das Temperaturdiagramm erstellen und das Diagramm aktualisieren, nachdem wir die Daten erhalten haben:

<!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>
Nach dem Login kopieren

Fazit:
Mit dem PHP- und MQTT-Protokoll können wir eine Datenvisualisierung in Echtzeit erreichen. In der Praxis können wir die von PHP und MQTT bereitgestellten Funktionen und Features je nach spezifischen Anforderungen flexibel nutzen, um umfassendere Datenvisualisierungseffekte zu erzielen.

Das obige ist der detaillierte Inhalt vonBest Practices für die Echtzeit-Datenvisualisierung mit PHP und MQTT. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!