Heim  >  Artikel  >  Backend-Entwicklung  >  PHP und MQTT: Aufbau eines Echtzeit-Umweltüberwachungssystems basierend auf dem Internet der Dinge

PHP und MQTT: Aufbau eines Echtzeit-Umweltüberwachungssystems basierend auf dem Internet der Dinge

WBOY
WBOYOriginal
2023-07-09 09:01:441374Durchsuche

PHP und MQTT: Erstellen Sie ein Echtzeit-Umgebungsüberwachungssystem basierend auf dem Internet der Dinge.

Mit der rasanten Entwicklung der Internet-der-Dinge-Technologie können immer mehr Geräte miteinander verbunden werden. Heutzutage können wir mithilfe von Sensoren problemlos verschiedene Umgebungsparameter wie Temperatur, Luftfeuchtigkeit, Luftdruck usw. überwachen. Allerdings wird die Frage, wie diese Daten in Echtzeit erfasst und verarbeitet werden können, immer wichtiger. In diesem Artikel wird erläutert, wie Sie mithilfe von PHP und MQTT ein Echtzeit-Umgebungsüberwachungssystem basierend auf dem Internet der Dinge erstellen.

MQTT (Message Queue Telemetry Transport) ist ein leichtes Kommunikationsprotokoll, das auf dem Publish/Subscribe-Modell basiert und sich sehr gut für die Kommunikation zwischen Geräten in Internet-of-Things-Anwendungen eignet. Es bietet die Vorteile einer geringen Bandbreite, eines geringen Stromverbrauchs und eines geringen Speicherbedarfs und kann Daten effizient übertragen.

Zuerst müssen wir einen MQTT-Proxyserver erstellen. Zu den gängigen MQTT-Proxyservern gehören Mosquitto, EMQ und ActiveMQ. In diesem Artikel wird Mosquitto als Beispiel verwendet. Die Installation von Mosquitto unter dem Ubuntu-System ist sehr einfach. Führen Sie einfach den folgenden Befehl aus:

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

Nachdem die Installation abgeschlossen ist, können wir den Mosquitto-Dienst über den folgenden Befehl starten:

mosquitto -v

Dann können wir Beginnen Sie mit dem Schreiben von PHP-Code. Zuerst müssen wir die MQTT-PHP-Clientbibliothek installieren, die einfach mit Composer installiert werden kann:

composer require eclipse/paho-mqtt

In PHP müssen wir die MQTT-Clientbibliothek einführen und die Serververbindungsinformationen entsprechend der spezifischen Situation konfigurieren:

require_once("vendor/autoload.php");

$server = "mqtt.example.com"; // MQTT服务器地址
$port = 1883; // MQTT服务器端口
$username = "your_username"; // MQTT服务器用户名
$password = "your_password"; // MQTT服务器密码
$client_id = "your_client_id"; // 客户端ID,用于区分不同的设备

$client = new EclipseMosquittoClient($client_id); // 创建MQTT客户端实例

// 配置服务器连接信息
$client->setCredentials($username, $password);
$client->connect($server, $port, 60);

// 订阅主题
$client->subscribe("environment/temperature", 1);

// 接收消息
while (true) {
    $client->loop();
}

// 断开连接
$client->disconnect();

In Mit dem obigen Code haben wir zunächst die MQTT-Client-Bibliothek eingeführt und eine MQTT-Client-Instanz erstellt. Anschließend haben wir die Serververbindungsinformationen konfiguriert und uns mit dem bereitgestellten Benutzernamen und Passwort verbunden. Als nächstes haben wir das Thema „Umgebung/Temperatur“ abonniert und die QoS (Quality of Service) auf 1 gesetzt, was bedeutet, dass die Nachricht mindestens einmal übertragen wird. Schließlich verwenden wir eine Endlosschleife, um Nachrichten zu empfangen und bei Bedarf zu verarbeiten.

Zusätzlich zum Empfangen von Nachrichten können wir die MQTT-Clientbibliothek auch zum Veröffentlichen von Nachrichten verwenden. Hier ist ein Beispiel:

require_once("vendor/autoload.php");

$server = "mqtt.example.com"; // MQTT服务器地址
$port = 1883; // MQTT服务器端口
$username = "your_username"; // MQTT服务器用户名
$password = "your_password"; // MQTT服务器密码
$client_id = "your_client_id"; // 客户端ID,用于区分不同的设备

$client = new EclipseMosquittoClient($client_id); // 创建MQTT客户端实例

// 配置服务器连接信息
$client->setCredentials($username, $password);
$client->connect($server, $port, 60);

// 发布消息
$message = "25.5"; // 温度数值
$client->publish("environment/temperature", $message, 1);

// 断开连接
$client->disconnect();

Im obigen Code erstellen wir eine MQTT-Client-Instanz und konfigurieren die Serververbindungsinformationen. Anschließend haben wir die Temperaturdaten mithilfe der Funktion „publish()“ im Thema „Umgebung/Temperatur“ veröffentlicht. Es ist zu beachten, dass beim Veröffentlichen einer Nachricht QoS mit 1 angegeben werden muss, um sicherzustellen, dass die Nachricht mindestens einmal übertragen werden kann.

Mit dem obigen Codebeispiel können wir ein Echtzeit-Umgebungsüberwachungssystem basierend auf dem Internet der Dinge aufbauen. Wir können Sensordaten an den MQTT-Server senden, dann das Thema über PHP-Skripte abonnieren und die Daten empfangen und sie dann entsprechend verarbeiten und anzeigen.

Zusammenfassend lässt sich sagen, dass Sie mit PHP und MQTT schnell ein Echtzeit-Umgebungsüberwachungssystem basierend auf dem Internet der Dinge aufbauen können. Durch die Flexibilität des MQTT-Protokolls und die Entwicklungsfreundlichkeit von PHP können wir problemlos Kommunikation und Datenverarbeitung zwischen Geräten erreichen. Ich hoffe, dass dieser Artikel den Lesern etwas Inspiration bringen und ihnen helfen kann, etwas bei der Entwicklung von IoT-Anwendungen zu gewinnen.

Referenzen:

  • Offizielle MQTT-Website: http://mqtt.org
  • Eclipse Paho MQTT PHP-Client-Bibliothek: https://github.com/eclipse/paho.mqtt.php

Das obige ist der detaillierte Inhalt vonPHP und MQTT: Aufbau eines Echtzeit-Umweltüberwachungssystems basierend auf dem Internet der Dinge. 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