Maison  >  Article  >  développement back-end  >  PHP et MQTT : Construire un système de surveillance et de gestion de l'énergie à distance

PHP et MQTT : Construire un système de surveillance et de gestion de l'énergie à distance

WBOY
WBOYoriginal
2023-07-08 14:05:041574parcourir

PHP et MQTT : Construire un système de surveillance et de gestion de l'énergie à distance

Introduction
Avec la croissance de la demande d'énergie et l'amélioration de la conscience environnementale, il est devenu de plus en plus important de construire un système de surveillance et de gestion de l'énergie à distance. Ce type de système peut effectuer une gestion des économies d'énergie en surveillant la consommation d'énergie en temps réel et peut ajuster la consommation d'énergie via une télécommande, réduisant ainsi le gaspillage d'énergie et l'empreinte carbone. Dans cet article, nous explorerons comment créer un système de surveillance et de gestion de l'énergie à distance à l'aide des protocoles PHP et MQTT, et fournirons quelques exemples de code pour référence.

  1. Introduction à MQTT
    MQTT (Message Queuing Telemetry Transport) est un protocole léger de transmission de messages de publication/abonnement adapté aux appareils dont la bande passante réseau et les ressources informatiques sont limitées. Il utilise le protocole TCP/IP pour la communication, prend en charge le mode push et présente une faible latence et une haute fiabilité.
  2. Création d'un serveur MQTT
    Tout d'abord, nous devons créer un serveur MQTT pour gérer la communication entre l'appareil et l'application. Ceci peut être réalisé en utilisant des serveurs MQTT open source tels que Mosquitto. Vous trouverez ci-dessous un exemple de configuration de base du serveur Mosquitto.
sudo apt-get install mosquitto
sudo systemctl enable mosquitto
sudo systemctl start mosquitto
  1. Extension PHP MQTT
    Pour utiliser le protocole MQTT en PHP, nous devons installer une extension MQTT. Vous pouvez choisir d'utiliser l'extension mosquitto ou phpMQTT. Vous trouverez ci-dessous un exemple de code utilisant l'extension 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

Dans l'exemple ci-dessus, nous avons d'abord créé un objet phpMQTT et nous sommes connectés au serveur MQTT. Ensuite, nous nous abonnons à un ou plusieurs sujets et définissons une fonction de rappel processMessage pour traiter les messages. En appelant la méthode proc, nous pouvons continuer à recevoir et traiter les messages du serveur MQTT.

    Côté équipement

    Dans le système de surveillance et de gestion de l'énergie à distance, le côté équipement fait référence aux équipements de consommation d'énergie, tels que les capteurs, les compteurs intelligents, etc. L'appareil doit envoyer des données de consommation d'énergie au serveur MQTT en temps réel et recevoir des instructions de contrôle du serveur.

      rrreee
    1. Dans l'exemple ci-dessus, nous avons créé un objet phpMQTT et nous sommes connectés au serveur MQTT. Nous utilisons ensuite la méthode publish pour envoyer des données de consommation d'énergie en temps réel au sujet energy/usage.
      1. Application Web
      2. L'application Web est au cœur du système de surveillance et de gestion de l'énergie à distance. Il peut recevoir des données de consommation d'énergie en temps réel en s'abonnant à des sujets sur le serveur MQTT, et envoyer des instructions de contrôle en publiant des sujets.
      🎜rrreee🎜Dans l'exemple ci-dessus, nous avons créé un objet phpMQTT et nous sommes connectés au serveur MQTT. Ensuite, nous nous abonnons au sujet energy/usage et définissons une fonction de rappel processMessage pour traiter les messages. En appelant la méthode proc, nous pouvons continuer à recevoir et traiter les messages du serveur MQTT. 🎜🎜Conclusion🎜Un système de surveillance et de gestion de l'énergie à distance peut être facilement construit à l'aide des protocoles PHP et MQTT. La légèreté et la fiabilité du protocole MQTT le rendent adapté à la communication en temps réel entre les appareils consommateurs d'énergie et les applications Web. Grâce à la surveillance en temps réel et au contrôle à distance de la consommation d'énergie, nous pouvons atteindre les objectifs d'économie d'énergie, de réduction des émissions et de développement durable. 🎜🎜Références : 🎜🎜🎜Mosquitto - https://mosquitto.org/🎜🎜phpMQTT - https://github.com/bluerhinos/phpMQTT🎜🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn