Maison > développement back-end > tutoriel php > Contrôle à distance des appareils IoT à l'aide de PHP et MQTT

Contrôle à distance des appareils IoT à l'aide de PHP et MQTT

PHPz
Libérer: 2023-07-08 12:52:01
original
1508 Les gens l'ont consulté

Utilisez PHP et MQTT pour réaliser le contrôle à distance des appareils IoT

Avec le développement rapide de la technologie IoT, de plus en plus d'appareils sont connectés ensemble via Internet, formant un énorme système IoT. Le contrôle à distance de ces appareils est devenu une exigence importante. Cet article expliquera comment utiliser les protocoles PHP et MQTT pour réaliser le contrôle à distance des appareils IoT et donnera des exemples de code correspondants.

1. Qu'est-ce que le protocole MQTT ?

MQTT (Message Queuing Telemetry Transport) est un protocole de communication léger spécialement conçu pour la communication entre les appareils IoT dans des environnements réseau à faible bande passante et instables. Il utilise un modèle de publication/abonnement, la messagerie est simple et efficace et prend en charge un large éventail de plates-formes et d'appareils.

2. Installez le serveur MQTT et l'extension PHP

  1. Installez le serveur MQTT

    Il existe de nombreuses options pour le serveur MQTT, telles que Mosquitto et emqttd. Ici, nous prenons Mosquitto comme exemple.

    Sous Linux, vous pouvez installer le serveur Mosquitto à l'aide de la commande suivante :

    sudo apt-get install mosquitto
    Copier après la connexion

    Sous Windows, vous pouvez télécharger le programme d'installation depuis https://mosquitto.org/download/ pour l'installer.

  2. Installer les extensions PHP

    PHP propose de nombreuses extensions client MQTT, telles que php-mosquitto et php-mqtt, etc. Ici, nous prenons php-mosquitto comme exemple.

    Sous Linux, vous pouvez utiliser la commande suivante pour installer l'extension php-mosquitto :

    sudo apt-get install php-mosquitto
    Copier après la connexion

3 Utilisez PHP pour vous connecter et publier des messages sur le serveur MQTT

Un exemple simple est donné ci-dessous pour montrer comment l'utiliser. PHP pour se connecter à un serveur MQTT et publier le message sur le sujet spécifié.

<?php
$server = "mqtt://localhost"; // MQTT服务器地址
$port = 1883; // MQTT服务器端口
$username = "your_username"; // MQTT服务器用户名
$password = "your_password"; // MQTT服务器密码
$client_id = "your_client_id"; // 客户端ID
$topic = "your_topic"; // 订阅/发布的主题

$client = new MosquittoClient($client_id); // 创建MQTT客户端实例

$client->setCredentials($username, $password); // 设置用户名和密码

$client->onConnect(function($code, $message) use ($client, $topic) {
    if ($code == 0) {
        echo "Connected to MQTT server
";
        $client->publish($topic, "Hello, MQTT!"); // 发布消息到指定主题
        $client->disconnect(); // 断开连接
    } else {
        echo "Failed to connect to MQTT server
";
    }
});

$client->connect($server, $port); // 连接到MQTT服务器

$client->loopForever(); // 持续监听MQTT消息
?>
Copier après la connexion

Dans le code ci-dessus, nous créons d'abord une instance client MQTT et définissons les informations de connexion et d'authentification. Ensuite, une fonction de rappel est définie lorsque la connexion est établie avec succès, un message est publié dans le sujet spécifié et la connexion est déconnectée. Enfin, utilisez la méthode connect pour vous connecter au serveur MQTT et appelez la méthode loopForever pour écouter en permanence les messages MQTT.

4. Utilisez PHP pour vous abonner et recevoir des messages MQTT

Un exemple simple est donné ci-dessous pour montrer comment utiliser PHP pour vous connecter au serveur MQTT, vous abonner et recevoir des messages.

<?php
$server = "mqtt://localhost"; // MQTT服务器地址
$port = 1883; // MQTT服务器端口
$username = "your_username"; // MQTT服务器用户名
$password = "your_password"; // MQTT服务器密码
$client_id = "your_client_id"; // 客户端ID
$topic = "your_topic"; // 订阅/发布的主题

$client = new MosquittoClient($client_id); // 创建MQTT客户端实例

$client->setCredentials($username, $password); // 设置用户名和密码

$client->onConnect(function($code, $message) use ($client, $topic) {
    if ($code == 0) {
        echo "Connected to MQTT server
";
        $client->subscribe($topic); // 订阅指定主题
    } else {
        echo "Failed to connect to MQTT server
";
    }
});

$client->onMessage(function($message) {
    echo "Received message: " . $message->payload . "
"; // 输出接收到的消息
});

$client->connect($server, $port); // 连接到MQTT服务器

$client->loopForever(); // 持续监听MQTT消息
?>
Copier après la connexion

Dans le code ci-dessus, nous créons d'abord une instance client MQTT et définissons les informations de connexion et d'authentification. Ensuite, une fonction de rappel est définie pour s'abonner au sujet spécifié lorsque la connexion est établie avec succès. Enfin, utilisez la méthode connect pour vous connecter au serveur MQTT et appelez la méthode loopForever pour surveiller en permanence les messages MQTT et afficher le contenu du message lorsque le message est reçu.

5. Résumé

Le contrôle à distance des appareils IoT peut être réalisé à l'aide des protocoles PHP et MQTT. Avec l'exemple de code ci-dessus, nous pouvons facilement nous connecter au serveur MQTT et contrôler et surveiller les appareils IoT en publiant et en nous abonnant à des sujets. Cela facilite le développement et le déploiement rapides d’applications IoT.

Ce qui précède est le contenu pertinent sur l'utilisation de PHP et MQTT pour réaliser le contrôle à distance des appareils IoT. J'espère que cet article sera utile aux lecteurs.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal