Heim  >  Artikel  >  Backend-Entwicklung  >  PHP und MQTT: Datenübertragung und Steuerung von Smart-Home-Systemen realisieren

PHP und MQTT: Datenübertragung und Steuerung von Smart-Home-Systemen realisieren

WBOY
WBOYOriginal
2023-07-10 09:12:061187Durchsuche

PHP und MQTT: Datenübertragung und Steuerung von Smart-Home-Systemen realisieren

Die rasante Entwicklung von Smart-Home-Systemen hat dazu geführt, dass immer mehr Menschen intelligente Geräte zur Steuerung von Heimgeräten verwenden. Um die Datenübertragung und Steuerung von Smart-Home-Systemen zu realisieren, können wir das MQTT-Protokoll verwenden, um die Kommunikation zwischen Geräten zu implementieren. In diesem Artikel erfahren Sie, wie Sie mit PHP und MQTT ein einfaches Smart-Home-System erstellen.

Zuerst müssen wir die MQTT-Erweiterungsbibliothek installieren. Wir können die Mosquitto-PHP-Erweiterung mit dem folgenden Befehl installieren:

pecl install Mosquitto-alpha

Nachdem die Installation abgeschlossen ist, aktivieren Sie die Erweiterung in der php.ini-Datei:

extension=mosquitto.so

Als nächstes müssen wir einen MQTT-Broker wie Mosquitto für die Kommunikation installieren zwischen Geräten. Wir können den Mosquitto-Agenten mit dem folgenden Befehl in der Befehlszeile installieren:

sudo apt-get install mosquitto

Nachdem die Installation abgeschlossen ist, können wir den Mosquitto-Agenten mit dem folgenden Befehl starten:

mosquitto -v

Jetzt schreiben wir einen zu implementierenden PHP-Code Datenübertragung für das Smart-Home-System und die Steuerung. Angenommen, wir haben einen Temperatursensor und eine LED-Leuchte als Heimgerät. Der Temperatursensor sendet den Temperaturwert an den MQTT-Broker und das LED-Licht steuert den Schalter gemäß den empfangenen Anweisungen.

<?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" . "
";
    }
}
 
?>

Die phpMQTT-Klasse wird im obigen Code verwendet, um eine Verbindung herzustellen und MQTT-Operationen auszuführen. Wir erstellen zunächst eine Instanz von phpMQTT und übergeben die Adresse und Portnummer des MQTT-Brokers. Anschließend stellen wir eine Verbindung zum MQTT-Broker her, indem wir die Methode connect() aufrufen.

Im Abonnementteil definieren wir ein Thema namens „temperature“ und geben die Callback-Funktion procTemperature an. Wenn der Temperatursensor neue Temperaturdaten freigibt, wird die Callback-Funktion procTemperature aufgerufen.

In der Callback-Funktion drucken wir zunächst den empfangenen Temperaturwert aus. Anschließend steuern wir den Ein-/Aus-Zustand des LED-Lichts basierend auf dem Temperaturwert.

In der Hauptschleife verwenden wir die Methode proc(), um MQTT-Nachrichten zu verarbeiten, bis die Verbindung geschlossen wird.

Wenn wir Anweisungen zur Steuerung des Schalters von LED-Leuchten senden möchten, können wir den folgenden Code schreiben:

<?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();
 
?>

Im obigen Code erstellen wir zunächst eine Instanz von phpMQTT und stellen eine Verbindung mit dem MQTT-Broker her. Anschließend haben wir ein Thema „led“ und eine Nachricht „on“ angegeben und die Methode „publish()“ verwendet, um die Nachricht an den MQTT-Broker zu senden. Abschließend schließen wir die Verbindung zum MQTT-Broker.

Das obige Codebeispiel zeigt, wie man mit PHP und MQTT die Datenübertragung und Steuerung von Smart-Home-Systemen implementiert. Durch die Verwendung des MQTT-Protokolls können wir einfach die Kommunikation zwischen Geräten implementieren, um ein Smart-Home-System zu schaffen. Durch weiteren Ausbau und Optimierung können wir komplexere und intelligentere Haussteuerungssysteme erreichen.

Das obige ist der detaillierte Inhalt vonPHP und MQTT: Datenübertragung und Steuerung von Smart-Home-Systemen realisieren. 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