Maison  >  Article  >  développement back-end  >  PHP et MQTT : réaliser la transmission de données et le contrôle des systèmes de maison intelligente

PHP et MQTT : réaliser la transmission de données et le contrôle des systèmes de maison intelligente

WBOY
WBOYoriginal
2023-07-10 09:12:061187parcourir

PHP et MQTT : réalisez la transmission de données et le contrôle des systèmes de maison intelligente

Le développement rapide des systèmes de maison intelligente a amené de plus en plus de personnes à commencer à utiliser des appareils intelligents pour contrôler les appareils domestiques. Afin de réaliser la transmission de données et le contrôle des systèmes de maison intelligente, nous pouvons utiliser le protocole MQTT pour mettre en œuvre la communication entre les appareils. Cet article explique comment utiliser PHP et MQTT pour créer un système simple de maison intelligente.

Tout d'abord, nous devons installer la bibliothèque d'extensions MQTT. Nous pouvons installer l'extension PHP Mosquitto avec la commande suivante :

pecl install Mosquitto-alpha

Une fois l'installation terminée, activez l'extension dans le fichier php.ini :

extension=mosquitto.so

Ensuite, nous devons installer un courtier MQTT, tel que Mosquitto, pour la communication. entre les appareils. Nous pouvons installer l'agent Mosquitto en utilisant la commande suivante dans la ligne de commande :

sudo apt-get install mosquitto

Une fois l'installation terminée, nous pouvons démarrer l'agent Mosquitto via la commande suivante :

mosquitto -v

Maintenant, écrivons un morceau de code PHP à implémenter transmission de données pour le système et le contrôle de la maison intelligente. Supposons que nous ayons un capteur de température et une lumière LED comme appareil domestique. Le capteur de température enverra la valeur de température au courtier MQTT et la lumière LED contrôlera l'interrupteur selon les instructions reçues.

<?php
 
require("phpMQTT.php");
 
$mqtt = new phpMQTT("localhost", 1883, "ClientID".rand());
 
if(!$mqtt->connect()){
    exit(1);
}
 
$topics['temperature'] = array("qos" => 0, "function" => "procTemperature");
$mqtt->subscribe($topics, 0);
 
while($mqtt->proc()){
}
 
$mqtt->close();
 
function procTemperature($topic, $msg){
    echo "Received temperature: " . $msg . "C" . "
";
 
    // 控制LED灯的代码
 
    // 如果温度大于30°C,开启LED灯
    if($msg > 30){
        echo "Turn on LED" . "
";
    }else{
        echo "Turn off LED" . "
";
    }
}
 
?>

La classe phpMQTT est utilisée dans le code ci-dessus pour se connecter et effectuer des opérations MQTT. Nous créons d’abord une instance de phpMQTT et transmettons l’adresse et le numéro de port du courtier MQTT. Nous établissons ensuite une connexion au courtier MQTT en appelant la méthode connect().

Dans la partie abonnement, nous définissons un thème nommé "température" et spécifions la fonction de rappel procTemperature. Lorsque le capteur de température libère de nouvelles données de température, la fonction de rappel procTemperature sera appelée.

Dans la fonction de rappel, nous imprimons d'abord la valeur de température reçue. Ensuite, nous contrôlons l’état marche/arrêt de la lumière LED en fonction de la valeur de température.

Dans la boucle principale, nous utilisons la méthode proc() pour traiter les messages MQTT jusqu'à ce que la connexion soit fermée.

Si nous voulons envoyer des instructions pour contrôler l'interrupteur des lumières LED, nous pouvons écrire le code suivant :

<?php
 
require("phpMQTT.php");
 
$mqtt = new phpMQTT("localhost", 1883, "ClientID".rand());
 
if(!$mqtt->connect()){
    exit(1);
}
 
$topic = "led";
$message = "on";
$mqtt->publish($topic, $message, 0);
 
$mqtt->close();
 
?>

Dans le code ci-dessus, nous créons d'abord une instance de phpMQTT et établissons une connexion avec le courtier MQTT. Nous avons ensuite spécifié un sujet « led » et un message « on » et utilisé la méthode publier() pour envoyer le message au courtier MQTT. Enfin, nous fermons la connexion au courtier MQTT.

L'exemple de code ci-dessus montre comment utiliser PHP et MQTT pour implémenter la transmission de données et le contrôle des systèmes de maison intelligente. En utilisant le protocole MQTT, nous pouvons simplement mettre en œuvre une communication entre les appareils pour créer un système de maison intelligente. Grâce à une expansion et une optimisation plus poussées, nous pouvons réaliser des systèmes de contrôle domestique plus complexes et plus intelligents.

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