Maison > Article > développement back-end > Guide technique pour le contrôle d'éclairage à distance avec PHP et MQTT
Guide technique pour le contrôle à distance de l'éclairage à l'aide de PHP et MQTT
Introduction :
Avec le développement continu de l'Internet des objets, les appareils de contrôle à distance deviennent de plus en plus courants. Le contrôle de l'éclairage à distance est également l'une des applications, et cette fonction peut être facilement réalisée à l'aide de PHP et MQTT. Cet article expliquera comment utiliser PHP et MQTT pour implémenter le contrôle de l'éclairage à distance et fournira des exemples de code pour référence aux lecteurs.
1. Préparation
Créer une table de base de données
Créez une table de base de données pour stocker les informations sur l'état de l'éclairage. Vous pouvez utiliser MySQL ou d'autres systèmes de gestion de bases de données pour créer des tables, et la structure des tables est la suivante :
CREATE TABLE `lights` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `name` VARCHAR(50) NOT NULL, `status` ENUM('off', 'on') NOT NULL DEFAULT 'off', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Installez la bibliothèque client MQTT
L'utilisation de MQTT en PHP nécessite l'utilisation de la bibliothèque client MQTT. La bibliothèque client MQTT peut être installée à l'aide du package mosquitto. Le package mosquitto peut être installé à l'aide de la commande suivante :
sudo apt-get install mosquitto sudo apt-get install php-mosquitto
Une fois l'installation terminée, vous pouvez vérifier si l'extension mosquitto est installée avec succès en exécutant php -m | grep mosquitto
. php -m | grep mosquitto
来验证mosquitto扩展是否安装成功。
二、编写PHP代码
首先,需要编写PHP代码来实现远程灯光控制。
连接MQTT服务器
首先,需要引入MQTT客户端库,并使用MosquittoClient
来连接MQTT服务器。代码如下所示:
$client = new MosquittoClient(); $client->connect('127.0.0.1', 1883, 60);
订阅MQTT主题
接下来,需要订阅MQTT主题以接收远程控制指令。可以使用MosquittoClient
的onMessage
方法来处理收到的消息。代码如下所示:
$client->onMessage(function($message){ // 处理收到的消息 }); $client->subscribe('light_control/#', 1);
处理收到的消息
在onMessage
Tout d'abord, vous devez écrire du code PHP pour réaliser le contrôle de l'éclairage à distance.
MosquittoClient
pour vous connecter au serveur MQTT. Le code est le suivant : $client->onMessage(function($message) use ($client){ $payload = $message->payload; list($command, $lightId) = explode('/', $message->topic); // 更新数据库中的灯光状态 // ... // 发布当前状态给订阅者 $client->publish("light_status/$lightId", $payload, 1); });Abonnez-vous au sujet MQTT
Ensuite, vous devez vous abonner au sujet MQTT pour recevoir les instructions de contrôle à distance. Vous pouvez utiliser la méthode onMessage
de MosquittoClient
pour gérer le message reçu. Le code est le suivant :
if ($_SERVER['REQUEST_METHOD'] === 'GET' && isset($_GET['lightId']) && isset($_GET['status'])) { $lightId = $_GET['lightId']; $status = $_GET['status']; // 更新数据库中的灯光状态 // ... // 发布状态给订阅者 $client->publish("light_status/$lightId", $status, 1); }🎜🎜🎜Traitement du message reçu🎜Dans la fonction de rappel
onMessage
, le message reçu peut être traité. Dans cet exemple, nous mettrons à jour l'état de la lumière dans la base de données et publierons l'état actuel aux abonnés. Le code est le suivant : 🎜connect('127.0.0.1', 1883, 60); $client->onMessage(function($message) use ($client){ $payload = $message->payload; list($command, $lightId) = explode('/', $message->topic); // 更新数据库中的灯光状态 // ... // 发布当前状态给订阅者 $client->publish("light_status/$lightId", $payload, 1); }); $client->subscribe('light_control/#', 1); if ($_SERVER['REQUEST_METHOD'] === 'GET' && isset($_GET['lightId']) && isset($_GET['status'])) { $lightId = $_GET['lightId']; $status = $_GET['status']; // 更新数据库中的灯光状态 // ... // 发布状态给订阅者 $client->publish("light_status/$lightId", $status, 1); } while (true) { $client->loop(); sleep(1); } ?>🎜🎜🎜Contrôlez l'état de la lumière🎜Enfin, vous devez fournir une interface capable de contrôler l'état de la lumière. Dans cet exemple, nous utiliserons les requêtes GET pour contrôler l'état de la lumière. Le code ressemble à ceci : 🎜rrreee🎜L'exemple de code PHP complet se trouve en annexe de cet article. 🎜🎜🎜🎜3. Résumé🎜🎜Cet article présente comment utiliser PHP et MQTT pour réaliser un contrôle d'éclairage à distance. Tout d'abord, vous devez installer le serveur MQTT et créer la table de base de données correspondante. Ensuite, écrivez du code PHP pour vous connecter au serveur MQTT, abonnez-vous au sujet MQTT, traitez les messages reçus et fournissez une interface pour contrôler l'état de la lumière. J'espère que cet article pourra être utile aux lecteurs. 🎜🎜Annexe : Exemple de code PHP complet🎜rrreee
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!