Rumah >pembangunan bahagian belakang >tutorial php >Amalan terbaik untuk visualisasi data masa nyata menggunakan PHP dan MQTT
Amalan terbaik untuk visualisasi data masa nyata menggunakan PHP dan MQTT
Pengenalan:
Dengan pembangunan berterusan teknologi IoT, kami dapat mengumpul pelbagai data sensor dengan mudah. Cara untuk menggambarkan data ini dalam masa nyata adalah cabaran penting. Artikel ini akan memperkenalkan amalan terbaik tentang cara menggunakan protokol PHP dan MQTT untuk mencapai visualisasi data masa nyata.
1. Apakah itu protokol MQTT?
MQTT ialah protokol komunikasi ringan yang digunakan untuk komunikasi antara peranti IoT. Ia ringkas, ringan dan sumber terbuka, menjadikannya sangat sesuai untuk aplikasi IoT.
2 Mengapa memilih PHP dan MQTT?
3. Amalan terbaik untuk visualisasi data masa nyata
Dalam proses merealisasikan visualisasi data masa nyata, kita perlu menjalankan langkah berikut:
Sediakan persekitaran
Pertama, kita perlu memasang MQTT pelayan pada pelayan, seperti Mosquitto . Kemudian, kita perlu memasang perpustakaan klien MQTT untuk PHP, seperti Mosquitto-PHP. Ia boleh dipasang dengan menjalankan arahan berikut:
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
Buat Klien MQTT
Seterusnya, kita perlu mencipta klien MQTT untuk berkomunikasi dengan pelayan MQTT. Kami boleh menggunakan perpustakaan Mosquitto-PHP untuk mencipta klien. Kod sampel adalah seperti berikut:
<?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(); //开启循环监听
Terbitkan data
Di mana kita perlu menerbitkan data, kita boleh menggunakan kod berikut untuk menerbitkan data:
$mqtt->publish('topic', 'message', 2, false); // 发布消息
Langgan data
Di mana kita perlu melanggan data, kita boleh gunakan kod berikut untuk melanggan Data:
$mqtt->subscribe('topic', 2); // 订阅消息
4. Contoh Demonstrasi
Mari kita laksanakan sistem pemantauan suhu masa nyata yang mudah. Pertama, kami mencipta pelanggan yang menerbitkan data, seperti peranti penderia:
$mqtt = new MosquittoClient(); $mqtt->connect('mqtt.example.com', 1883, 60); while (true) { $temperature = getTemperature(); // 获取温度数据 $mqtt->publish('temperature', $temperature, 2, false); sleep(1); // 每隔1秒发布一次数据 }
Kemudian, kami mencipta pelanggan yang melanggan data untuk menerima dan memaparkan data suhu masa nyata:
$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();
Akhir sekali, kami menggunakan Highcharts untuk melaksanakan sebenar - Visualisasi suhu masa. Mula-mula, kita perlu memperkenalkan perpustakaan Highcharts, kemudian buat carta suhu dan kemas kini carta selepas menerima data:
<!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>
Kesimpulan:
Dengan protokol PHP dan MQTT, kita boleh mencapai visualisasi data masa nyata. Dalam amalan, kami boleh menggunakan fungsi dan ciri yang disediakan oleh PHP dan MQTT secara fleksibel mengikut keperluan khusus untuk mencapai kesan visualisasi data yang lebih kaya.
Atas ialah kandungan terperinci Amalan terbaik untuk visualisasi data masa nyata menggunakan PHP dan MQTT. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!