Maison  >  Article  >  développement back-end  >  Étapes pour implémenter le contrôle d'accès à distance à l'aide de PHP et MQTT

Étapes pour implémenter le contrôle d'accès à distance à l'aide de PHP et MQTT

WBOY
WBOYoriginal
2023-07-10 16:25:441333parcourir

Étapes pour mettre en œuvre le contrôle d'accès à distance à l'aide de PHP et MQTT

Vue d'ensemble :
Le contrôle d'accès à distance fait référence à la fonction de contrôle à distance du système de contrôle d'accès via le réseau. Cet article présentera les étapes d'utilisation des protocoles PHP et MQTT pour implémenter le contrôle d'accès à distance et fournira des exemples de code correspondants.

Étape 1 : Créer un serveur MQTT
Afin de réaliser un contrôle d'accès à distance, nous devons d'abord créer un serveur MQTT pour la transmission des messages. Vous pouvez choisir d'utiliser un serveur MQTT existant ou un fournisseur de services cloud MQTT tiers, tel que EMQ X, Mosquitto, etc. Ici, nous prenons EMQ X comme exemple pour illustrer.

  1. Téléchargez et installez le serveur EMQ X.
  2. Démarrez le serveur EMQ X Vous pouvez utiliser la ligne de commande ou l'interface pour démarrer.
  3. Configurez les autorisations d'accès du serveur EMQ X, y compris le nom d'utilisateur, le mot de passe, les sujets de publication et d'abonnement, etc.

Étape 2 : Écrire le code côté du contrôleur de contrôle d'accès
Nous devons écrire un code côté contrôleur de contrôle d'accès pour nous connecter au serveur MQTT et envoyer les instructions de contrôle d'accès au serveur.

Exemple de code :

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

$mqtt_server = 'localhost'; // MQTT服务器地址
$mqtt_port = 1883; // MQTT服务器端口号
$mqtt_client_id = 'door-control'; // 客户端ID
$mqtt_topic = 'door/control'; // 发布门禁控制指令的主题

// 创建MQTT客户端实例
$mqtt = new phpMQTT($mqtt_server, $mqtt_port, $mqtt_client_id);

if(!$mqtt->connect()){
    exit(1);
}

// 发送门禁控制指令
$mqtt->publish($mqtt_topic, 'open', 0, false);

// 断开MQTT连接
$mqtt->close();

Étape 3 : Écrire le code côté du système de contrôle d'accès
Nous devons écrire un code côté du système de contrôle d'accès pour nous connecter au serveur MQTT, recevoir les instructions de contrôle d'accès et effectuer les opérations correspondantes.

Exemple de code :

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

$mqtt_server = 'localhost'; // MQTT服务器地址
$mqtt_port = 1883; // MQTT服务器端口号
$mqtt_client_id = 'door-system'; // 客户端ID
$mqtt_topic = 'door/control'; // 监听门禁控制指令的主题

// 创建MQTT客户端实例
$mqtt = new phpMQTT($mqtt_server, $mqtt_port, $mqtt_client_id);

if(!$mqtt->connect()){
    exit(1);
}

// 监听门禁控制指令
$mqtt->subscribe($mqtt_topic, 0);

while($mqtt->proc()){
    // 获取收到的消息
    $msg = $mqtt->getMsg();

    // 执行门禁控制操作
    if($msg['message'] == 'open'){
        // 执行门禁开门操作
        // TODO: 添加门禁开门的代码
    }
}

// 断开MQTT连接
$mqtt->close();

Étape 4 : Testez le contrôle d'accès à distance

  1. Exécutez le code côté contrôleur d'accès pour vous assurer qu'il peut se connecter avec succès au serveur MQTT et envoyer des instructions de contrôle d'accès.
  2. Exécutez le code latéral du système de contrôle d'accès pour vous assurer qu'il peut se connecter avec succès au serveur MQTT et surveiller les instructions de contrôle d'accès.
  3. Modifiez la commande de contrôle d'accès dans le code côté contrôleur d'accès par la commande réelle, par exemple, « ouvrir » signifie la commande d'ouverture de la porte.
  4. Exécutez le code sur le contrôleur de contrôle d'accès et observez si le système de contrôle d'accès peut recevoir avec succès les instructions de contrôle d'accès et effectuer les opérations correspondantes.

Résumé : 
Grâce aux étapes ci-dessus, nous avons implémenté avec succès la fonction de contrôle d'accès à distance à l'aide des protocoles PHP et MQTT. Nous envoyons des instructions de contrôle d'accès en écrivant le code côté contrôleur de contrôle d'accès, et recevons des instructions de contrôle d'accès et effectuons les opérations correspondantes en écrivant le code côté système de contrôle d'accès. Grâce au protocole MQTT, nous pouvons réaliser un contrôle d'accès à distance rapide et fiable.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn