PHP dan MQTT: Membina sistem pemantauan dan pengurusan tenaga jauh
Pengenalan
Dengan pertumbuhan permintaan tenaga dan peningkatan kesedaran alam sekitar, ia menjadi semakin penting untuk membina sistem pemantauan dan pengurusan tenaga jauh. Sistem jenis ini boleh melaksanakan pengurusan penjimatan tenaga dengan memantau penggunaan tenaga dalam masa nyata, dan boleh melaraskan penggunaan tenaga melalui alat kawalan jauh, seterusnya mengurangkan sisa tenaga dan jejak karbon. Dalam artikel ini, kami akan meneroka cara membina sistem pemantauan dan pengurusan tenaga jauh menggunakan protokol PHP dan MQTT, serta menyediakan beberapa contoh kod untuk rujukan.
sudo apt-get install mosquitto sudo systemctl enable mosquitto sudo systemctl start mosquitto
nyamuk
atau phpMQTT
. Di bawah ialah contoh kod menggunakan sambungan phpMQTT
. mosquitto
或者phpMQTT
扩展。下面是使用phpMQTT
扩展的示例代码。require("phpMQTT.php"); $server = "mqtt.example.com"; $port = 1883; $client_id = "phpMQTT-subscriber"; $mqtt = new phpMQTT($server, $port, $client_id); if ($mqtt->connect(true, NULL, "username", "password")) { $topics = array("energy/usage/#" => array("qos" => 0, "function" => "processMessage")); $mqtt->subscribe($topics, 0); while ($mqtt->proc()) { } $mqtt->close(); } else { echo "Failed to connect to MQTT server."; } function processMessage($topic, $message) { echo "Received message on topic: $topic "; echo "Message: $message "; // 在这里可以编写处理MQTT消息的代码逻辑 }
在上面的示例中,我们首先创建了一个phpMQTT对象并连接到MQTT服务器。然后,我们订阅了一个或多个主题,并定义了一个用于处理消息的回调函数processMessage
。通过调用proc
方法,我们可以持续接收和处理来自MQTT服务器的消息。
require("phpMQTT.php"); $server = "mqtt.example.com"; $port = 1883; $client_id = "phpMQTT-publisher"; $topic = "energy/usage"; $mqtt = new phpMQTT($server, $port, $client_id); if ($mqtt->connect(true, NULL, "username", "password")) { $usage_data = "100"; // 从能源使用设备中获取实时能源使用数据 $mqtt->publish($topic, $usage_data, 0); $mqtt->close(); } else { echo "Failed to connect to MQTT server."; }
在上面的示例中,我们创建了一个phpMQTT对象并连接到MQTT服务器。然后,我们使用publish
方法将实时能源使用数据发送到主题energy/usage
。
require("phpMQTT.php"); $server = "mqtt.example.com"; $port = 1883; $client_id = "phpMQTT-subscriber"; $topic = "energy/usage"; $mqtt = new phpMQTT($server, $port, $client_id); if ($mqtt->connect(true, NULL, "username", "password")) { $mqtt->subscribe(array($topic => array("qos" => 0, "function" => "processMessage")), 0); while ($mqtt->proc()) { // 处理其他业务逻辑 } $mqtt->close(); } else { echo "Failed to connect to MQTT server."; } function processMessage($topic, $message) { echo "Received message on topic: $topic "; echo "Message: $message "; // 在这里可以编写处理MQTT消息的代码逻辑 }
在上面的示例中,我们创建了一个phpMQTT对象并连接到MQTT服务器。然后,我们订阅了主题energy/usage
并定义了一个用于处理消息的回调函数processMessage
。通过调用proc
Dalam contoh di atas, kami mula-mula mencipta objek phpMQTT dan disambungkan ke pelayan MQTT. Kemudian, kami melanggan satu atau lebih topik dan mentakrifkan fungsi panggil balik processMessage
untuk memproses mesej. Dengan memanggil kaedah proc
, kami boleh terus menerima dan memproses mesej daripada pelayan MQTT.
Dalam sistem pemantauan dan pengurusan tenaga jauh, bahagian peralatan merujuk kepada peralatan penggunaan tenaga, seperti penderia, meter pintar, dsb. Peranti perlu menghantar data penggunaan tenaga ke pelayan MQTT dalam masa nyata dan menerima arahan kawalan daripada pelayan.
publish
untuk menghantar data penggunaan tenaga masa nyata kepada topik tenaga/penggunaan
. tenaga/penggunaan
dan mentakrifkan fungsi panggil balik processMessage
untuk memproses mesej. Dengan memanggil kaedah proc
, kami boleh terus menerima dan memproses mesej daripada pelayan MQTT. 🎜🎜Kesimpulan🎜Sistem pengurusan dan pemantauan tenaga jauh boleh dibina dengan mudah menggunakan protokol PHP dan MQTT. Ringan dan kebolehpercayaan protokol MQTT menjadikannya sesuai untuk komunikasi masa nyata antara peranti yang menggunakan tenaga dan aplikasi web. Melalui pemantauan masa nyata dan kawalan jauh penggunaan tenaga, kita boleh mencapai matlamat penjimatan tenaga, pengurangan pelepasan dan pembangunan mampan. 🎜🎜Rujukan: 🎜🎜🎜Nyamuk - https://mosquitto.org/🎜🎜phpMQTT - https://github.com/bluerhinos/phpMQTT🎜🎜Atas ialah kandungan terperinci PHP dan MQTT: Membina sistem pemantauan dan pengurusan tenaga jauh. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!