Table des matières:
- Étape 1: Spécification matérielle et logicielle
- Étape 2: Capteurs de pression et de température sans fil
- Étape 3: connexion au Wi-Fi
- Étape 4: Configuration d'UbiDots sur ESP32
- Étape 5: Publication des lectures des capteurs sur UbiDots
- Étape 6: Visualiser les données
- Étape 7: Code général
Vidéo: Publication des données du capteur de pression sans fil à l'aide de MQTT : 7 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:08
ESP32 et ESP 8266 sont des SoC très familiers dans le domaine de l'IoT. Ce sont en quelque sorte une aubaine pour les projets IoT. ESP 32 est un appareil avec WiFi et BLE intégrés. Donnez simplement votre SSID, mot de passe et configurations IP et intégrez les choses dans le cloud. Ici, dans ce instructable, nous réfléchirons à certains des termes de base de l'IoT comme la plate-forme IoT, MQTT, les portails captifs, etc. Alors, passons en revue
- L'architecture IoT en termes très simples consiste en un appareil intégré et une plate-forme IoT pour mettre l'appareil dans le cloud. Ici, nous utilisons la plate-forme UbiDots IoT pour visualiser les données des capteurs.
- La gestion des paramètres IP et des informations d'identification de l'utilisateur peut être un casse-tête pour l'utilisateur. Que faire si l'utilisateur souhaite modifier les informations d'identification WiFi ? Que faire si l'utilisateur souhaite changer les paramètres DHCP/IP statique ? Flasher l'ESP32 à chaque fois n'est pas fiable et même pas la solution à ces problèmes. Nous allons donc passer par le portail captif pour enregistrer les identifiants WiFi et autres configurations.
- MQTT est en train de devenir un terme très courant dans le monde de l'IoT. il a dépassé les demandes et les réponses (HTTP) par Publier et S'abonner en raison de l'architecture rapide, robuste et allégée.
Ici, dans ce instructable, nous allons démontrer.
- Donner des informations d'identification WiFi et MQTT à l'aide du portail captif.
- Publication et abonnement de plusieurs données de capteurs à UbiDots.
- Lecture des données du capteur à partir du capteur de pression et de température sans fil
- Hébergement d'un formulaire Web à partir de l'ESP32.
- Lecture et écriture à partir de SPIFFS ESP32.
Étape 1: Spécification matérielle et logicielle
Spécification matérielle
- ESP32 Wi-Fi/BLE
- Capteur de pression et de température sans fil
Spécification du logiciel
- IDE Arduino
- XCTU
- Utilitaire Labview
Étape 2: Capteurs de pression et de température sans fil
Caractéristiques
- Capteur de température de pression sans fil à longue portée de capteur de qualité industrielle
- Plage de fonctionnement 0 à 14 000 mbar -40° à +85°C (-40° à 185°F)
- Résolution de pression de calcul interne configurable 0,012 à 0,065 mbar
- Résolution de température de calcul interne configurable 0,002 à 0,012 °C
- Précision ±2,5 mbar, ±2 °C
- Sorties de pression absolue, de pression relative et de changement d'altitude relative
- Portée en visibilité directe de 2 milles avec antenne embarquée
- Portée LOS supérieure jusqu'à 28 miles avec des antennes à gain élevé
- Interface avec Raspberry Pi, Microsoft® Azure®, Arduino et plus
- Réseau maillé sans fil utilisant DigiMesh®
Configuration du capteur de pression et de température sans fil à l'aide de Labview Utility et XCTU
Le capteur fonctionne en deux modes
- Mode de configuration: configurez l'ID de casserole, le délai, le nombre de tentatives, etc.
- Mode d'exécution: nous exécutons l'appareil en mode d'exécution. Et pour analyser ces valeurs, nous utilisons l'utilitaire Labview
Cette interface utilisateur Labview affiche les valeurs dans de jolis graphiques. Il affiche les valeurs actuelles et passées. Vous pouvez accéder à ce lien pour télécharger l'interface utilisateur Labview. cliquez sur l'icône Exécuter dans le menu de la page de destination pour passer en mode exécution.
Étape 3: connexion au Wi-Fi
Nous utilisons le portail captif pour enregistrer les informations d'identification WiFi et survoler les paramètres IP. Pour l'introduction détaillée sur le portail captif, vous pouvez passer par l'instructable suivante.
Le portail captif nous donne la possibilité de choisir entre les paramètres statiques et DHCP. Entrez simplement les informations d'identification telles que l'IP statique, le masque de sous-réseau, la passerelle et la passerelle de capteur sans fil sera configurée sur cette IP.
Une page Web est hébergée où une liste montrant les réseaux WiFi disponibles et là RSSI. Sélectionnez le réseau WiFi et le mot de passe et entrez soumettre. Les informations d'identification seront enregistrées dans l'EEPROM et le paramètre IP sera enregistré dans le SPIFFS. Vous trouverez plus d'informations à ce sujet dans cette instructable.
Étape 4: Configuration d'UbiDots sur ESP32
Ici, nous utilisons des capteurs de pression et de température sans fil avec l'appareil ESP 32 pour obtenir les données de température et d'humidité. Nous envoyons les données à UbiDots en utilisant le protocole MQTT. MQTT suit un mécanisme de publication et d'abonnement plutôt qu'une demande et une réponse. Il est plus rapide et fiable que HTTP. Cela fonctionne comme suit.
- Nous utilisons le planificateur de tâches pour planifier la tâche, comme récupérer les données des capteurs, publier les lectures des capteurs, s'abonner au sujet MQTT.
- Tout d'abord, incluez les fichiers d'en-tête du planificateur de tâches, son instance et planifie les tâches.
- Nous avons programmé deux tâches faisant référence à deux opérations de contrôle différentes.
#define _TASK_TIMEOUT#include Planificateur ts; //---------Tâches------------// Tâche tSensor(4 * TASK_SECOND, TASK_FOREVER, &taskSensorCallback, &ts, false, NULL, &taskSensorDisable); Tâche tWiFi(10* TASK_SECOND, TASK_FOREVER, &taskWiFiCallback, &ts, false, NULL, &taskWiFiDisable);
- La tâche 1 sert à lire la valeur du capteur, cette tâche s'exécute pendant 1 seconde jusqu'à ce qu'elle atteigne le délai d'attente de 10 secondes.
- Lorsque la tâche1 atteint son délai d'expiration, nous nous connectons au courtier Wifi et MQTT local.
- Maintenant, la tâche 2 est activée et nous désactivons la tâche 1
- La tâche 2 sert à publier les données du capteur sur le courtier UbiDots MQTT, cette tâche s'exécute pendant 20 secondes jusqu'à ce qu'elle atteigne un délai d'attente de 20 secondes
- Lorsque la tâche 2 atteint son délai d'expiration, la tâche 1 est à nouveau activée et la tâche 2 est désactivée. Ici encore, nous obtenons la valeur mise à jour et le processus continue.
Lecture des données du capteur I2C
Nous obtenons une trame de 29 octets des capteurs de température et d'humidité sans fil. Ce cadre est manipulé pour obtenir les données réelles de température et d'humidité
si (Série1.disponible())
{ data[0] = Serial1.read(); retard(k); if(data[0]==0x7E) { while (!Serial1.available()); for (i = 1; i< 36; i++) { data = Serial1.read(); retard(1); } if(data[15]==0x7F) /////// pour vérifier si les données reçues sont correctes { if(data[22]==0x06) //////// assurez-vous que le type de capteur est correct { int cTemp = ((((data[24]) * 256) + data[25])); int16_t abs_pressure = ((((uint16_t)(data[26])<<8)| data[27])*0.001); int rlt_pressure = ((((data[28]) * 256) + data[29])*0.001); int16_t delta_alt = ((((uint16_t)(data[30])<<8)| data[31])*0.01); batterie flottante = ((données[18] * 256) + données[19]); tension d'entretien = 0,00322 * batterie; Serial.print("Numéro de capteur "); Serial.println(data[16]); Serial.print("Type de capteur "); Serial.println(data[22]); Serial.print("Version du micrologiciel "); Serial.println(data[17]); Serial.print("Température en Celsius:"); Serial.print(cTemp); Serial.println("C"); Serial.print("Pression absolue:"); Serial.println(abs_pressure); Serial.print(" mbar"); Serial.print("Pression relative:"); Serial.println(rlt_pressure); Serial.print(" mbar"); Serial.print("Delta Altitude:"); Serial.println(delta_alt); Serial.print(" meter"); Serial.print("Valeur ADC:"); Serial.println(batterie); Serial.print("Tension de la batterie:"); Serial.print(tension); Serial.println("\n"); if (tension < 1) { Serial.println ("Il est temps de remplacer la batterie"); } } }else{ pour (i = 0; i< 36; i++) { Serial.print(data); Serial.print(", "); retard(1); }} } }
Connexion à l'API UbiDots MQTT
Incluez le fichier d'en-tête du processus MQTT
#comprendre
définir d'autres variables pour MQTT comme le nom du client, l'adresse du courtier, l'ID du jeton
#define TOKEN "BBFF-************************************" // Votre TOKEN Ubidots#define MQTT_CLIENT_NAME "******************************"
char mqttBroker = "things.ubidots.com";
charge utile char[100]; sujet char[150]; //créer une variable pour stocker le jeton d'ID de jeton
Étape 5: Publication des lectures des capteurs sur UbiDots
Créez des variables pour stocker différentes données de capteur et créez une variable char pour stocker le sujet
#define VARIABLE_LABEL_TEMPF "tempF" // Assertion du libellé de la variable#define VARIABLE_LABEL_TEMPC "tempC" // Assinger le libellé de la variable #define VARIABLE_LABEL_BAT "bat" #define VARIABLE_LABEL_HUMID "humid" // Assumer le libellé de la variable
char topic1[100];
char topic2[100]; char topic3[100];
publier les données dans le sujet MQTT mentionné, la charge utile ressemblera à { "tempc": {value: "tempData"}}
sprintf(sujet1, "%s", ""); sprintf(topic1, "%s%s", "/v1.6/devices/", DEVICE_LABEL); sprintf(charge utile, "%s", ""); // Nettoie la charge utile sprintf(payload, "{"%s\":", VARIABLE_LABEL_TEMPC); // Ajoute la valeur sprintf(payload, "%s{"value\":%s}", payload, str_cTemp); // Ajoute la valeur sprintf(payload, "%s}", payload); // Ferme les crochets du dictionnaire Serial.println(payload); Serial.println(client.publish(topic1, payload) ? "published": "notpublished"); //Faire de même pour les autres sujets
client.publish() publie les données sur UbiDots
Étape 6: Visualiser les données
- Allez sur Ubidots et connectez-vous à votre compte.
- Accédez au tableau de bord à partir de l'onglet Données répertorié en haut.
- Cliquez maintenant sur l'icône "+" pour ajouter les nouveaux widgets.
- Sélectionnez un widget dans la liste et ajoutez une variable et des appareils.
- Les données des capteurs peuvent être visualisées sur le tableau de bord à l'aide de différents widgets.
Étape 7: Code général
Le code Over pour HTML et ESP32 se trouve dans ce référentiel GitHub.
Crédits
- Carte de dérivation ncd ESP32.
- Capteurs de pression et de température sans fil ncd
- pubsubclient
- UbiDots
- Planificateur de tâches
Conseillé:
Envoi des données du capteur de température et d'humidité sans fil vers Excel : 34 étapes
Envoi des données du capteur de température et d'humidité sans fil à Excel : nous utilisons ici le capteur de température et d'humidité de NCD, mais les étapes restent les mêmes pour n'importe quel produit ncd, donc si vous avez d'autres capteurs sans fil ncd, faites l'expérience libre d'observer à côté. Au moyen de l'arrêt de ce texte, vous devez
Données du capteur de vibration et de température sans fil vers MySQL à l'aide de Node-RED : 40 étapes
Données du capteur de vibration et de température sans fil vers MySQL à l'aide de Node-RED : Présentation du capteur de vibration et de température sans fil industriel IoT à longue portée de NCD, offrant une portée allant jusqu'à 3 km grâce à l'utilisation d'une structure de réseau maillé sans fil. Intégrant un capteur de vibration et de température de précision 16 bits, cet appareil trans
Envoi des données des capteurs de vibrations et de température sans fil vers Excel à l'aide de Node-RED : 25 étapes
Envoi de données de capteur de vibration et de température sans fil vers Excel à l'aide de Node-RED : Présentation du capteur de vibration et de température sans fil industriel IoT à longue portée de NCD, offrant une portée allant jusqu'à 3 km grâce à l'utilisation d'une structure de réseau maillé sans fil. Intégrant un capteur de vibration et de température de précision 16 bits, cet appareil trans
Envoi des données du capteur de température et d'humidité sans fil IoT longue portée à la feuille Google : 39 étapes
Envoi des données du capteur de température et d'humidité sans fil IoT à longue portée à la feuille Google : nous utilisons ici le capteur de température et d'humidité de NCD, mais les étapes restent les mêmes pour n'importe quel produit ncd, donc si vous avez d'autres capteurs sans fil ncd, faites l'expérience libre d'observer à côté d'ailleurs. Au moyen de l'arrêt de ce texte, vous devez
Visualiser les données des capteurs sans fil à l'aide de Google Charts : 6 étapes
Visualisation des données de capteurs sans fil à l'aide de Google Charts : L'analyse prédictive des machines est très nécessaire afin de minimiser les temps d'arrêt de la machine. Un contrôle régulier aide à améliorer le temps de service de la machine et à son tour améliore sa tolérance aux pannes. Capteur de vibration et de température sans fil