ESP32 - Contrôle de la pompe

Ce tutoriel vous explique comment utiliser l'ESP32 pour contrôler une pompe. Vous pouvez étendre ce tutoriel pour construire un aquarium DIY, une machine à cocktails, une machine à café ou un système d'irrigation...

Vous avez deux options pour commuter la pompe : un relais ou un module MOSFET. Avec le relais, la pompe fonctionne ou elle est arrêtée. Avec le module MOSFET, vous décidez aussi de la puissance de la pompe, donc vous pouvez régler le débit d'eau. Dans ce tutoriel, nous allons apprendre à utiliser chacun d'eux.

À propos de la pompe 12V

Brochage de la pompe

Brochage de la pompe ESP32
image source: diyables.io

Une pompe de 12V possède deux fils :

  • Fil négatif (-) (noir) : connectez ce fil au fil négatif de l'alimentation 12V DC
  • Fil positif (+) (rouge) : connectez ce fil au fil positif de l'alimentation 12V DC

Comment contrôler une pompe à l'aide de l'ESP32

Si nous connectons une alimentation de 12V à une pompe, celle-ci fonctionnera. Nous pouvons contrôler une pompe de manière programmatique en utilisant un ESP32. Pour ce faire, nous avons besoin d'un relais entre la pompe et la carte ESP32. Nous disposons d'un tutoriel spécifique sur le relais, qui contient des informations détaillées et des instructions étape par étape sur le brochage du matériel, le principe de fonctionnement, la connexion électrique à l'ESP32, le code ESP32... Apprenez-en plus sur le relais dans le tutoriel ESP32 - Relais.

Au lieu du relais, nous pouvons aussi utiliser un module MOSFET. Pour savoir ce qu'est ce module et comment le câbler, consultez le tutoriel ESP32 - Module MOSFET.

Relais ou module MOSFET pour une pompe

Relais Module MOSFET
Contrôle de la pompe marche ou arrêt marche, arrêt, et réglage du débit avec le PWM
Bruit des clics à la commutation silencieux
Vitesse de commutation lente, en millisecondes très rapide
Durée de vie les contacts s'usent après de nombreuses commutations aucune pièce mobile
Fonctionne avec pompes CA et CC pompes CC uniquement
Tension de la pompe toute (selon la valeur nominale) au moins environ 6V
Isolation oui (bobine et contacts) oui (optocoupleur PC817)
Idéal pour les pompes CA ou un simple marche/arrêt les pompes CC 12V qui ont besoin d'un contrôle du débit

Si vous voulez seulement remplir un réservoir, le relais convient. Si vous voulez un débit lent et doux, par exemple pour des plantes ou un aquarium, utilisez le module MOSFET avec une pompe CC 12V.

Schéma de câblage entre l'ESP32, le relais et la pompe

  • Comment connecter l'ESP32 et contrôler la pompe avec une breadboard (alimenté via le câble USB)
Schéma de câblage de la pompe ESP32

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Si vous ne savez pas comment alimenter l'ESP32 et d'autres composants, consultez les instructions dans le tutoriel suivant : Comment alimenter l'ESP32..

  • Comment connecter l'ESP32 et contrôler la pompe avec une breadboard (alimenté via la broche Vin)
Schéma de câblage de la pompe ESP32

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Comment connecter l'ESP32 et contrôler la pompe
Comment câbler l'ESP32 et contrôler la pompe

ESP32 - Code de la pompe

Le code ci-dessous active et désactive la pompe toutes les 4 secondes.

/* * Ce code ESP32 a été développé par newbiely.fr * Ce code ESP32 est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/esp32/esp32-controls-pump */ #define RELAY_PIN 16 // ESP32 pin GPIO16, which connects to the pump the via the relay // the setup function runs once when you press reset or power the board void setup() { // initialize digital pin GPIO16 as an output. pinMode(RELAY_PIN, OUTPUT); } // the loop function runs over and over again forever void loop() { digitalWrite(RELAY_PIN, HIGH); // turn on pump 4 seconds delay(4000); digitalWrite(RELAY_PIN, LOW); // turn off pump 4 seconds delay(4000); }

Étapes rapides

  • Si c'est la première fois que vous utilisez un ESP32, consultez Installation du logiciel ESP32..
  • Faites le câblage comme sur l'image ci-dessus.
  • Connectez la carte ESP32 à votre PC via un câble USB Type-C.
  • Ouvrez l'Arduino IDE sur votre PC.
  • Sélectionnez la bonne carte ESP32 (par exemple, ESP32 Dev Module) et le port COM.
  • Copiez le code ci-dessus et collez-le dans l'Arduino IDE.
  • Compilez et téléchargez le code sur la carte ESP32 en cliquant sur le bouton Upload dans l'Arduino IDE.
  • Consultez l'état de la pompe.

Explication du code ligne par ligne

Le code ESP32 ci-dessus contient des explications ligne par ligne. Veuillez lire les commentaires dans le code !

Comment contrôler le débit de la pompe avec un module MOSFET

Ici, nous utilisons le module MOSFET à la place du relais. Un signal PWM de l'ESP32 change la vitesse de la pompe, et donc la quantité d'eau qu'elle pousse.

Schéma de câblage entre l'ESP32, le module MOSFET et la pompe

Schéma de câblage de l'ESP32, de la pompe et du module MOSFET

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

ESP32 / Alimentation Module MOSFET
GPIO18 PWM
GND GND
Adaptateur 12V + et pompe + (rouge) borne + (les deux fils la partagent)
Pompe − (noir) borne LOAD
Adaptateur 12V − borne −

Le moteur de la pompe a une bobine, donc ajoutez une diode de roue libre (flyback) (1N4007 ou 1N5819) aux bornes des fils de la pompe. La bande (cathode) va du côté + de la pompe.

ESP32 - Code du débit de la pompe

D'abord, la pompe tourne à pleine puissance pendant 2 secondes, puis elle s'arrête pendant 2 secondes. Ensuite, la puissance monte de 10% à 100% puis redescend, donc le débit d'eau devient plus fort puis plus faible.

/* * Ce code ESP32 a été développé par newbiely.fr * Ce code ESP32 est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/esp32/esp32-controls-pump */ const int MOSFET_PIN = 18; // ESP32 GPIO18 connected to the PWM pin of the MOSFET module void setup() { Serial.begin(9600); pinMode(MOSFET_PIN, OUTPUT); analogWrite(MOSFET_PIN, 0); // start with the load OFF } void setLoad(int percent) { int duty = map(percent, 0, 100, 0, 255); // convert 0-100% to 0-255 analogWrite(MOSFET_PIN, duty); Serial.print("Load power: "); Serial.print(percent); Serial.println("%"); } void loop() { // turn the load fully ON, then fully OFF Serial.println("Load: ON"); setLoad(100); delay(2000); Serial.println("Load: OFF"); setLoad(0); delay(2000); // increase the power step by step (PWM) for (int percent = 10; percent <= 100; percent += 10) { setLoad(percent); delay(500); } // decrease the power step by step (PWM) for (int percent = 90; percent >= 0; percent -= 10) { setLoad(percent); delay(500); } delay(1000); }

Étapes rapides

  • Suivez la configuration des Étapes rapides du relais ci-dessus (Arduino IDE, carte et port COM).
  • Mettez la pompe dans l'eau et faites le câblage comme dans le schéma MOSFET. Laissez l'adaptateur 12V débranché.
  • Copiez le code dans Arduino IDE et téléversez-le sur l'ESP32.
  • Branchez l'adaptateur 12V.
  • Ouvrez le Moniteur Série à 9600 bauds.
  • Regardez le débit d'eau changer pendant que le niveau de puissance s'affiche dans le Moniteur Série.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
New Line
9600 baud
Load: ON Load power: 100% Load: OFF Load power: 0% Load power: 10% Load power: 20% Load power: 30% Load power: 40% Load power: 50% Load power: 60% Load power: 70% Load power: 80% Load power: 90% Load power: 100% Load power: 90% Load power: 80% Load power: 70% Load power: 60% Load power: 50% Load power: 40% Load power: 30% Load power: 20% Load power: 10% Load power: 0%
Ln 11, Col 1
ESP32 Dev Module on COM15
2

Astuce : ne laissez jamais la pompe tourner à sec. Le module MOSFET est prévu pour les pompes CC avec une alimentation d'environ 6V ou plus ; pour une pompe CA, utilisez le relais.

Vidéo

Commentaires

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !