Heim > Artikel > Backend-Entwicklung > Technischer Leitfaden zur Fernsteuerung der Beleuchtung mit PHP und MQTT
Technischer Leitfaden zur Fernsteuerung von Licht mit PHP und MQTT
Einführung:
Mit der kontinuierlichen Entwicklung des Internets der Dinge werden Fernsteuerungsgeräte immer häufiger eingesetzt. Zu den Anwendungen gehört auch die Fernsteuerung der Beleuchtung, die mit PHP und MQTT problemlos realisiert werden kann. In diesem Artikel wird die Verwendung von PHP und MQTT zur Implementierung einer Fernsteuerung der Beleuchtung vorgestellt und Codebeispiele als Referenz für die Leser bereitgestellt.
1. Vorbereitung
Datenbanktabelle erstellen
Erstellen Sie eine Datenbanktabelle zum Speichern von Lichtstatusinformationen. Sie können MySQL oder andere Datenbankverwaltungssysteme zum Erstellen von Tabellen verwenden. Die Tabellenstruktur ist wie folgt:
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;
Installieren Sie die MQTT-Clientbibliothek
Die Verwendung von MQTT in PHP erfordert die Verwendung der MQTT-Clientbibliothek. Die MQTT-Clientbibliothek kann mit dem Mosquito-Paket installiert werden. Das Mosquito-Paket kann mit dem folgenden Befehl installiert werden:
sudo apt-get install mosquitto sudo apt-get install php-mosquitto
Nachdem die Installation abgeschlossen ist, können Sie überprüfen, ob die Mosquito-Erweiterung erfolgreich installiert wurde, indem Sie php -m
ausführen. 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
Zuerst müssen Sie PHP-Code schreiben, um eine Fernsteuerung der Beleuchtung zu erreichen.
MosquittoClient
verwenden, um eine Verbindung zum MQTT-Server herzustellen. Der Code lautet wie folgt: $client->onMessage(function($message) use ($client){ $payload = $message->payload; list($command, $lightId) = explode('/', $message->topic); // 更新数据库中的灯光状态 // ... // 发布当前状态给订阅者 $client->publish("light_status/$lightId", $payload, 1); });Abonnieren Sie das MQTT-Thema
Als nächstes müssen Sie das MQTT-Thema abonnieren, um Fernbedienungsanweisungen zu erhalten. Sie können die Methode onMessage
von MosquittoClient
verwenden, um die empfangene Nachricht zu verarbeiten. Der Code lautet wie folgt:
if ($_SERVER['REQUEST_METHOD'] === 'GET' && isset($_GET['lightId']) && isset($_GET['status'])) { $lightId = $_GET['lightId']; $status = $_GET['status']; // 更新数据库中的灯光状态 // ... // 发布状态给订阅者 $client->publish("light_status/$lightId", $status, 1); }🎜🎜🎜Verarbeitung der empfangenen Nachricht🎜In der Callback-Funktion
onMessage
kann die empfangene Nachricht verarbeitet werden. In diesem Beispiel aktualisieren wir den Lichtstatus in der Datenbank und veröffentlichen den aktuellen Status für Abonnenten. Der Code lautet wie folgt: 🎜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); } ?>🎜🎜🎜Kontrollieren Sie den Lichtstatus🎜Schließlich müssen Sie eine Schnittstelle bereitstellen, die den Lichtstatus steuern kann. In diesem Beispiel verwenden wir GET-Anfragen, um den Lichtstatus zu steuern. Der Code sieht so aus: 🎜rrreee🎜Das vollständige PHP-Codebeispiel finden Sie im Anhang dieses Artikels. 🎜🎜🎜🎜3. Zusammenfassung🎜🎜In diesem Artikel wird die Verwendung von PHP und MQTT zur Fernsteuerung der Beleuchtung vorgestellt. Zunächst müssen Sie den MQTT-Server installieren und die entsprechende Datenbanktabelle erstellen. Schreiben Sie dann PHP-Code, um eine Verbindung zum MQTT-Server herzustellen, das MQTT-Thema zu abonnieren, die empfangenen Nachrichten zu verarbeiten und eine Schnittstelle zur Steuerung des Lichtstatus bereitzustellen. Ich hoffe, dieser Artikel kann den Lesern hilfreich sein. 🎜🎜Anhang: Vollständiges PHP-Codebeispiel🎜rrreee
Das obige ist der detaillierte Inhalt vonTechnischer Leitfaden zur Fernsteuerung der Beleuchtung mit PHP und MQTT. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!