PHP et MQTT : créez un système de surveillance environnementale en temps réel basé sur l'Internet des objets
Avec le développement rapide de la technologie de l'Internet des objets, de plus en plus d'appareils peuvent être interconnectés. À cette époque, nous pouvons facilement surveiller divers paramètres environnementaux tels que la température, l’humidité, la pression atmosphérique, etc. grâce à des capteurs. Cependant, la manière d’obtenir et de traiter ces données en temps réel devient un enjeu important. Cet article expliquera comment utiliser PHP et MQTT pour créer un système de surveillance de l'environnement en temps réel basé sur l'Internet des objets.
MQTT (Message Queue Telemetry Transport) est un protocole de communication léger basé sur le modèle de publication/abonnement, très adapté à la communication entre appareils dans les applications IoT. Il présente les avantages d'une faible bande passante, d'une faible consommation d'énergie et d'un faible encombrement mémoire, et peut transmettre des données efficacement.
Tout d'abord, nous devons créer un serveur proxy MQTT. Les serveurs proxy MQTT courants incluent Mosquitto, EMQ et ActiveMQ. Cet article prend Mosquitto comme exemple. L'installation de Mosquitto sous le système Ubuntu est très simple. Exécutez simplement la commande suivante :
sudo apt-get update sudo apt-get install mosquitto mosquitto-clients
Une fois l'installation terminée, nous pouvons démarrer le service Mosquitto via la commande suivante :
mosquitto -v
Ensuite, nous commencez à écrire du code PHP. Tout d'abord, nous devons installer la bibliothèque client MQTT PHP, qui peut être facilement installée à l'aide de Composer :
composer require eclipse/paho-mqtt
En PHP, nous devons introduire la bibliothèque client MQTT et configurer les informations de connexion au serveur en fonction de la situation spécifique :
require_once("vendor/autoload.php"); $server = "mqtt.example.com"; // MQTT服务器地址 $port = 1883; // MQTT服务器端口 $username = "your_username"; // MQTT服务器用户名 $password = "your_password"; // MQTT服务器密码 $client_id = "your_client_id"; // 客户端ID,用于区分不同的设备 $client = new EclipseMosquittoClient($client_id); // 创建MQTT客户端实例 // 配置服务器连接信息 $client->setCredentials($username, $password); $client->connect($server, $port, 60); // 订阅主题 $client->subscribe("environment/temperature", 1); // 接收消息 while (true) { $client->loop(); } // 断开连接 $client->disconnect();
Dans Dans le code ci-dessus, nous avons d'abord introduit la bibliothèque client MQTT et créé une instance client MQTT. Nous avons ensuite configuré les informations de connexion au serveur et nous sommes connectés en utilisant le nom d'utilisateur et le mot de passe fournis. Ensuite, nous nous sommes abonnés au thème "environnement/température" et avons fixé la QoS (Quality of Service) à 1, ce qui signifie que le message est transmis au moins une fois. Enfin, nous utilisons une boucle infinie pour recevoir des messages et les traiter si besoin.
En plus de recevoir des messages, nous pouvons également utiliser la bibliothèque client MQTT pour publier des messages. Voici un exemple :
require_once("vendor/autoload.php"); $server = "mqtt.example.com"; // MQTT服务器地址 $port = 1883; // MQTT服务器端口 $username = "your_username"; // MQTT服务器用户名 $password = "your_password"; // MQTT服务器密码 $client_id = "your_client_id"; // 客户端ID,用于区分不同的设备 $client = new EclipseMosquittoClient($client_id); // 创建MQTT客户端实例 // 配置服务器连接信息 $client->setCredentials($username, $password); $client->connect($server, $port, 60); // 发布消息 $message = "25.5"; // 温度数值 $client->publish("environment/temperature", $message, 1); // 断开连接 $client->disconnect();
Dans le code ci-dessus, nous créons une instance client MQTT et configurons les informations de connexion au serveur. Ensuite, nous avons publié les données de température dans la rubrique "environnement/température" à l'aide de la fonction publier(). Il convient de noter que lors de la publication d'un message, la QoS doit être spécifiée à 1 pour garantir que le message puisse être transmis au moins une fois.
Avec l'exemple de code ci-dessus, nous pouvons construire un système de surveillance environnementale en temps réel basé sur l'Internet des objets. Nous pouvons envoyer les données du capteur au serveur MQTT, puis nous abonner au sujet via des scripts PHP et recevoir les données, puis les traiter et les afficher en conséquence.
Pour résumer, en utilisant PHP et MQTT, vous pouvez rapidement créer un système de surveillance de l'environnement en temps réel basé sur l'Internet des objets. Grâce à la flexibilité du protocole MQTT et à la commodité de développement de PHP, nous pouvons facilement réaliser la communication et le traitement des données entre les appareils. J'espère que cet article pourra inspirer les lecteurs et les aider à gagner quelque chose dans le développement d'applications IoT.
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!