start:arduino:mqtt:esp32
Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
start:arduino:mqtt:esp32 [2023/12/12 07:11] – créée gerardadmin | start:arduino:mqtt:esp32 [2023/12/12 07:40] (Version actuelle) – [MQTT et ESP32] gerardadmin | ||
---|---|---|---|
Ligne 2: | Ligne 2: | ||
[[https:// | [[https:// | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | |||
+ | |||
+ | ====== Utiliser le capteur DHT11 avec ESP32 et mqtt broker ====== | ||
+ | |||
+ | Qu’est-ce que le MQTT server | ||
+ | |||
+ | Le MQTT (transport de télémétrie Message Queuing) est un protocole de messagerie Client / Serveur de publication / abonnement qui est léger, idéal et facile à mettre en œuvre pour les appareils connectés «Internet of things». Ce protocole vous permet d' | ||
+ | |||
+ | Le protocole MQTT fonctionne généralement sur le TCP / IP. Il est compatible avec plusieurs architectures, | ||
+ | MQTT client and MQTT broker | ||
+ | |||
+ | MQTT Client: tout appareil (comme esp32, ESP8266…) connecté à un MQTT broker via un réseau sans fil (wifi …). Le rôle du client est la collecte des informations et les publie sous forme de messages à un broker sur le réseau. | ||
+ | MQTT Broker: Le rôle principal du MQTT broker est de recevoir les informations (température, | ||
+ | MQTTLens | ||
+ | MQTTLens est une application Google chrome qui vous permet de publier et de s’abonner sur le MQTT broker. | ||
+ | DHT11sensor and ESP32 et cloudMQTT | ||
+ | |||
+ | Le but de ce projet est de lire la température et l' | ||
+ | |||
+ | Matériels utilisés | ||
+ | |||
+ | Une carte ESP32 | ||
+ | Un capteur de température et d’humidité DHT11 | ||
+ | Résistance 1k | ||
+ | Une plaque d’essai | ||
+ | Fils de connexion | ||
+ | Câble USB pour l’alimentation | ||
+ | |||
+ | Schéma de réalisation sous le logiciel fritzing | ||
+ | |||
+ | Affectation des composants aux broches d’ESP32 | ||
+ | |||
+ | Le capteur d’humidité est connecté à la broche numéro 4 | ||
+ | Configuration du compte MQTT Cloud | ||
+ | |||
+ | Pour configurer un compte sur Cloud MQTT, accédez à son site Web officiel ici et inscrivez-vous à l’aide de votre Gmail ou avec votre compte GitHub. | ||
+ | |||
+ | Après la connexion, cliquez sur «+ Créer New Instance» pour créer une nouvelle instance. | ||
+ | |||
+ | Entrez maintenant le nom qui décrit votre instance et sélectionnez le plan que vous voulez dans l' | ||
+ | |||
+ | Dans l' | ||
+ | |||
+ | Maintenant, votre instance est créée et vous pouvez afficher vos données comme le Server, le Port, le User et le Password. | ||
+ | |||
+ | Pour vous abonner et publier des messages sur le broker MQTT, vous pouvez utiliser une application MQTTlens de Google Chrome ou une autre application. Vous pouvez télécharger l’application MQTTlens | ||
+ | |||
+ | Lancez cette application et configurez une connexion avec MQTT broker comme suite: | ||
+ | |||
+ | |||
+ | |||
+ | <code c Programme_de_simulation.ino> | ||
+ | |||
+ | #include < | ||
+ | |||
+ | #include < | ||
+ | |||
+ | #include " | ||
+ | |||
+ | const char* ssid = " | ||
+ | |||
+ | const char* password = " | ||
+ | |||
+ | const char* mqttServer = " | ||
+ | |||
+ | const int mqttPort = xxxxxxxx; | ||
+ | |||
+ | const char* mqttUser = " | ||
+ | |||
+ | const char* mqttPassword = " | ||
+ | |||
+ | #define DHTPIN D2 | ||
+ | |||
+ | #define DHTTYPE DHT11 | ||
+ | |||
+ | DHT dht(DHTPIN, DHTTYPE); | ||
+ | |||
+ | //#define humidity_topic " | ||
+ | |||
+ | //#define humidity_topic " | ||
+ | |||
+ | WiFiClient espClient; | ||
+ | |||
+ | PubSubClient client(espClient); | ||
+ | |||
+ | long lastMsg = 0; | ||
+ | |||
+ | char msg[50]; | ||
+ | |||
+ | int value = 0; | ||
+ | |||
+ | void setup() { | ||
+ | |||
+ | Serial.begin(115200); | ||
+ | | ||
+ | dht.begin(); | ||
+ | | ||
+ | pinMode(hsensor1, | ||
+ | | ||
+ | WiFi.begin(ssid, | ||
+ | | ||
+ | while (WiFi.status() != WL_CONNECTED) { | ||
+ | | ||
+ | delay(500); | ||
+ | | ||
+ | Serial.println(" | ||
+ | | ||
+ | } | ||
+ | | ||
+ | Serial.println(" | ||
+ | | ||
+ | client.setServer(mqttServer, | ||
+ | | ||
+ | // | ||
+ | | ||
+ | while (!client.connected()) { | ||
+ | | ||
+ | Serial.println(" | ||
+ | | ||
+ | if (client.connect(" | ||
+ | | ||
+ | Serial.println(" | ||
+ | | ||
+ | } else { | ||
+ | | ||
+ | Serial.print(" | ||
+ | | ||
+ | Serial.print(client.state()); | ||
+ | | ||
+ | delay(2000); | ||
+ | | ||
+ | } | ||
+ | | ||
+ | } | ||
+ | | ||
+ | } | ||
+ | |||
+ | void reconnect() { | ||
+ | |||
+ | // Loop until we're reconnected | ||
+ | |||
+ | while (!client.connected()) { | ||
+ | |||
+ | Serial.print(" | ||
+ | |||
+ | // Attempt to connect | ||
+ | |||
+ | if (client.connect(" | ||
+ | |||
+ | Serial.println(" | ||
+ | |||
+ | // Subscribe | ||
+ | |||
+ | client.subscribe(" | ||
+ | |||
+ | } else { | ||
+ | |||
+ | Serial.print(" | ||
+ | |||
+ | Serial.print(client.state()); | ||
+ | |||
+ | Serial.println(" | ||
+ | |||
+ | // Wait 5 seconds before retrying | ||
+ | |||
+ | delay(5000); | ||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | |||
+ | if (!client.connected()) { | ||
+ | |||
+ | reconnect(); | ||
+ | |||
+ | } | ||
+ | |||
+ | client.loop(); | ||
+ | long now = millis(); | ||
+ | |||
+ | // Send a message every minute | ||
+ | |||
+ | if (now - lastMsg > 100) { | ||
+ | |||
+ | lastMsg = now; | ||
+ | |||
+ | // Lire l’entrée numérique dans une valeur boolienne | ||
+ | |||
+ | float humidite = dht.readHumidity(); | ||
+ | |||
+ | float temperature = dht.readTemperature(); | ||
+ | |||
+ | return; | ||
+ | |||
+ | } | ||
+ | |||
+ | // Les conditions d’humidité | ||
+ | |||
+ | if(temperature< | ||
+ | |||
+ | // Pompe marche | ||
+ | |||
+ | | ||
+ | |||
+ | | ||
+ | |||
+ | else { | ||
+ | |||
+ | Serial.print(" | ||
+ | |||
+ | client.publish(" | ||
+ | | ||
+ | |||
+ | } | ||
+ | |||
+ | | ||
+ | |||
+ | | ||
+ | |||
+ | | ||
+ | |||
+ | | ||
+ | |||
+ | | ||
+ | |||
+ | | ||
+ | |||
+ | | ||
+ | |||
+ | } | ||
+ | |||
+ | // | ||
+ | </ |
/home/chanteri/www/fablab37110/data/attic/start/arduino/mqtt/esp32.1702361473.txt.gz · Dernière modification : 2023/12/12 07:11 de gerardadmin