Schritte zur Implementierung der Fernüberwachung und -steuerung der Temperatur mit PHP und MQTT
Mit der rasanten Entwicklung der IoT-Technologie sind Fernüberwachung und -steuerung zu alltäglichen Anforderungen in unserem täglichen Leben geworden. In diesem Artikel wird erläutert, wie PHP- und MQTT-Protokolle zur Implementierung einer Fernüberwachung und -steuerung der Temperatur verwendet werden. Wir verwenden als Beispiel einen auf ESP8266 basierenden Temperatursensor und senden die Temperaturdaten über das MQTT-Protokoll an den Remote-Server. Gleichzeitig kann der Remote-Server über das MQTT-Protokoll Steueranweisungen an den ESP8266 senden. Hier sind die Schritte zur Umsetzung.
Schritt 1: MQTT-Server konfigurieren
Zuerst müssen wir einen MQTT-Server installieren und konfigurieren, um die Kommunikation zwischen dem Gerät und dem Server zu erleichtern. Hier verwenden wir den Open-Source-MQTT-Server Mosquitto als Beispiel. Sie können je nach Bedarf andere MQTT-Server auswählen. Nach Abschluss der Installation müssen Sie die IP-Adresse, die Portnummer, den Benutzernamen, das Kennwort und andere zugehörige Informationen des MQTT-Servers konfigurieren und ein Thema für die Kommunikation zwischen dem Gerät und dem Server erstellen.
Schritt 2: ESP8266 konfigurieren
Installieren Sie eine MQTT-Bibliothek auf dem ESP8266. Hier verwenden wir die phpMQTT-Bibliothek als Beispiel. Sie können diese Bibliothek über die Bibliotheksverwaltungsschnittstelle der Arduino IDE installieren. Anschließend müssen Sie die WLAN-Verbindung und die MQTT-Server-bezogenen Informationen im Code konfigurieren, einschließlich WLAN-Name und -Passwort sowie IP-Adresse, Portnummer, Benutzername, Passwort und andere Informationen des MQTT-Servers. Gleichzeitig müssen Sie das Thema des Geräts konfigurieren. Hier können wir es „Temperatur“ nennen, um Temperaturdaten weiterzugeben.
Das Folgende ist ein einfaches ESP8266-Codebeispiel:
#include <ESP8266WiFi.h> #include <phpMQTT.h> const char* ssid = "your_SSID"; const char* password = "your_PASSWORD"; const char* mqtt_server = "MQTT_SERVER_IP"; const char* topic = "temperature"; WiFiClient espClient; phpMQTT mqtt; float temperature = 0; void setup_wifi() { delay(10); // We start by connecting to a WiFi network Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); } void callback(char* topic, byte* payload, unsigned int length) { // handle incoming MQTT messages here } void reconnect() { // Loop until we're reconnected while (!mqtt.connected()) { Serial.print("Attempting MQTT connection..."); // Attempt to connect if (mqtt.connect("ESP8266Client")) { Serial.println("connected"); mqtt.subscribe(topic); } else { Serial.print("failed, rc="); Serial.print(mqtt.state()); Serial.println(" try again in 5 seconds"); // Wait 5 seconds before retrying delay(5000); } } } void setup() { Serial.begin(115200); setup_wifi(); mqtt.begin(mqtt_server, 1883, espClient); mqtt.onMessage(callback); } void loop() { if (!mqtt.connected()) { reconnect(); } mqtt.loop(); // simulate reading temperature from sensor temperature = random(20, 40); // convert temperature to string for MQTT publishing char tmp[10]; sprintf(tmp, "%.2f", temperature); // publish temperature to MQTT topic mqtt.publish(topic, tmp); delay(2000); }
Schritt drei: PHP-Server konfigurieren
Auf dem Remote-Server müssen wir eine MQTT-Client-Bibliothek installieren und konfigurieren, hier verwenden wir die phpMQTT-Bibliothek. Sie können diese Bibliothek über Composer installieren. Konfigurieren Sie anschließend die relevanten Informationen des MQTT-Servers im PHP-Code, einschließlich IP-Adresse, Portnummer, Benutzername, Passwort usw. Gleichzeitig müssen Sie die vom Gerät gesendeten Temperaturdaten abonnieren, damit Sie Temperaturänderungen in Echtzeit überwachen können. Hier ist ein einfaches PHP-Codebeispiel:
<?php require("phpMQTT.php"); $mqtt_server = "MQTT_SERVER_IP"; $mqtt_port = 1883; $mqtt_user = "your_MQTT_username"; $mqtt_password = "your_MQTT_password"; $mqtt_topic = "temperature"; $client_id = "PHPServer"; $mqtt = new phpMQTT($mqtt_server, $mqtt_port, $client_id); if(!$mqtt->connect(true, NULL, $mqtt_user, $mqtt_password)){ exit(1); } $topics[$mqtt_topic] = array("qos"=>0, "function"=>"receiveTemperature"); $mqtt->subscribe($topics, 0); while($mqtt->proc()){ } $mqtt->close(); function receiveTemperature($topic, $payload){ // handle incoming temperature data here $temperature = floatval($payload); // do something with the temperature data, such as storing it in a database or triggering a notification } ?>
Schritt vier: Temperaturüberwachung und -steuerung
Jetzt können Sie den ESP8266 an die Stromquelle anschließen und den Betrieb des Geräts im seriellen Monitor verfolgen. ESP8266 liest regelmäßig den Wert des Temperatursensors und veröffentlicht ihn über das MQTT-Protokoll im angegebenen Thema. Gleichzeitig wird der PHP-Server dieses Thema abonnieren und basierend auf den empfangenen Temperaturdaten eine entsprechende Verarbeitung durchführen, beispielsweise diese in der Datenbank speichern oder einen Alarm auslösen.
Auf Basis der Temperaturüberwachung können Sie auch eine Temperaturkontrollfunktion implementieren. Sie können Ihrem PHP-Code eine MQTT-Veröffentlichungsfunktion hinzufügen, um Steueranweisungen an den ESP8266 zu senden. Sie können je nach Bedarf Steueranweisungen über die Webschnittstelle, die App oder andere Methoden auslösen und die Anweisungen über das MQTT-Protokoll an den ESP8266 senden. ESP8266 kann entsprechende Steuervorgänge gemäß den empfangenen Anweisungen durchführen.
Zusammenfassend lässt sich sagen, dass wir durch die Verwendung der PHP- und MQTT-Protokolle problemlos Funktionen zur Fernüberwachung und -steuerung der Temperatur implementieren können. Diese Methode kann auf verschiedene Szenarien angewendet werden, z. B. auf die Überwachung der Innentemperatur, die Temperaturregelung in Gewächshäusern usw. Ich hoffe, dieser Artikel kann für Sie hilfreich sein.
Das obige ist der detaillierte Inhalt vonSchritte zur Implementierung der Fernüberwachung und -steuerung der Temperatur mithilfe von PHP und MQTT. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!