Maison  >  Article  >  développement back-end  >  Collecte de données de capteurs en temps réel à l'aide de PHP et MQTT

Collecte de données de capteurs en temps réel à l'aide de PHP et MQTT

PHPz
PHPzoriginal
2023-06-28 08:17:101945parcourir

Avec le développement de la technologie de l'Internet des objets, de plus en plus de capteurs ont commencé à être utilisés dans divers domaines pour nous fournir des données plus précises. Cependant, la manière de collecter et d’utiliser efficacement ces données a toujours été une préoccupation dans l’industrie. Cet article présentera une solution de collecte de données de capteurs en temps réel basée sur les protocoles PHP et MQTT.

1. Introduction au protocole MQTT

Le protocole MQTT est un protocole de communication léger basé sur un modèle de publication-abonnement, adapté aux petits appareils et aux réseaux peu fiables à faible bande passante. Le protocole MQTT contient trois rôles principaux : éditeur, abonné et serveur proxy (broker). L'éditeur publie des données dans une rubrique et les abonnés peuvent s'abonner à cette rubrique pour recevoir les messages publiés par l'éditeur. Le serveur proxy est responsable du transfert et du stockage des messages.

2. Étapes de mise en œuvre

  1. Créer un serveur proxy MQTT

Étant donné que le protocole MQTT nécessite un serveur proxy pour transférer et stocker les messages, nous devons d'abord créer un serveur proxy MQTT. Les serveurs proxy MQTT courants incluent EMQ, Mosquitto, etc. Cet article prend EMQ comme exemple.

Après avoir installé EMQ, vous devez effectuer certaines configurations, notamment l'ouverture du port MQTT, la configuration du nom d'utilisateur et du mot de passe, etc. Une fois la configuration terminée, vous pouvez vous connecter au serveur proxy via le client MQTT pour les tests.

  1. Construire un serveur Web

Afin de collecter les données des capteurs en temps réel et de les traiter, nous devons construire un serveur Web pour recevoir et traiter les données. Cet article utilise le langage PHP pour créer un serveur Web.

En PHP, nous pouvons utiliser la bibliothèque PHP Mosquitto pour implémenter les fonctions du client MQTT. Tout d’abord, vous devez télécharger et installer la bibliothèque et la référencer dans le projet PHP.

  1. Écrire du code PHP

(1) Connectez-vous au serveur proxy MQTT :

$mqtt = new MosquittoClient();
$mqtt->connect('localhost', 1883, 60);

(2) Abonnez-vous au sujet :

$mqtt->subscribe('sensor/data', 0);

(3) Traitez le message :

$mqtt->onMessage(function ($msg) {
    // 处理传感器数据
});

(4) Publier le message :

$mqtt->publish('sensor/data', 'hello, world!', 0);

(5) Démarrez le client :

$mqtt->loopForever();

Grâce au code ci-dessus, nous pouvons implémenter les fonctions de base du client MQTT, notamment la connexion au serveur proxy MQTT, l'abonnement à des sujets, le traitement des messages et la publication de messages, etc.

  1. Connectez les capteurs et envoyez des données

Dans les applications pratiques, nous devons connecter des capteurs réels et envoyer leurs données collectées au serveur proxy MQTT. Ici, nous prenons comme exemple la connexion d'un capteur de température et l'envoi des données de température collectées au serveur proxy MQTT.

Connectez le capteur de température à la carte Arduino et écrivez un programme via Arduino pour collecter les données de température et l'envoyer au serveur proxy MQTT :

#include <Wire.h>
#include <Adafruit_MLX90614.h>
#include <PubSubClient.h>
#include <ESP8266WiFi.h>

Adafruit_MLX90614 mlx = Adafruit_MLX90614();
WiFiClient wifiClient;
PubSubClient mqttClient(wifiClient);

void setup() {
  Serial.begin(115200);
  mlx.begin();
  WiFi.begin("ssid", "password");   //连接Wi-Fi
  while (WiFi.status() != WL_CONNECTED) {
      delay(1000);
  }
  mqttClient.setServer("localhost", 1883);   //连接MQTT服务器
}

void loop() {
  mqttClient.loop();   //连接MQTT服务器
  float temp = mlx.readObjectTempC();   //读取温度
  mqttClient.publish("sensor/data", String(temp).c_str());   //发送温度数据
  delay(5000);
}

Grâce au programme ci-dessus, nous pouvons connecter le capteur de température, collecter des données de température et l'envoyer à la fonctionnalité du serveur proxy MQTT.

  1. Traitement et affichage des données

Après avoir reçu les données envoyées par le capteur, nous pouvons les traiter via du code PHP, comme enregistrer les données de température dans la base de données ou les afficher en temps réel.

La méthode spécifique de traitement et d'affichage des données des capteurs à l'aide du code PHP peut être sélectionnée et conçue en fonction des besoins réels.

3. Résumé

Cet article présente principalement une solution pour réaliser une collecte de données de capteurs en temps réel basée sur le protocole PHP et MQTT. En se connectant au serveur proxy MQTT, en utilisant le code PHP pour implémenter les fonctions du client MQTT, en se connectant au capteur et en envoyant des données, la collecte de données en temps réel et le traitement du capteur peuvent être réalisés. Cette solution peut être largement utilisée dans divers domaines, tels que la maison intelligente, la surveillance environnementale à distance, etc.

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!

Déclaration:
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