Heim  >  Artikel  >  Backend-Entwicklung  >  PHP und MQTT: Aufbau eines Fernüberwachungs- und -verwaltungssystems für Energie

PHP und MQTT: Aufbau eines Fernüberwachungs- und -verwaltungssystems für Energie

WBOY
WBOYOriginal
2023-07-08 14:05:041571Durchsuche

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.

  1. Einführung in MQTT
    MQTT (Message Queuing Telemetry Transport) ist ein leichtes Publish/Subscribe-Nachrichtenübertragungsprotokoll, das für Geräte mit begrenzter Netzwerkbandbreite und Rechenressourcen geeignet ist. Es nutzt das TCP/IP-Protokoll für die Kommunikation, unterstützt den Push-Modus und weist eine geringe Latenz und hohe Zuverlässigkeit auf.
  2. Aufbau eines MQTT-Servers
    Zuerst müssen wir einen MQTT-Server erstellen, um die Kommunikation zwischen dem Gerät und der Anwendung zu verwalten. Dies kann mithilfe von Open-Source-MQTT-Servern wie Mosquitto erreicht werden. Nachfolgend finden Sie ein einfaches Beispiel für die Konfiguration eines Mosquitto-Servers.
sudo apt-get install mosquitto
sudo systemctl enable mosquitto
sudo systemctl start mosquitto
  1. PHP MQTT-Erweiterung
    Um das MQTT-Protokoll in PHP zu verwenden, müssen wir eine MQTT-Erweiterung installieren. Sie können wählen, ob Sie die Erweiterung 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服务器的消息。

  1. 设备端
    在远程能源监控与管理系统中,设备端是指能源使用设备,例如传感器、智能电表等。设备端需要实时发送能源使用数据到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

  1. Web应用程序
    Web应用程序是远程能源监控与管理系统的核心。它可以通过订阅MQTT服务器上的主题来实时接收能源使用数据,并通过发布主题来发送控制指令。
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

rrreee

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.

    Geräteseite

    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.

      rrreee
    1. Im obigen Beispiel haben wir ein phpMQTT-Objekt erstellt und eine Verbindung zum MQTT-Server hergestellt. Anschließend verwenden wir die Methode publish, um Echtzeit-Energieverbrauchsdaten an das Thema energy/usage zu senden.
      1. Webanwendung
      2. Die Webanwendung ist der Kern des Fernüberwachungs- und -verwaltungssystems für Energie. Es kann Energieverbrauchsdaten in Echtzeit empfangen, indem es Themen auf dem MQTT-Server abonniert, und Steueranweisungen senden, indem es Themen veröffentlicht.
      🎜rrreee🎜Im obigen Beispiel haben wir ein phpMQTT-Objekt erstellt und eine Verbindung zum MQTT-Server hergestellt. Anschließend abonnieren wir das Thema 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!

Stellungnahme:
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