Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Communication MQTT entre NodeMCU et Raspberry Pi 3 B+

Utilisation de MQTT, NodeMCU, DHT22, RaspberryPi et IoT MQTT Panel pour surveiller la température et l'humidité.

Utilisation d'un Raspberry Pi 3 B+ comme courtier pour plusieurs NodeMCU avec des capteurs DHT-22 mesurant la température et l'humidité et surveillant sur l'application IoT MQTT Panel. J'ai rendu l'algorithme pour NodeMCU et Raspberry évolutif. Modifiez simplement les sujets publiés et souscrits et ajoutez l'application IoT MQTT Panel pour avoir toutes les données à portée de main à tout moment.

J'ai cherché beaucoup d'informations sur Internet car je n'ai aucune connaissance de framboise, python et MQTT. J'ai donc résumé tout ce que j'ai appris et j'ai crédité ces sites Web.

Si votre connexion Internet est perdue, vos capteurs continueront d'envoyer des données à votre courtier. Cela signifie que vous pouvez enregistrer vos données !!! (bien sûr, vous devez faire de la programmation)

Veuillez me suivre pour toute mise à jour. Bientôt, je posterai une vidéo de tout en cours d'exécution!

1. Relier les choses :

À quoi ressemblera votre réseau :

2. Programmer des choses :

Vous devez d'abord vous assurer que toutes les bibliothèques sont installées sur votre IDE Arduino et sur votre Raspberry Pi 3B+.

2.1 Arduino

Installez les bibliothèques sur votre IDE Arduino.

2.2 Raspberry Pi 3 b+

Installez les bibliothèques sur votre IDE Python.

2.3 Codes de téléchargement

Téléchargez les codes respectivement sur votre NodeMCU et votre Raspberry.

2.4 Explication du code – ARDUINO IDE

Ce sont les bibliothèques mentionnées avant d'être installées sur votre IDE Arduino.

#include  // Bibliothèque Esp8266/NodeMCU#include  // Bibliothèque MQTT#include "DHT.h" // Capteur DHT  

Variables déclarées pour être utilisées dans le code :

const char* mqtt_server ="Broker_IP_Address" ; // Adresse IP du serveur MQTT 

mqtt_server :pour obtenir l'adresse IP sur Raspberry pi ouvrez un écran de terminal et tapez :

[email protected] :~ $ ifconfigwlan0:flags=4163 mtu 1500 inet 192.168.1.200 netmask 255.255.255.0 diffusion 192.168.1.255  

Dans cet exemple, l'adresse IP serait 192.168.1.200

const char* clientID ="room1" ; // L'identifiant client identifie le périphérique NodeMCU. 

ID client :Tout nom ou numéro pour identifier le NodeMCU que vous utilisez. Dans ce cas, il sera situé à room1. Elle s'appelle donc room1.

const char* topicT ="/room1/temperature" ; // Topic temperatureconst char* topicH ="/room1/humidity"; // Thème humidité 

sujetT :Sujet pour publier la température. Dans cet exemple pour la température de la pièce 1, le sujet sera "/pièce1/température".

sujetH :Sujet à publier l'humidité. Dans cet exemple pour l'humidité de la pièce1, le sujet sera "/pièce1/humidité".

const char* willTopic ="/room1/status" ; // Sujet Statusconst char* willMessage ="0"; // 0 - Déconnecté 

willSujet :Sujet pour publier le testament. Cela sera utilisé pour vérifier si le NodeMCU est connecté/allumé. S'il se déconnecte, il publiera le willMessage au sujet de la volonté. Dans ce cas "/room1/status"

willMessage  :Message à publier sur willTopic si le NodeMCU est déconnecté/éteint.

int willQoS =0;boolean willRetain =true; 

willQoS :Utilisé pour définir la qualité du service. Dans ce cas 0.

retiendra :Utilisé pour conserver le message en cas de déconnexion. Définir sur Vrai.

int counter =0 ; // Utilisé pour se reconnecter au serveur MQTT const char* swversion ="1.0"; // Version du logiciel 

compteur :compteur utilisé lors de la routine de reconnexion.

swversion :utilisé pour contrôler la révision de mon logiciel.

WiFiClient wifiClient ; Client PubSubClient (mqtt_server, 1883, wifiClient ); // 1883 est le port d'écoute pour le Broker 

client wifi  :crée un client qui peut se connecter à une adresse IP Internet et à un port spécifiés, tels que définis dans client.connect().

client() :Client est la classe de base pour tous les appels basés sur le client WiFi. Il n'est pas appelé directement, mais invoqué chaque fois que vous utilisez une fonction qui en dépend.

DHT dhtA(2, DHT22); // Instance DHT nommée dhtA, Pin sur NodeMCU D4 et type de capteur 

DHT :crée une instance nommée dhtA et attribue la broche 2 du NodeMCU V3 (D4) du capteur DHT-22. Selon les schémas ci-dessous. Si vous souhaitez utiliser une autre broche, remplacez la valeur par la bonne broche. Avant de changer la broche utilisée, vérifiez le brochage ci-dessous pour attribuer la bonne broche.

Si vous utilisez DHT-11, ce serait :

REMARQUE : Si vous utilisez la même bibliothèque que moi. Si vous utilisez une bibliothèque différente, veuillez consulter la documentation de la bibliothèque pour savoir comment déclarer les broches et les capteurs utilisés.

configuration vide() :Ici, nous initialisons les choses.

void setup() {Serial.begin(9600); // Les fins de débogage vérifient si DHT et la connexion avec MQTT Broker fonctionnent.Serial.print(swversion); // Debug. Version du logicieldhtA.begin(); // Démarrage du DHT-22 

Connexion au courtier MQTT.

delay(2000) ; // Délai pour autoriser la première connexion avec MQTT Broker 

retard(2000) :augmente le temps si la première connexion échoue. Dans ce cas, 2000 permet au NodeMCU de se connecter au Broker.

if (client.connect(clientID,"","", willTopic, willQoS, willRetain, willMessage, true)) { // Connexion à MQTT Broker 

client.connect() :expliqué ci-dessous. Extrait de : https://pubsubclient.knolleary.net/api.html#connect5

______________________________________________________________

connexion booléenne (clientID, nom d'utilisateur, mot de passe, willTopic, willQoS, willRetain, willMessage, cleanSession)

Connecte le client avec un message Will, un nom d'utilisateur, un mot de passe et un indicateur de session de nettoyage spécifiés.

Remarque  :même si la cleanSession est défini sur false 0 le client ne pas réessayez a échoué qos 1 publie. Ce drapeau n'est utile que pour maintenir les abonnements sur le courtier.

Paramètres

Retours

Source :Communication MQTT entre NodeMCU et Raspberry Pi 3 B+


Processus de fabrication

  1. Capteur de température Python et Raspberry Pi
  2. Capteur de température et de luminosité Raspberry Pi
  3. Contrôle du capteur et de l'actionneur Raspberry Pi
  4. NEW RASPBERRY PI 3 MODEL B + CARACTÉRISTIQUES ET ACHAT
  5. Créer des robots avec Raspberry Pi et Python
  6. Différence entre la galvanoplastie et l'anodisation
  7. Différence entre les métaux non ferreux et ferreux
  8. Différence entre le brasage et le soudage
  9. Différence entre forage, alésage et alésage