Technischer Leitfaden zur Fernsteuerung der Beleuchtung mit PHP und MQTT

PHPz
Freigeben: 2023-07-10 09:56:01
Original
1398 Leute haben es durchsucht

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

  1. Installieren Sie den MQTT-Server
    Zunächst müssen Sie den MQTT-Server installieren. Zu den häufig verwendeten MQTT-Servern gehören Mosquitto und RabbitMQ. Sie können den geeigneten MQTT-Server für die Installation entsprechend Ihren eigenen Anforderungen auswählen und sicherstellen, dass der Server normal ausgeführt werden kann.
  2. 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;
    Nach dem Login kopieren
  3. 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
    Nach dem Login kopieren

    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代码来实现远程灯光控制。

  1. 连接MQTT服务器
    首先,需要引入MQTT客户端库,并使用MosquittoClient来连接MQTT服务器。代码如下所示:

    $client = new MosquittoClient();
    $client->connect('127.0.0.1', 1883, 60);
    Nach dem Login kopieren
  2. 订阅MQTT主题
    接下来,需要订阅MQTT主题以接收远程控制指令。可以使用MosquittoClientonMessage方法来处理收到的消息。代码如下所示:

    $client->onMessage(function($message){
      // 处理收到的消息
    });
    
    $client->subscribe('light_control/#', 1);
    Nach dem Login kopieren
  3. 处理收到的消息
    onMessage

  4. 2. PHP-Code schreiben


    Zuerst müssen Sie PHP-Code schreiben, um eine Fernsteuerung der Beleuchtung zu erreichen.

  5. Mit MQTT-Server verbinden
Zuerst müssen Sie die MQTT-Client-Bibliothek vorstellen und 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);
});
Nach dem Login kopieren

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);
}
Nach dem Login kopieren
🎜🎜🎜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);
}
?>
Nach dem Login kopieren
🎜🎜🎜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!

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