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 : de gerardadmin
