Heim >Backend-Entwicklung >PHP-Tutorial >Technischer Leitfaden zur Fernsteuerung von Geräten mit PHP und MQTT

Technischer Leitfaden zur Fernsteuerung von Geräten mit PHP und MQTT

王林
王林Original
2023-07-08 17:09:111892Durchsuche

Technischer Leitfaden zur Fernsteuerung von Geräten mit PHP und MQTT

Einführung:
Die rasante Entwicklung moderner Technologie hat das Internet der Dinge (IoT) nach und nach zur Realität werden lassen. Im Internet der Dinge können wir durch die Verbindung verschiedener Geräte über das Internet eine Fernsteuerung und -überwachung der Geräte erreichen. MQTT ist ein leichtes Nachrichtenübertragungsprotokoll, das die Kommunikation zwischen Geräten erleichtern kann. In diesem Artikel wird erläutert, wie Sie mithilfe der PHP- und MQTT-Protokolle eine Fernsteuerung von Geräten erreichen.

1. Vorbereitung:
Bevor wir beginnen, müssen wir den MQTT-Server und PHP installieren. Die häufigste Option ist die Verwendung von Mosquitto als MQTT-Server, der über Befehle wie apt-get installiert werden kann. Für PHP können wir es auf verschiedene Arten installieren, z. B. LAMP, XAMPP usw.

2. Erstellen Sie einen MQTT-Server:

1. Installieren Sie Mosquitto mit dem folgenden Befehl:

sudo apt-get update
sudo apt-get install mosquitto mosquitto-clients

Nachdem die Installation abgeschlossen ist, wird Mosquitto automatisch gestartet.

2. Testen Sie den Mosquitto-Server:

Sie können testen, ob der Mosquitto-Server normal läuft, indem Sie den folgenden Befehl ausführen:

mosquitto_pub -h localhost -t test -m "Hello, MQTT"
mosquitto_sub -h localhost -t test

Wenn alles normal ist, sollten Sie die Meldung „Hallo, MQTT“ auf dem Terminal sehen können .

3. Verwendung von MQTT in PHP:

1. Installieren Sie die MQTT-Erweiterung von PHP:

Es gibt keine Funktion, die MQTT nativ in PHP unterstützt, daher müssen wir die MQTT-Erweiterung installieren. Es kann mit dem folgenden Befehl installiert werden:

sudo apt-get install php-pear php-dev libmosquitto-dev
sudo pecl install Mosquitto-alpha

Nach Abschluss der Installation fügen Sie den folgenden Inhalt in die php.ini-Datei ein:

extension=mosquitto.so

Starten Sie den Apache-Server neu, damit die Einstellungen wirksam werden.

2. Schreiben Sie ein PHP-Programm:

Das Folgende ist ein einfaches PHP-Programmbeispiel zum Herstellen einer Verbindung zum MQTT-Server und zum Veröffentlichen von Nachrichten:

<?php
$mqtt = new MosquittoClient();

$mqtt->connect("localhost", 1883, 60);

$message = "Hello, MQTT";
$mqtt->publish("test", $message);

$mqtt->disconnect();
unset($mqtt);
?>

Der obige Code stellt eine Verbindung zum lokalen MQTT-Server her und veröffentlicht Nachrichten im Thema „Test“. Vorgesetzter.

3. MQTT-Nachrichten abonnieren:

Zusätzlich zur Veröffentlichung von Nachrichten können wir auch Nachrichten abonnieren, um den Status des Geräts oder Steueranweisungen zu erhalten. Das Folgende ist ein Beispiel für ein PHP-Programm, das MQTT-Nachrichten abonniert:

<?php
$mqtt = new MosquittoClient();

$mqtt->onMessage(function($message){
    echo $message->payload;
});

$mqtt->connect("localhost", 1883, 60);

$mqtt->subscribe("test", 1);

while($mqtt->loop() == 0){
    
}

$mqtt->disconnect();
unset($mqtt);
?>

Der obige Code stellt eine Verbindung zum lokalen MQTT-Server her und abonniert Nachrichten zum Thema „Test“. Wenn eine Nachricht empfangen wird, wird sie auf dem Terminal ausgedruckt.

4. Beispiel für die Fernsteuerung von Geräten:

Durch die oben genannten Schritte können wir das Gerät bereits lokal fernsteuern und überwachen. Als Nächstes demonstrieren wir anhand eines einfachen Beispiels, wie eine Fernsteuerung von Geräten über das Internet erreicht wird.

1. Geräteseitiger Code:

<?php
$mqtt = new MosquittoClient();

$mqtt->onConnect(function() use ($mqtt){
    $mqtt->publish("test", "Device connected", 0, false);
});

$mqtt->connect("mqtt.example.com", 1883, 60);

while($mqtt->loop() == 0){
    $mqtt->publish("test", "Device is working", 0, false);
    sleep(1);
}

$mqtt->disconnect();
unset($mqtt);
?>

Im obigen Code verbindet sich das Gerät mit einem MQTT-Server namens „mqtt.example.com“ und sendet jede Sekunde eine „Gerät funktioniert“-Nachricht zum „Testen“. Thema.

2. Code des Steuerterminals:

<?php
$mqtt = new MosquittoClient();

$mqtt->onMessage(function($message){
    echo $message->payload;
});

$mqtt->connect("mqtt.example.com", 1883, 60);

$mqtt->subscribe("test", 1);

while($mqtt->loop() == 0){
    $mqtt->publish("test", "Control message", 0, false);
    sleep(1);
}

$mqtt->disconnect();
unset($mqtt);
?>

Im obigen Code verbindet sich das Steuerterminal mit demselben MQTT-Server und abonniert Nachrichten zum Thema „Test“. Gleichzeitig wird jede Sekunde eine „Kontrollnachricht“-Nachricht an das Thema „Test“ gesendet. Wenn das Gerät die Nachricht empfängt, kann es entsprechende Steuervorgänge ausführen.

Fazit:

Durch die Verwendung der PHP- und MQTT-Protokolle können wir eine bequeme Fernsteuerung und -überwachung von Geräten erreichen. In diesem Artikel wird erläutert, wie Sie einen MQTT-Server einrichten und PHP-Code verwenden, um eine Verbindung zum Server herzustellen sowie Nachrichten zu veröffentlichen und zu abonnieren. Anhand eines einfachen Beispiels zur Fernsteuerung von Geräten wird gezeigt, wie eine Fernsteuerung über das Internet erreicht werden kann. Dies ist nur die Spitze des Eisbergs des Internets der Dinge. Ich hoffe, dass es den Lesern hilfreich sein wird.

Referenzen:

    Offizielle MQTT-Website: http://mqtt.org/
  1. Mosquitto-Projektseite: https://mosquitto.org/
  2. Eclipse Paho-Projektseite: https://www.eclipse.org / paho/clients/php/

Das obige ist der detaillierte Inhalt vonTechnischer Leitfaden zur Fernsteuerung von Geräten mit PHP und MQTT. 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