Kawalan jauh sistem pencahayaan pintar menggunakan PHP dan MQTT

PHPz
Lepaskan: 2023-07-09 18:24:02
asal
1303 orang telah melayarinya

Gunakan PHP dan MQTT untuk merealisasikan kawalan jauh sistem pencahayaan pintar

Dengan mempopularkan Internet dan pembangunan teknologi IoT, rumah pintar telah menjadi trend baharu dalam kehidupan kita. Antaranya, sistem pencahayaan pintar, sebagai salah satu peranti rumah pintar paling asas, boleh melaraskan cahaya dan menukar kecerahan melalui alat kawalan jauh. Artikel ini akan memperkenalkan cara menggunakan protokol PHP dan MQTT untuk merealisasikan fungsi kawalan jauh sistem pencahayaan pintar.

MQTT (Message Qeuing Telemetry Transport) ialah protokol pemesejan segera ringan yang telah menjadi salah satu protokol yang paling biasa digunakan dalam bidang Internet Perkara. Dalam artikel ini, kami akan menggunakan protokol MQTT untuk melaksanakan komunikasi antara peranti.

Pertama, kita perlu menyediakan beberapa alatan dan persekitaran. Pertama, kami memerlukan pelayan pembangunan, yang termasuk penterjemah PHP dan klien MQTT. Kita boleh menggunakan XAMPP untuk membina pelayan pembangunan sedemikian, yang menyediakan penterjemah PHP dan Mosquitto MQTT Broker. Kedua, kita perlu menyediakan peranti pencahayaan pintar yang menyokong protokol MQTT, yang boleh berdasarkan ESP8266 atau platform perkakasan lain yang serupa. Akhir sekali, kami juga perlu memasang klien MQTT Dalam artikel ini, kami akan menggunakan klien PHP MQTT sebagai contoh.

Seterusnya, kita boleh menulis kod PHP untuk melaksanakan kawalan jauh sistem pencahayaan pintar. Pertama, kami perlu memperkenalkan perpustakaan klien PHP MQTT, yang boleh dimuat turun dari GitHub dan diimport ke dalam projek PHP kami.

require("phpMQTT.php");

$server = "localhost";
$port = 1883;
$username = "your_username";
$password = "your_password";
$client_id = "client_id";

$mqtt = new phpMQTT($server, $port, $client_id);
if($mqtt->connect(true, NULL, $username, $password)){
    $mqtt->publish("lighting_system", "ON", 0);
    $mqtt->close();
}else{
    echo "连接失败!";
}
Salin selepas log masuk

Dalam kod di atas, kami telah menggunakan kelas phpMQTT untuk mencipta klien MQTT dan menyambung kepada Broker MQTT. Antaranya, $server dan $port mewakili alamat dan nombor port Broker MQTT, $username dan $password mewakili nama pengguna dan kata laluan sambungan, dan $client_id mewakili pengecam unik klien. Sambung ke MQTT Broker dengan memanggil kaedah sambungan. Jika sambungan berjaya, kaedah penerbitan dipanggil untuk menerbitkan mesej kepada Broker MQTT Subjek mesej ialah "sistem_pencahayaan" dan kandungan mesej adalah "HIDUP". Akhir sekali, kami menggunakan kaedah tutup untuk menutup sambungan kepada Broker MQTT.

Nama pengguna, kata laluan dan id_pelanggan dalam kod di atas perlu diganti mengikut situasi sebenar untuk menyambung dengan peranti pencahayaan pintar.

Kini, kami telah menulis kod PHP untuk kawalan jauh sistem pencahayaan pintar. Seterusnya, kita perlu menulis kod pada peranti pencahayaan pintar untuk dapat menerima arahan kawalan jauh daripada kod PHP.

Mengambil ESP8266 sebagai contoh, kita boleh menggunakan Arduino IDE untuk menulis kod Arduino. Berikut ialah kod sampel yang dipermudahkan:

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

const char* ssid = "your_ssid";
const char* password = "your_password";
const char* mqtt_server = "mqtt_server_address";
const char* client_id = "client_id";
const char* topic = "lighting_system";

void callback(char* topic, byte* payload, unsigned int length) {
    if(strcmp((char*)payload, "ON") == 0) {
        // 灯光系统开启的逻辑
    } else if(strcmp((char*)payload, "OFF") == 0) {
       // 灯光系统关闭的逻辑
    }
}

WiFiClient espClient;
PubSubClient client(espClient);

void reconnect() {
  while (!client.connected()) {
    if (client.connect(client_id)) {
      client.subscribe(topic);
    } else {
      delay(5000);
    }
  }
}

void setup() {
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
  }
  client.setServer(mqtt_server, 1883);
  client.setCallback(callback);
}

void loop() {
  if (!client.connected()) {
    reconnect();
  }
  client.loop();
}
Salin selepas log masuk

Dalam kod di atas, kita perlu menyambung ke rangkaian Wi-Fi terlebih dahulu, yang boleh ditetapkan dengan mengubah suai ssid dan kata laluan. Kemudian kita perlu menyambung ke MQTT Broker, yang boleh ditetapkan dengan mengubah suai mqtt_server dan client_id. Akhir sekali, kami memproses mesej daripada kod PHP dalam fungsi panggil balik dan mengawal status sistem pencahayaan pintar berdasarkan kandungan mesej.

Pada ketika ini, kami telah menyelesaikan fungsi kawalan jauh sistem pencahayaan pintar. Dengan menulis kod PHP dan menggunakan protokol MQTT dan klien MQTT untuk berkomunikasi dengan peranti, kami boleh mengawal status hidup/mati sistem pencahayaan pintar melalui Internet di mana-mana sahaja.

Untuk meringkaskan, artikel ini memperkenalkan cara menggunakan protokol PHP dan MQTT untuk merealisasikan fungsi kawalan jauh sistem pencahayaan pintar. Dengan menulis kod PHP dan menggunakan perpustakaan klien MQTT untuk menyambung ke MQTT Broker dan menerbitkan mesej, kami boleh mencapai kawalan jauh sistem pencahayaan pintar. Pada masa yang sama, kami juga menggunakan ESP8266 dan Arduino untuk melaksanakan logik kod peranti pencahayaan pintar, dengan menerima mesej daripada Broker MQTT dan mengawal status sistem pencahayaan pintar berdasarkan kandungan mesej. Saya harap artikel ini akan membantu anda memahami dan melaksanakan kawalan jauh sistem pencahayaan pintar.

Atas ialah kandungan terperinci Kawalan jauh sistem pencahayaan pintar menggunakan PHP dan MQTT. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan