Rumah > Artikel > pembangunan bahagian belakang > Panduan teknikal untuk kawalan lampu jauh menggunakan PHP dan MQTT
Panduan Teknikal untuk Kawalan Lampu Jauh Menggunakan PHP dan MQTT
Pengenalan:
Dengan pembangunan berterusan Internet of Things, peranti kawalan jauh menjadi semakin biasa. Kawalan lampu jauh juga merupakan salah satu aplikasi, dan fungsi ini boleh dicapai dengan mudah menggunakan PHP dan MQTT. Artikel ini akan memperkenalkan cara menggunakan PHP dan MQTT untuk melaksanakan kawalan lampu jauh dan menyediakan contoh kod untuk rujukan pembaca.
1. Persediaan
Buat jadual pangkalan data
Buat jadual pangkalan data untuk menyimpan maklumat status ringan. Anda boleh menggunakan MySQL atau sistem pengurusan pangkalan data lain untuk mencipta jadual, dan struktur jadual adalah seperti berikut:
CREATE TABLE `lights` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `name` VARCHAR(50) NOT NULL, `status` ENUM('off', 'on') NOT NULL DEFAULT 'off', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Pasang perpustakaan klien MQTT
Menggunakan MQTT dalam PHP memerlukan penggunaan perpustakaan klien MQTT. Pustaka klien MQTT boleh dipasang menggunakan pakej nyamuk. Pakej mosquitto boleh dipasang menggunakan arahan berikut:
sudo apt-get install mosquitto sudo apt-get install php-mosquitto
Selepas pemasangan selesai, anda boleh mengesahkan sama ada sambungan nyamuk berjaya dipasang dengan menjalankan php -m | grep mosquitto
. php -m | grep mosquitto
来验证mosquitto扩展是否安装成功。
二、编写PHP代码
首先,需要编写PHP代码来实现远程灯光控制。
连接MQTT服务器
首先,需要引入MQTT客户端库,并使用MosquittoClient
来连接MQTT服务器。代码如下所示:
$client = new MosquittoClient(); $client->connect('127.0.0.1', 1883, 60);
订阅MQTT主题
接下来,需要订阅MQTT主题以接收远程控制指令。可以使用MosquittoClient
的onMessage
方法来处理收到的消息。代码如下所示:
$client->onMessage(function($message){ // 处理收到的消息 }); $client->subscribe('light_control/#', 1);
处理收到的消息
在onMessage
Pertama, anda perlu menulis kod PHP untuk mencapai kawalan pencahayaan jauh.
MosquittoClient
untuk menyambung ke pelayan MQTT. Kodnya adalah seperti berikut: $client->onMessage(function($message) use ($client){ $payload = $message->payload; list($command, $lightId) = explode('/', $message->topic); // 更新数据库中的灯光状态 // ... // 发布当前状态给订阅者 $client->publish("light_status/$lightId", $payload, 1); });Langgan topik MQTT
Seterusnya, anda perlu melanggan topik MQTT untuk menerima arahan alat kawalan jauh. Anda boleh menggunakan kaedah onMessage
MosquittoClient
untuk mengendalikan mesej yang diterima. Kodnya adalah seperti berikut:
if ($_SERVER['REQUEST_METHOD'] === 'GET' && isset($_GET['lightId']) && isset($_GET['status'])) { $lightId = $_GET['lightId']; $status = $_GET['status']; // 更新数据库中的灯光状态 // ... // 发布状态给订阅者 $client->publish("light_status/$lightId", $status, 1); }🎜🎜🎜Memproses mesej yang diterima🎜Dalam fungsi panggil balik
onMessage
, mesej yang diterima boleh diproses. Dalam contoh ini, kami akan mengemas kini status cahaya dalam pangkalan data dan menerbitkan status semasa kepada pelanggan. Kodnya adalah seperti berikut: 🎜connect('127.0.0.1', 1883, 60); $client->onMessage(function($message) use ($client){ $payload = $message->payload; list($command, $lightId) = explode('/', $message->topic); // 更新数据库中的灯光状态 // ... // 发布当前状态给订阅者 $client->publish("light_status/$lightId", $payload, 1); }); $client->subscribe('light_control/#', 1); if ($_SERVER['REQUEST_METHOD'] === 'GET' && isset($_GET['lightId']) && isset($_GET['status'])) { $lightId = $_GET['lightId']; $status = $_GET['status']; // 更新数据库中的灯光状态 // ... // 发布状态给订阅者 $client->publish("light_status/$lightId", $status, 1); } while (true) { $client->loop(); sleep(1); } ?>🎜🎜🎜Kawal status cahaya🎜Akhir sekali, anda perlu menyediakan antara muka yang boleh mengawal status cahaya. Dalam contoh ini, kami akan menggunakan permintaan GET untuk mengawal status cahaya. Kodnya kelihatan seperti ini: 🎜rrreee🎜Contoh kod PHP lengkap boleh didapati dalam lampiran artikel ini. 🎜🎜🎜🎜3. Ringkasan🎜🎜Artikel ini memperkenalkan cara menggunakan PHP dan MQTT untuk mencapai kawalan pencahayaan jauh. Mula-mula anda perlu memasang pelayan MQTT dan mencipta jadual pangkalan data yang sepadan. Kemudian, tulis kod PHP untuk menyambung ke pelayan MQTT, langgan topik MQTT, proses mesej yang diterima dan sediakan antara muka untuk mengawal status cahaya. Semoga artikel ini dapat memberi manfaat kepada pembaca. 🎜🎜Lampiran: Contoh kod PHP lengkap🎜rrreee
Atas ialah kandungan terperinci Panduan teknikal untuk kawalan lampu jauh menggunakan PHP dan MQTT. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!