Rumah >pembangunan bahagian belakang >tutorial php >Pendekatan praktikal untuk kawalan rumah pintar menggunakan PHP dan MQTT

Pendekatan praktikal untuk kawalan rumah pintar menggunakan PHP dan MQTT

WBOY
WBOYasal
2023-07-07 23:04:47887semak imbas

Kaedah praktikal untuk melaksanakan kawalan rumah pintar menggunakan PHP dan MQTT

Dengan perkembangan pesat Internet Perkara dan rumah pintar, permintaan orang ramai terhadap kawalan rumah juga semakin tinggi. Sebagai protokol komunikasi yang ringan, MQTT digunakan secara meluas dalam komunikasi dengan peranti IoT. Artikel ini akan memperkenalkan cara praktikal untuk melaksanakan kawalan rumah pintar menggunakan PHP dan MQTT, serta menyediakan contoh kod yang sepadan.

1. Persediaan persekitaran
Sebelum bermula, kita perlu menyediakan persekitaran berikut:

  1. Pelayan MQTT: Anda boleh menggunakan sumber terbuka Mosquitto, atau anda boleh memilih pelayan MQTT lain yang sesuai dengan anda.
  2. Persekitaran PHP: Sediakan pelayan PHP dan pasang perpustakaan MQTT Anda boleh menggunakan perpustakaan pihak ketiga seperti phpMQTT.
  3. Peranti rumah pintar: seperti mentol lampu pintar, penderia suhu, dsb.

2. Konsep asas MQTT
Sebelum menggunakan MQTT untuk kawalan rumah pintar, kita perlu memahami beberapa konsep asas MQTT:

  1. Broker (pelayan proksi): Pelayan yang bertanggungjawab untuk menerima dan memajukan mesej.
  2. Topik (topik): mengenal pasti langganan dan lokasi penerbitan mesej, yang boleh disusun mengikut struktur hierarki.
  3. Penerbit: Hantar mesej ke topik yang ditentukan.
  4. Pelanggan: Langgan topik yang ditentukan dan terima mesej berkaitan.

3. Penciptaan dan sambungan klien MQTT
Pertama, kita perlu mencipta klien MQTT dan menyambung ke pelayan proksi MQTT. Berikut ialah contoh kod:

<?php
require("phpMQTT.php");

$host = "mqtt服务器IP地址";
$port = mqtt服务器端口号;
$client_id = "MQTT客户端ID";

$mqtt = new phpMQTT($host, $port, $client_id);

if ($mqtt->connect()) {
    // 连接成功
    // ...
} else {
    // 连接失败
    // ...
}

$mqtt->close();
?>

Perlu diingatkan bahawa nilai $host, $port dan $client_id pembolehubah perlu diubahsuai mengikut situasi sebenar. $host$port$client_id变量的值。

四、发布消息
接下来,我们可以使用MQTT客户端向指定的主题发布消息。以下是示例代码:

<?php
require("phpMQTT.php");

$host = "mqtt服务器IP地址";
$port = mqtt服务器端口号;
$client_id = "MQTT客户端ID";

$mqtt = new phpMQTT($host, $port, $client_id);

if ($mqtt->connect()) {
    // 连接成功

    $topic = "智能家居/灯泡状态";
    $message = "ON";

    $mqtt->publish($topic, $message, 0);

    // ...
} else {
    // 连接失败
    // ...
}

$mqtt->close();
?>

以上代码中,我们发布了一个消息到智能家居/灯泡状态主题,内容为ON

五、订阅消息
除了发布消息,我们还可以使用MQTT客户端订阅指定的主题,接收相关的消息。以下是示例代码:

<?php
require("phpMQTT.php");

$host = "mqtt服务器IP地址";
$port = mqtt服务器端口号;
$client_id = "MQTT客户端ID";

$mqtt = new phpMQTT($host, $port, $client_id);

if ($mqtt->connect()) {
    // 连接成功

    $topic = "智能家居/温度";
    $qos = 0;

    $mqtt->subscribe($topic, $qos);

    while ($mqtt->proc()) {
        // 接收和处理消息
        // ...
    }
} else {
    // 连接失败
    // ...
}

$mqtt->close();
?>

以上代码中,我们订阅了智能家居/温度主题,并通过循环接收和处理相关的消息。

六、实现智能家居控制
有了以上的基础,我们就可以开始实现智能家居的控制。以下是一个简单的示例:

<?php
require("phpMQTT.php");

$host = "mqtt服务器IP地址";
$port = mqtt服务器端口号;
$client_id = "MQTT客户端ID";

$mqtt = new phpMQTT($host, $port, $client_id);

if ($mqtt->connect()) {
    // 连接成功

    // 接收温度信息
    $temperature_topic = "智能家居/温度";
    $mqtt->subscribe($temperature_topic, 0);
    
    // 接收开关状态
    $status_topic = "智能家居/灯泡状态";
    $mqtt->subscribe($status_topic, 0);

    while ($mqtt->proc()) {
        // 接收和处理消息
        if ($mqtt->topic == $temperature_topic) {
            $temperature = $mqtt->message;
            // 处理温度信息
            // ...
        } elseif ($mqtt->topic == $status_topic) {
            $status = $mqtt->message;
            // 处理开关状态
            // ...
        }
    }
} else {
    // 连接失败
    // ...
}

$mqtt->close();
?>

以上代码中,我们订阅了智能家居/温度智能家居/灯泡状态

4. Terbitkan Mesej

Seterusnya, kami boleh menggunakan klien MQTT untuk menerbitkan mesej kepada topik yang ditentukan. Berikut ialah contoh kod:
rrreee

Dalam kod di atas, kami menerbitkan mesej kepada topik Smart Home/Lamp Status dengan kandungan ON. 🎜🎜5 Langganan mesej🎜Selain menerbitkan mesej, kami juga boleh menggunakan klien MQTT untuk melanggan topik tertentu dan menerima mesej berkaitan. Berikut ialah contoh kod: 🎜rrreee🎜Dalam kod di atas, kami melanggan topik Rumah Pintar/Suhu dan menerima serta memproses mesej berkaitan melalui gelung. 🎜🎜6. Realisasikan kawalan rumah pintar🎜Dengan asas di atas, kita boleh mula merealisasikan kawalan rumah pintar. Berikut ialah contoh mudah: 🎜rrreee🎜Dalam kod di atas, kami melanggan dua topik: Rumah Pintar/Suhu dan Status Rumah Pintar/Lampu, dan menilai yang diterima Mesej, suhu dan status suis boleh diproses dalam masa nyata. 🎜🎜Ringkasan🎜Artikel ini memperkenalkan kaedah praktikal untuk melaksanakan kawalan rumah pintar menggunakan PHP dan MQTT, dan menyediakan contoh kod yang sepadan. Saya harap pembaca dapat memahami melalui artikel ini cara menggunakan MQTT dan PHP untuk merealisasikan fungsi kawalan rumah pintar dan menyumbang kepada pembangunan rumah pintar. 🎜

Atas ialah kandungan terperinci Pendekatan praktikal untuk kawalan rumah pintar menggunakan PHP dan MQTT. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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