Guide technique pour le contrôle d'appareils à distance à l'aide de PHP et MQTT

王林
Libérer: 2023-07-08 17:12:01
original
1853 Les gens l'ont consulté

Guide technique du contrôle d'appareils à distance à l'aide de PHP et MQTT

Introduction :
Le développement rapide de la technologie moderne a fait de l'Internet des objets (IoT) progressivement une réalité. Dans l'Internet des objets, divers appareils sont connectés via Internet et nous pouvons réaliser le contrôle et la surveillance à distance des appareils. MQTT est un protocole léger de transfert de messages qui facilite la communication entre les appareils. Cet article explique comment utiliser les protocoles PHP et MQTT pour contrôler les appareils à distance.

1. Préparation :
Avant de commencer, nous devons installer le serveur MQTT et PHP. L'option la plus courante consiste à utiliser Mosquitto comme serveur MQTT, qui peut être installé via des commandes telles que apt-get. Pour PHP, nous pouvons l'installer de différentes manières, comme LAMP, XAMPP, etc.

2. Construisez le serveur MQTT :

1. Installez Mosquitto :
Installez Mosquitto via la commande suivante :

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

Une fois l'installation terminée, Mosquitto démarrera automatiquement.

2. Testez le serveur Mosquitto :
Vous pouvez tester si le serveur Mosquitto fonctionne normalement en exécutant la commande suivante :

mosquitto_pub -h localhost -t test -m "Hello, MQTT"
mosquitto_sub -h localhost -t test
Copier après la connexion

Si tout est normal, vous devriez pouvoir voir le message "Bonjour, MQTT" sur le terminal. .

3. Utiliser MQTT en PHP :

1. Installez l'extension MQTT de PHP :
Il n'existe aucune fonction qui prend en charge nativement MQTT en PHP, nous devons donc installer l'extension MQTT. Il peut être installé avec la commande suivante :

sudo apt-get install php-pear php-dev libmosquitto-dev
sudo pecl install Mosquitto-alpha
Copier après la connexion

Une fois l'installation terminée, ajoutez le contenu suivant dans le fichier php.ini :

extension=mosquitto.so
Copier après la connexion

Redémarrez le serveur Apache pour que les paramètres prennent effet.

2. Écrivez un programme PHP :
Ce qui suit est un exemple simple de programme PHP pour se connecter au serveur MQTT et publier des messages :

<?php
$mqtt = new MosquittoClient();

$mqtt->connect("localhost", 1883, 60);

$message = "Hello, MQTT";
$mqtt->publish("test", $message);

$mqtt->disconnect();
unset($mqtt);
?>
Copier après la connexion

Le code ci-dessus se connectera au serveur MQTT local et publiera des messages sur le sujet "test" supérieur.

3. Abonnez-vous aux messages MQTT :
En plus de publier des messages, nous pouvons également nous abonner à des messages pour obtenir l'état de l'appareil ou des instructions de contrôle. Voici un exemple de programme PHP qui s'abonne aux messages MQTT :

<?php
$mqtt = new MosquittoClient();

$mqtt->onMessage(function($message){
    echo $message->payload;
});

$mqtt->connect("localhost", 1883, 60);

$mqtt->subscribe("test", 1);

while($mqtt->loop() == 0){
    
}

$mqtt->disconnect();
unset($mqtt);
?>
Copier après la connexion

Le code ci-dessus se connectera au serveur MQTT local et s'abonnera aux messages sur le sujet "test". Lorsqu'un message est reçu, il est imprimé sur le terminal.

4. Exemple de contrôle d'appareil à distance :
Grâce aux étapes ci-dessus, nous pouvons déjà contrôler et surveiller à distance l'appareil localement. Ensuite, nous utilisons un exemple simple pour montrer comment contrôler les appareils à distance via Internet.

1. Code côté appareil :

<?php
$mqtt = new MosquittoClient();

$mqtt->onConnect(function() use ($mqtt){
    $mqtt->publish("test", "Device connected", 0, false);
});

$mqtt->connect("mqtt.example.com", 1883, 60);

while($mqtt->loop() == 0){
    $mqtt->publish("test", "Device is working", 0, false);
    sleep(1);
}

$mqtt->disconnect();
unset($mqtt);
?>
Copier après la connexion

Dans le code ci-dessus, l'appareil se connectera à un serveur MQTT nommé "mqtt.example.com" et enverra un message "L'appareil fonctionne" pour "tester" toutes les secondes. sujet.

2. Code du terminal de contrôle :

<?php
$mqtt = new MosquittoClient();

$mqtt->onMessage(function($message){
    echo $message->payload;
});

$mqtt->connect("mqtt.example.com", 1883, 60);

$mqtt->subscribe("test", 1);

while($mqtt->loop() == 0){
    $mqtt->publish("test", "Control message", 0, false);
    sleep(1);
}

$mqtt->disconnect();
unset($mqtt);
?>
Copier après la connexion

Dans le code ci-dessus, le terminal de contrôle se connectera au même serveur MQTT et s'abonnera aux messages sur le sujet "test". Parallèlement, un message « Message de contrôle » sera envoyé au sujet « test » toutes les 1 seconde. Lorsque l'appareil reçoit le message, il peut effectuer les opérations de contrôle correspondantes.

Conclusion : 
En utilisant les protocoles PHP et MQTT, nous pouvons réaliser un contrôle et une surveillance pratiques des appareils à distance. Cet article explique comment configurer un serveur MQTT et comment utiliser le code PHP pour se connecter au serveur, publier et s'abonner aux messages. Grâce à un simple exemple de contrôle d'appareil à distance, il montre comment réaliser un contrôle à distance via Internet. Ce n'est que la pointe de l'iceberg de l'Internet des objets, j'espère que cela sera utile aux lecteurs.

Références :

  1. Site officiel de MQTT : http://mqtt.org/
  2. Page du projet Mosquitto : https://mosquitto.org/
  3. Page du projet Eclipse Paho : https://www.eclipse.org / paho/clients/php/

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!