Heim >Backend-Entwicklung >PHP-Tutorial >PHP und MQTT: Aufbau eines Fernüberwachungs- und -verwaltungssystems für Energie
PHP und MQTT: Aufbau eines Fernüberwachungs- und -verwaltungssystems für Energie
Einführung
Mit dem wachsenden Energiebedarf und der Verbesserung des Umweltbewusstseins ist es immer wichtiger geworden, ein Fernüberwachungs- und -verwaltungssystem für Energie aufzubauen. Diese Art von System kann ein Energiesparmanagement durchführen, indem es den Energieverbrauch in Echtzeit überwacht und den Energieverbrauch per Fernsteuerung anpassen kann, wodurch Energieverschwendung und CO2-Fußabdruck reduziert werden. In diesem Artikel untersuchen wir, wie man mithilfe der PHP- und MQTT-Protokolle ein Fernüberwachungs- und -verwaltungssystem für Energie aufbaut, und stellen einige Codebeispiele als Referenz bereit.
sudo apt-get install mosquitto sudo systemctl enable mosquitto sudo systemctl start mosquitto
mosquitto
oder phpMQTT
verwenden möchten. Unten finden Sie Beispielcode mit der Erweiterung phpMQTT
. mosquitto
或者phpMQTT
扩展。下面是使用phpMQTT
扩展的示例代码。require("phpMQTT.php"); $server = "mqtt.example.com"; $port = 1883; $client_id = "phpMQTT-subscriber"; $mqtt = new phpMQTT($server, $port, $client_id); if ($mqtt->connect(true, NULL, "username", "password")) { $topics = array("energy/usage/#" => array("qos" => 0, "function" => "processMessage")); $mqtt->subscribe($topics, 0); while ($mqtt->proc()) { } $mqtt->close(); } else { echo "Failed to connect to MQTT server."; } function processMessage($topic, $message) { echo "Received message on topic: $topic "; echo "Message: $message "; // 在这里可以编写处理MQTT消息的代码逻辑 }
在上面的示例中,我们首先创建了一个phpMQTT对象并连接到MQTT服务器。然后,我们订阅了一个或多个主题,并定义了一个用于处理消息的回调函数processMessage
。通过调用proc
方法,我们可以持续接收和处理来自MQTT服务器的消息。
require("phpMQTT.php"); $server = "mqtt.example.com"; $port = 1883; $client_id = "phpMQTT-publisher"; $topic = "energy/usage"; $mqtt = new phpMQTT($server, $port, $client_id); if ($mqtt->connect(true, NULL, "username", "password")) { $usage_data = "100"; // 从能源使用设备中获取实时能源使用数据 $mqtt->publish($topic, $usage_data, 0); $mqtt->close(); } else { echo "Failed to connect to MQTT server."; }
在上面的示例中,我们创建了一个phpMQTT对象并连接到MQTT服务器。然后,我们使用publish
方法将实时能源使用数据发送到主题energy/usage
。
require("phpMQTT.php"); $server = "mqtt.example.com"; $port = 1883; $client_id = "phpMQTT-subscriber"; $topic = "energy/usage"; $mqtt = new phpMQTT($server, $port, $client_id); if ($mqtt->connect(true, NULL, "username", "password")) { $mqtt->subscribe(array($topic => array("qos" => 0, "function" => "processMessage")), 0); while ($mqtt->proc()) { // 处理其他业务逻辑 } $mqtt->close(); } else { echo "Failed to connect to MQTT server."; } function processMessage($topic, $message) { echo "Received message on topic: $topic "; echo "Message: $message "; // 在这里可以编写处理MQTT消息的代码逻辑 }
在上面的示例中,我们创建了一个phpMQTT对象并连接到MQTT服务器。然后,我们订阅了主题energy/usage
并定义了一个用于处理消息的回调函数processMessage
。通过调用proc
Im obigen Beispiel haben wir zunächst ein phpMQTT-Objekt erstellt und eine Verbindung zum MQTT-Server hergestellt. Anschließend abonnieren wir ein oder mehrere Themen und definieren eine Callback-Funktion processMessage
zur Verarbeitung von Nachrichten. Durch den Aufruf der Methode proc
können wir weiterhin Nachrichten vom MQTT-Server empfangen und verarbeiten.
Im Fernüberwachungs- und -verwaltungssystem für Energie bezieht sich die Geräteseite auf Energieverbrauchsgeräte wie Sensoren, intelligente Messgeräte usw. Das Gerät muss Energieverbrauchsdaten in Echtzeit an den MQTT-Server senden und Steueranweisungen vom Server empfangen.
publish
, um Echtzeit-Energieverbrauchsdaten an das Thema energy/usage
zu senden. energy/usage
und definieren eine Callback-Funktion processMessage
zur Verarbeitung von Nachrichten. Durch den Aufruf der Methode proc
können wir weiterhin Nachrichten vom MQTT-Server empfangen und verarbeiten. 🎜🎜Fazit🎜Fernenergieüberwachungs- und -managementsysteme können mithilfe des PHP- und MQTT-Protokolls einfach erstellt werden. Das geringe Gewicht und die Zuverlässigkeit des MQTT-Protokolls machen es für die Echtzeitkommunikation zwischen energieverbrauchenden Geräten und Webanwendungen geeignet. Durch Echtzeitüberwachung und Fernsteuerung des Energieverbrauchs können wir die Ziele Energieeinsparung, Emissionsreduzierung und nachhaltige Entwicklung erreichen. 🎜🎜Referenzen: 🎜🎜🎜Mosquitto – https://mosquitto.org/🎜🎜phpMQTT – https://github.com/bluerhinos/phpMQTT🎜🎜Das obige ist der detaillierte Inhalt vonPHP und MQTT: Aufbau eines Fernüberwachungs- und -verwaltungssystems für Energie. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!