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
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
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
Une fois l'installation terminée, ajoutez le contenu suivant dans le fichier php.ini :
extension=mosquitto.so
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); ?>
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); ?>
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); ?>
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); ?>
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 :
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!