Arduino Nano ESP32 - Capteur d'humidité du sol

Ce tutoriel fournit des instructions sur comment utiliser l'Arduino Nano ESP32 pour lire l'humidité du sol à partir d'un capteur. En détail, nous apprendrons :

Préparation du matériel

1×Arduino Nano ESP32
1×USB Cable Type-C
1×Capacitive Soil Moisture Sensor
1×Breadboard
1×Jumper Wires
1×(Optional) DC Power Jack
1×(Recommended) Screw Terminal Adapter for Arduino Nano

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

Buy Note: Many soil moisture sensors available in the market are unreliable, regardless of their version. We strongly recommend buying the sensor from the DIYables brand using the link provided above. We tested it, and it worked reliably.

À propos du capteur d'humidité du sol

capteur d'humidité capacitif vs capteur d'humidité résistif

Il existe deux types de capteurs d'humidité :

  • Capteur d'humidité résistif
  • Capteur d'humidité capacitif.

Les deux capteurs fournissent la valeur de l'humidité du sol. Cependant, leurs principes de fonctionnement sont différents. Nous recommandons fortement d'utiliser le capteur d'humidité capacitif, pour les raisons suivantes :

  • Le capteur d'humidité du sol résistif se corrode avec le temps. Le courant électrique qui circule entre les sondes du capteur provoque une corrosion électrochimique.
  • Le capteur d'humidité du sol capacitif ne se corrode pas avec le temps. Les électrodes du capteur ne sont pas exposées et aucun courant électrique ne circule entre elles.

L'image ci-dessous montre la corrosion sur un capteur d'humidité du sol résistif.

corrosion des capteurs d'humidité du sol résistifs

Le reste de ce tutoriel utilise le capteur d'humidité du sol capacitif.

Brochage du capteur d'humidité du sol capacitif

Un capteur d'humidité du sol capacitif possède trois broches :

  • Broche GND : connectez cette broche à GND (0V)
  • Broche VCC : connectez cette broche à VCC (5V ou 3,3V)
  • Broche AOUT : la broche de sortie de signal analogique émet une tension inversement proportionnelle au niveau d'humidité du sol. Connectez cette broche à une broche d'entrée analogique d'un ESP32.
capteur d'humidité du sol capacitif brochage

Comment ça fonctionne

Plus il y a d'eau dans le sol, plus la tension dans la broche AOUT est faible.

Diagramme de câblage

Schéma de câblage du capteur d'humidité du sol Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image

Code Arduino Nano ESP32

/* * Ce code Arduino Nano ESP32 a été développé par newbiely.fr * Ce code Arduino Nano 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/arduino-nano-esp32/arduino-nano-esp32-soil-moisture-sensor */ #define AOUT_PIN A6 // Broche A6 de l'Arduino Nano ESP32 qui se connecte à la broche AOUT du capteur d'humidité void setup() { Serial.begin(9600); } void loop() { int value = analogRead(AOUT_PIN); // lire la valeur analogique du capteur Serial.print("Moisture value: "); Serial.println(value); delay(500); }

Étapes rapides

  • Copiez le code ci-dessus et collez-le dans l'IDE Arduino
  • Cliquez sur le bouton Upload dans l'IDE Arduino pour téléverser le code sur la carte Arduino Nano ESP32
  • Enterrez le capteur dans le sol, puis versez de l'eau dans le sol. Ou plongez-le lentement dans un verre d'eau salée.
  • Consultez le résultat sur le moniteur série. Cela ressemble à ce qui suit :
COM6
Send
Moisture value: 3126 Moisture value: 3041 Moisture value: 2967 Moisture value: 2840 Moisture value: 2791 Moisture value: 2719 Moisture value: 2657 Moisture value: 2656 Moisture value: 2643 Moisture value: 2634 Moisture value: 2642 Moisture value: 2624
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ NOTE THAT:

  • N'utilisez pas d'eau pure pour les tests car elle ne conduit pas l'électricité, ce qui n'affectera pas les lectures du capteur.
  • Les lectures du capteur ne tombent jamais à zéro. Il est normal que les valeurs soient entre 3100 et 2600, bien que cela puisse changer en raison de facteurs tels que la profondeur de placement du capteur, la composition du sol ou de l'eau, et la tension de l'alimentation électrique.
  • Évitez d'enterrer la partie du circuit (située au-dessus du capteur) dans le sol ou l'eau, car cela pourrait endommager le capteur.

Étalonnage du capteur d'humidité du sol capacitif

La valeur mesurée par le capteur d'humidité est relative. Elle dépend de la composition du sol et de l'eau. En pratique, il est nécessaire de procéder à un étalonnage pour déterminer un seuil qui constitue une frontière entre humide et sec.

Comment effectuer l'étalonnage :

  • Exécutez le code ci-dessus sur Arduino Nano ESP32
  • Plantez le capteur d'humidité dans le sol
  • Plantez le capteur d'humidité dans le sol
  • Irriguez le sol lentement
  • Regardez le moniteur série.
  • Notez une valeur au moment où vous sentez que le sol change d'humidité de sec à humide. Cette valeur est appelée SEUIL.

Déterminez si le sol est humide ou sec.

Après l'étalonnage, mettez à jour la valeur SEUIL que vous avez notée dans le code ci-dessous. Le code ci-dessous détermine si le sol est humide ou sec.

/* * Ce code Arduino Nano ESP32 a été développé par newbiely.fr * Ce code Arduino Nano 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/arduino-nano-esp32/arduino-nano-esp32-soil-moisture-sensor */ #define AOUT_PIN A6 // Broche A6 de l'Arduino Nano ESP32 qui se connecte à la broche AOUT du capteur d'humidité #define THRESHOLD 2800 // MODIFIEZ VOTRE SEUIL ICI void setup() { Serial.begin(9600); } void loop() { int value = analogRead(AOUT_PIN); // lire la valeur analogique du capteur if (value > THRESHOLD) Serial.print("The soil is DRY ("); else Serial.print("The soil is WET ("); Serial.print(value); Serial.println(")"); delay(500); }

Le résultat sur le moniteur série.

COM6
Send
The soil is DRY (3126) The soil is DRY (3041) The soil is DRY (2967) The soil is DRY (2840) The soil is WET (2791) The soil is WET (2719) The soil is WET (2657) The soil is WET (2643) The soil is WET (2624)
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Vidéo

Références de fonction

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!