Verwenden Sie PHP und MQTT, um den Fernbetrieb und die Steuerung von Geräten zu erreichen
Einführung:
MQTT (Message Queuing Telemetry Transport) ist ein leichtes, offenes Publish/Subscribe-Nachrichtenübertragungsprotokoll, das die Kommunikation und Datenübertragung zwischen Geräten realisieren kann. PHP ist eine beliebte serverseitige Skriptsprache, die in das MQTT-Protokoll integriert werden kann, um die Fernbedienung und -steuerung von Geräten in Webanwendungen zu erleichtern.
In diesem Artikel wird die Verwendung der PHP- und MQTT-Protokolle vorgestellt und der Prozess der Fernbedienung und -steuerung von Geräten anhand von Beispielcode demonstriert.
Schritt 1: MQTT-PHP-Erweiterung installieren
Zuerst müssen Sie die MQTT-PHP-Erweiterung installieren, um das MQTT-Protokoll in PHP verwenden zu können. Es gibt zwei häufig verwendete MQTT-PHP-Erweiterungen: Mosquitto und phpMQTT. In diesem Artikel wird phpMQTT als Beispiel vorgestellt.
Führen Sie den folgenden Befehl im Terminal aus, um die phpMQTT-Erweiterung zu installieren:
composer require bluerhinos/phpmqtt
Schritt 2: Verbindung zum MQTT-Server herstellen
Verwenden Sie die phpMQTT-Erweiterung, um eine Verbindung zum MQTT-Server herzustellen. Sie müssen den Hostnamen, die Portnummer und den Client angeben ID des Servers. Der Beispielcode lautet wie folgt:
<?php require("phpMQTT.php"); $mqtt = new phpMQTT("mqtt.example.com", 1883, "ClientID"); // 服务器地址、端口号和客户端ID if ($mqtt->connect()) { // 连接成功 // ... } else { // 连接失败 // ... }
Schritt 3: Thema abonnieren
Im MQTT-Protokoll wird das Thema (Topic) verwendet, um den Inhalt der Nachricht zu identifizieren. Um von einem Gerät gesendete Nachrichten zu empfangen, müssen Sie ein oder mehrere Themen abonnieren. Der Beispielcode lautet wie folgt:
<?php require("phpMQTT.php"); $mqtt = new phpMQTT("mqtt.example.com", 1883, "ClientID"); // 服务器地址、端口号和客户端ID if ($mqtt->connect()) { $topics = array("topic1", "topic2"); // 订阅的主题列表 $mqtt->subscribe($topics, 0); // 订阅主题 while ($mqtt->proc()) { // 处理接收到的消息 // ... } $mqtt->close(); // 关闭连接 } else { // 连接失败 // ... }
Schritt 4: Nachricht veröffentlichen
Um Anweisungen an das Gerät zu senden, müssen Sie eine Nachricht zum angegebenen Thema veröffentlichen. Der Beispielcode lautet wie folgt:
<?php require("phpMQTT.php"); $mqtt = new phpMQTT("mqtt.example.com", 1883, "ClientID"); // 服务器地址、端口号和客户端ID if ($mqtt->connect()) { $topic = "topic"; // 发布的主题 $message = "Hello, device!"; // 发布的消息 $mqtt->publish($topic, $message, 0); // 发布消息 $mqtt->close(); // 关闭连接 } else { // 连接失败 // ... }
Schritt 5: Die empfangene Nachricht analysieren
Im obigen Beispiel müssen wir die empfangene Nachricht nach dem Empfang verarbeiten. Der Inhalt der Nachricht kann entsprechend den Anforderungen des Geräts analysiert und entsprechende Vorgänge entsprechend den Anforderungen ausgeführt werden. Der Beispielcode lautet wie folgt:
<?php require("phpMQTT.php"); $mqtt = new phpMQTT("mqtt.example.com", 1883, "ClientID"); // 服务器地址、端口号和客户端ID if ($mqtt->connect()) { $topics = array("topic1", "topic2"); // 订阅的主题列表 $mqtt->subscribe($topics, 0); // 订阅主题 while ($mqtt->proc()) { $message = $mqtt->message; // 解析接收到的消息 // ... // 根据解析的结果进行操作 // ... } $mqtt->close(); // 关闭连接 } else { // 连接失败 // ... }
Zusammenfassung:
Durch die Verwendung der PHP- und MQTT-Protokolle können wir den Fernbetrieb und die Steuerung von Geräten problemlos implementieren. In diesem Artikel werden die grundlegenden Schritte der Verwendung der phpMQTT-Erweiterung zum Herstellen einer Verbindung zu einem MQTT-Server, zum Abonnieren von Themen, zum Veröffentlichen von Nachrichten und zum Analysieren empfangener Nachrichten vorgestellt und der entsprechende Beispielcode bereitgestellt. Leser können es entsprechend ihren eigenen Bedürfnissen und in Verbindung mit bestimmten Projekten anpassen und erweitern, um flexiblere und leistungsfähigere Fernsteuerungsfunktionen für Geräte zu erreichen.
Das obige ist der detaillierte Inhalt vonFernbetrieb und -steuerung von Geräten mit PHP und MQTT. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!