Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Gunakan PHP dan MQTT untuk melaksanakan pemantauan jauh bagi data persekitaran dan fungsi penggera

Gunakan PHP dan MQTT untuk melaksanakan pemantauan jauh bagi data persekitaran dan fungsi penggera

王林
王林asal
2023-07-08 14:28:421359semak imbas

Gunakan PHP dan MQTT untuk merealisasikan pemantauan jauh ke atas data persekitaran dan fungsi penggera

Dengan pembangunan berterusan teknologi Internet of Things, pemantauan jarak jauh terhadap data alam sekitar dan fungsi penggera telah digunakan secara meluas dalam pelbagai bidang. Artikel ini akan memperkenalkan cara menggunakan protokol PHP dan MQTT untuk melaksanakan pemantauan jauh ke atas data persekitaran dan fungsi penggera, serta menyediakan contoh kod untuk membantu pembaca memahami dan menggunakan dengan lebih baik.

1. Pengenalan kepada protokol MQTT

MQTT ialah protokol pemesejan segera ringan yang sesuai untuk pelbagai sambungan rangkaian dan peranti. Protokol MQTT menggunakan model publish-subscribe Pengirim mesej (penerbit) menghantar mesej ke topik tertentu (Topik), dan pelanggan boleh memilih untuk melanggan topik yang diminati untuk menerima mesej.

2. Persediaan persekitaran

  1. Pasang pelayan MQTT

Pertama, kita perlu memasang pelayan MQTT Anda boleh memilih Mosquitto sumber terbuka atau pelayan lain yang menyokong protokol MQTT. Anda boleh memilih kaedah pemasangan yang sesuai mengikut sistem pengendalian anda.

  1. Pemasangan dan Konfigurasi PHP

Seterusnya, kita perlu memasang PHP dan pastikan sambungan PHP untuk MQTT dipasang. Anda boleh menggunakan arahan berikut untuk memasang sambungan PHP untuk MQTT:

pecl install Mosquitto-alpha

Selepas pemasangan selesai, kami perlu menambah sambungan pada fail konfigurasi PHP. Tambahkan baris berikut pada php.ini:

extension=mosquitto.so

3. Tulis kod PHP

Berikut ialah contoh kod PHP yang melaksanakan pemantauan jauh ke atas data persekitaran dan fungsi penggera. Dalam kod tersebut, kami melaksanakan fungsi penerbitan dan langganan data melalui protokol MQTT.

<?php
// 连接MQTT服务器
$mqtt = new MosquittoClient();
$mqtt->connect('localhost', 1883, 60);

// 订阅主题
$mqtt->subscribe('environment/sensor1/temperature');
$mqtt->subscribe('environment/sensor1/humidity');

// 发布环境数据
function publishEnvironmentData($topic, $data) {
    global $mqtt;
    $mqtt->publish($topic, $data, 0, false);
}

// 处理收到的消息
function handleMessage($message) {
    $topic = $message->topic;
    $payload = $message->payload;
    
    if ($topic == 'environment/sensor1/temperature') {
        // 处理温度数据
        if ($payload > 30) {
            sendAlert('温度过高:'.$payload);
        }
    } elseif ($topic == 'environment/sensor1/humidity') {
        // 处理湿度数据
        if ($payload > 80) {
            sendAlert('湿度过高:'.$payload);
        }
    }
}

// 发送报警通知
function sendAlert($message) {
    // 发送报警通知的逻辑
    // 比如发送邮件、短信、推送等
    // ...
    echo '报警通知:'.$message.PHP_EOL;
}

// 设置消息回调函数
$mqtt->onMessage(function($message) {
    handleMessage($message);
});

// 循环处理消息
while (true) {
    $mqtt->loop();
}

4 Jalankan kod

Simpan kod di atas sebagai monitor.php, dan kemudian jalankan arahan berikut pada baris arahan untuk memulakan skrip PHP:

php monitor.php

Apabila data suhu atau kelembapan melebihi ambang, anda akan menerima pemberitahuan penggera. Anda boleh mengubah suai parameter dan logik dalam kod mengikut keperluan anda sendiri.

Artikel ini memperkenalkan cara menggunakan protokol PHP dan MQTT untuk melaksanakan pemantauan jarak jauh bagi data persekitaran dan fungsi penggera, serta menyediakan contoh kod. Saya harap artikel ini dapat membantu pembaca dan membolehkan mereka menggunakan teknologi IoT dengan lebih baik dan mencapai fungsi pemantauan jauh dan penggera yang lebih baik.

Atas ialah kandungan terperinci Gunakan PHP dan MQTT untuk melaksanakan pemantauan jauh bagi data persekitaran dan fungsi penggera. 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