Heim  >  Artikel  >  Backend-Entwicklung  >  Erfassung von Sensordaten in Echtzeit mit PHP und MQTT

Erfassung von Sensordaten in Echtzeit mit PHP und MQTT

PHPz
PHPzOriginal
2023-06-28 08:17:101996Durchsuche

Mit der Entwicklung der Internet-of-Things-Technologie werden immer mehr Sensoren in verschiedenen Bereichen eingesetzt, um uns genauere Daten zu liefern. Allerdings war die effiziente Erfassung und Nutzung dieser Daten seit jeher ein Anliegen der Branche. In diesem Artikel wird eine Lösung zur Erfassung von Sensordaten in Echtzeit vorgestellt, die auf den Protokollen PHP und MQTT basiert.

1. Einführung in das MQTT-Protokoll

Das MQTT-Protokoll ist ein leichtes Kommunikationsprotokoll, das auf dem Publish-Subscribe-Modell basiert und für kleine Geräte und unzuverlässige Netzwerke mit geringer Bandbreite geeignet ist. Das MQTT-Protokoll enthält drei Hauptrollen: Herausgeber, Abonnent und Proxyserver (Broker). Der Herausgeber veröffentlicht Daten zu einem Thema, und Abonnenten können dieses Thema abonnieren, um vom Herausgeber veröffentlichte Nachrichten zu erhalten. Der Proxyserver ist für die Weiterleitung und Speicherung von Nachrichten verantwortlich.

2. Implementierungsschritte

  1. Erstellen eines MQTT-Proxyservers

Da das MQTT-Protokoll einen Proxyserver zum Weiterleiten und Speichern von Nachrichten erfordert, müssen wir zunächst einen MQTT-Proxyserver erstellen. Zu den gängigen MQTT-Proxyservern gehören EMQ, Mosquitto usw. In diesem Artikel wird EMQ als Beispiel verwendet.

Nach der Installation von EMQ müssen Sie einige Konfigurationen durchführen, darunter das Öffnen des MQTT-Ports, die Konfiguration von Benutzername und Passwort usw. Nachdem die Konfiguration abgeschlossen ist, können Sie zum Testen über den MQTT-Client eine Verbindung zum Proxyserver herstellen.

  1. Bauen Sie einen Webserver

Um Sensordaten in Echtzeit zu sammeln und zu verarbeiten, müssen wir einen Webserver bauen, um die Daten zu empfangen und zu verarbeiten. In diesem Artikel wird die PHP-Sprache zum Erstellen eines Webservers verwendet.

In PHP können wir die Mosquitto PHP-Bibliothek verwenden, um die Funktionen des MQTT-Clients zu implementieren. Zuerst müssen Sie die Bibliothek herunterladen, installieren und im PHP-Projekt referenzieren.

  1. PHP-Code schreiben

(1) Verbindung zum MQTT-Proxyserver herstellen:

$mqtt = new MosquittoClient();
$mqtt->connect('localhost', 1883, 60);

(2) Thema abonnieren:

$mqtt->subscribe('sensor/data', 0);

(3) Nachricht verarbeiten:

$mqtt->onMessage(function ($msg) {
    // 处理传感器数据
});

(4) Nachricht veröffentlichen:

$mqtt->publish('sensor/data', 'hello, world!', 0);

(5) Starten Sie den Client:

$mqtt->loopForever();

Durch den obigen Code können wir die Kernfunktionen des MQTT-Clients implementieren, einschließlich der Verbindung zum MQTT-Proxyserver, dem Abonnieren von Themen, dem Verarbeiten von Nachrichten und dem Veröffentlichen von Nachrichten usw.

  1. Sensor anschließen und Daten senden

In praktischen Anwendungen müssen wir den eigentlichen Sensor anschließen und die von ihm erfassten Daten an den MQTT-Proxyserver senden. Hier nehmen wir als Beispiel den Anschluss eines Temperatursensors und das Senden der gesammelten Temperaturdaten an den MQTT-Proxyserver.

Verbinden Sie den Temperatursensor mit dem Arduino-Board und schreiben Sie über Arduino ein Programm, um Temperaturdaten zu sammeln und an den MQTT-Proxyserver zu senden:

#include <Wire.h>
#include <Adafruit_MLX90614.h>
#include <PubSubClient.h>
#include <ESP8266WiFi.h>

Adafruit_MLX90614 mlx = Adafruit_MLX90614();
WiFiClient wifiClient;
PubSubClient mqttClient(wifiClient);

void setup() {
  Serial.begin(115200);
  mlx.begin();
  WiFi.begin("ssid", "password");   //连接Wi-Fi
  while (WiFi.status() != WL_CONNECTED) {
      delay(1000);
  }
  mqttClient.setServer("localhost", 1883);   //连接MQTT服务器
}

void loop() {
  mqttClient.loop();   //连接MQTT服务器
  float temp = mlx.readObjectTempC();   //读取温度
  mqttClient.publish("sensor/data", String(temp).c_str());   //发送温度数据
  delay(5000);
}

Über das obige Programm können wir den Temperatursensor anschließen, Temperaturdaten sammeln und senden zur MQTT-Proxyserver-Funktionalität.

  1. Datenverarbeitung und -anzeige

Nachdem wir die vom Sensor gesendeten Daten erhalten haben, können wir diese über PHP-Code verarbeiten, beispielsweise die Temperaturdaten in der Datenbank speichern oder in Echtzeit anzeigen.

Die spezifische Methode zur Verarbeitung und Anzeige von Sensordaten mithilfe von PHP-Code kann entsprechend den tatsächlichen Anforderungen ausgewählt und gestaltet werden.

3. Zusammenfassung

In diesem Artikel wird hauptsächlich eine Lösung zur Realisierung der Echtzeit-Sensordatenerfassung basierend auf dem PHP- und MQTT-Protokoll vorgestellt. Durch die Verbindung zum MQTT-Proxyserver, die Verwendung von PHP-Code zur Implementierung der Funktionen des MQTT-Clients sowie die Verbindung zum Sensor und das Senden von Daten kann eine Echtzeit-Datenerfassung und -verarbeitung des Sensors erreicht werden. Diese Lösung kann in verschiedenen Bereichen eingesetzt werden, z. B. im Smart Home, in der Fernüberwachung der Umgebung usw.

Das obige ist der detaillierte Inhalt vonErfassung von Sensordaten in Echtzeit 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