Rumah  >  Artikel  >  pembangunan bahagian belakang  >  PHP dan MQTT: Membina sistem pemantauan alam sekitar masa nyata berdasarkan Internet of Things

PHP dan MQTT: Membina sistem pemantauan alam sekitar masa nyata berdasarkan Internet of Things

WBOY
WBOYasal
2023-07-09 09:01:441370semak imbas

PHP dan MQTT: Bina sistem pemantauan alam sekitar masa nyata berdasarkan Internet of Things

Dengan perkembangan pesat teknologi Internet of Things, semakin banyak peranti boleh disambungkan. Dalam era ini, kita boleh memantau pelbagai parameter persekitaran dengan mudah seperti suhu, kelembapan, tekanan udara dan sebagainya melalui penderia. Walau bagaimanapun, cara mendapatkan dan memproses data ini dalam masa nyata menjadi isu penting. Artikel ini akan memperkenalkan cara menggunakan PHP dan MQTT untuk membina sistem pemantauan alam sekitar masa nyata berdasarkan Internet of Things.

MQTT (Message Queue Telemetry Transport) ialah protokol komunikasi ringan berdasarkan model terbitan/langgan, yang sangat sesuai untuk komunikasi antara peranti dalam aplikasi Internet of Things. Ia mempunyai kelebihan jalur lebar yang rendah, penggunaan kuasa yang rendah dan jejak memori yang kecil, dan boleh menghantar data dengan cekap.

Pertama, kita perlu membina pelayan proksi MQTT. Pelayan proksi MQTT biasa termasuk Mosquitto, EMQ dan ActiveMQ. Artikel ini mengambil Mosquitto sebagai contoh Memasang Mosquitto di bawah sistem Ubuntu adalah sangat mudah. ​​Hanya jalankan arahan berikut:

sudo apt-get update
sudo apt-get install mosquitto mosquitto-clients

Selepas pemasangan selesai, kita boleh memulakan perkhidmatan Mosquitto melalui arahan berikut:

mosquitto -v

Kemudian, kami. mula menulis kod PHP. Pertama, kita perlu memasang perpustakaan klien MQTT PHP, yang boleh dipasang dengan mudah menggunakan Komposer:

composer require eclipse/paho-mqtt

Dalam PHP, kita perlu memperkenalkan perpustakaan klien MQTT dan mengkonfigurasi maklumat sambungan pelayan mengikut situasi tertentu:

require_once("vendor/autoload.php");

$server = "mqtt.example.com"; // MQTT服务器地址
$port = 1883; // MQTT服务器端口
$username = "your_username"; // MQTT服务器用户名
$password = "your_password"; // MQTT服务器密码
$client_id = "your_client_id"; // 客户端ID,用于区分不同的设备

$client = new EclipseMosquittoClient($client_id); // 创建MQTT客户端实例

// 配置服务器连接信息
$client->setCredentials($username, $password);
$client->connect($server, $port, 60);

// 订阅主题
$client->subscribe("environment/temperature", 1);

// 接收消息
while (true) {
    $client->loop();
}

// 断开连接
$client->disconnect();

Dalam kod di atas, kami mula-mula memperkenalkan perpustakaan klien MQTT dan mencipta contoh klien MQTT. Kami kemudiannya mengkonfigurasi maklumat sambungan pelayan dan menyambung menggunakan nama pengguna dan kata laluan yang disediakan. Seterusnya, kami melanggan topik "persekitaran/suhu" dan menetapkan QoS (Kualiti Perkhidmatan) kepada 1, yang bermaksud bahawa mesej dihantar sekurang-kurangnya sekali. Akhir sekali, kami menggunakan gelung tak terhingga untuk menerima mesej dan memprosesnya jika perlu.

Selain menerima mesej, kami juga boleh menggunakan perpustakaan klien MQTT untuk menerbitkan mesej. Berikut ialah contoh:

require_once("vendor/autoload.php");

$server = "mqtt.example.com"; // MQTT服务器地址
$port = 1883; // MQTT服务器端口
$username = "your_username"; // MQTT服务器用户名
$password = "your_password"; // MQTT服务器密码
$client_id = "your_client_id"; // 客户端ID,用于区分不同的设备

$client = new EclipseMosquittoClient($client_id); // 创建MQTT客户端实例

// 配置服务器连接信息
$client->setCredentials($username, $password);
$client->connect($server, $port, 60);

// 发布消息
$message = "25.5"; // 温度数值
$client->publish("environment/temperature", $message, 1);

// 断开连接
$client->disconnect();

Dalam kod di atas, kami mencipta contoh klien MQTT dan mengkonfigurasi maklumat sambungan pelayan. Kemudian, kami menerbitkan data suhu kepada topik "persekitaran/suhu" menggunakan fungsi publish(). Perlu diingatkan bahawa apabila menerbitkan mesej, QoS mesti dinyatakan sebagai 1 untuk memastikan mesej itu boleh dihantar sekurang-kurangnya sekali.

Dengan contoh kod di atas, kami boleh membina sistem pemantauan alam sekitar masa nyata berdasarkan Internet of Things. Kami boleh menghantar data sensor ke pelayan MQTT, kemudian melanggan topik melalui skrip PHP dan menerima data, dan kemudian memproses dan memaparkannya dengan sewajarnya.

Ringkasnya, menggunakan PHP dan MQTT anda boleh membina sistem pemantauan persekitaran masa nyata dengan cepat berdasarkan Internet of Things. Melalui fleksibiliti protokol MQTT dan kemudahan pembangunan PHP, kami boleh mencapai komunikasi dan pemprosesan data antara peranti dengan mudah. Saya harap artikel ini boleh membawa sedikit inspirasi kepada pembaca dan membantu mereka memperoleh sesuatu dalam pembangunan aplikasi IoT.

Rujukan:

  • Tapak web rasmi MQTT: http://mqtt.org
  • Pustaka klien PHP Eclipse Paho MQTT: https://github.com/eclipse/paho.mqtt.php

Atas ialah kandungan terperinci PHP dan MQTT: Membina sistem pemantauan alam sekitar masa nyata berdasarkan Internet of Things. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn