Maison > Article > développement back-end > Comment ajouter des alertes en temps réel aux appareils IoT à l'aide de PHP et MQTT
Comment utiliser PHP et MQTT pour ajouter des fonctions d'alarme en temps réel aux appareils IoT
Avec le développement rapide de l'Internet des objets, de plus en plus d'appareils sont capables de communiquer et d'échanger des données en temps réel via Internet. Cependant, dans les applications pratiques, nous devons souvent surveiller et alerter l’état des équipements afin de traiter les anomalies des équipements en temps opportun. Cet article explique comment utiliser les protocoles PHP et MQTT pour ajouter des fonctions d'alarme en temps réel aux appareils IoT.
MQTT (Message Queuing Telemetry Transport) est un protocole IoT léger basé sur le modèle de publication/abonnement, qui résout efficacement le problème de la communication en temps réel entre les appareils. PHP est un langage de script côté serveur à usage général largement utilisé dans le domaine du développement Web.
Pour ajouter une fonction d'alarme en temps réel aux appareils IoT, vous devez d'abord créer un serveur MQTT. Vous pouvez utiliser Mosquitto ou Eclipse Mosquitto open source comme serveur MQTT. Utilisez la commande suivante pour installer Mosquitto sur votre système Linux :
sudo apt-get install mosquitto mosquitto-clients
Une fois l'installation terminée, démarrez le serveur Mosquitto :
mosquitto
Ensuite, nous utiliserons PHP. Bibliothèque client MQTT phpMQTT pour implémenter les fonctions d'abonnement et de publication de l'appareil. Tout d'abord, introduisez la bibliothèque phpMQTT dans le projet PHP :
require("phpMQTT.php");
Ensuite, créez une instance client MQTT et connectez-vous au serveur MQTT :
$mqtt = new phpMQTT("localhost", 1883, "ClientID" . rand()); if (!$mqtt->connect(true, null, null, null, null)) { exit(1); }
Une fois la connexion réussie, vous pouvez effectuer les opérations d'abonnement et de publication. Par exemple, abonnez-vous à un sujet :
$mqtt->subscribe("device/sensor", 0);
Publiez un message sur le sujet spécifié :
$mqtt->publish("device/sensor", "Warning: Sensor value exceeds threshold", 0);
Dans le code ci-dessus, nous nous abonnons à un sujet nommé "appareil/capteur" puis publions un message d'alarme sur le même sujet.
Bien sûr, afin d'obtenir une véritable fonction d'alarme en temps réel, nous devons également envoyer les informations d'état de l'appareil au serveur MQTT pour une surveillance et une alarme en temps réel. Le côté appareil peut utiliser Python et d'autres langages pour implémenter le client MQTT et publier régulièrement des informations sur l'état de l'appareil dans des sujets désignés.
Vous pouvez ajouter une page pour recevoir des informations sur l'état de l'appareil dans votre projet PHP, puis obtenir des informations sur l'état de l'appareil en vous abonnant à ce sujet. Par exemple :
while ($mqtt->proc()) { // 接收设备状态信息 $message = $mqtt->message; echo $message['topic'] . ": " . $message['payload'] . " "; }
Dans le code ci-dessus, nous utilisons une boucle infinie pour recevoir des informations sur l'état de l'appareil, puis les imprimons pour traitement. Lorsque l'appareil publie de nouvelles informations d'état, l'opération d'alarme correspondante sera déclenchée.
Pour résumer, il n'est pas compliqué d'ajouter une fonction d'alarme en temps réel aux appareils IoT en utilisant les protocoles PHP et MQTT. En créant un serveur MQTT, en utilisant la bibliothèque phpMQTT pour les opérations d'abonnement et de publication, et en envoyant des informations d'état du côté de l'appareil, une surveillance et une alarme en temps réel de l'état de l'appareil peuvent être obtenues. J'espère que l'introduction de cet article sera utile aux développeurs IoT.
(Remarque : l'exemple de code ci-dessus est uniquement à des fins de démonstration et n'est pas un code utilisable complet. Dans l'application réelle, veuillez le modifier et l'améliorer en fonction des besoins spécifiques.)
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!