ESP32 - Watersensor - Pomp

In deze tutorial leert u hoe u een ESP32 gebruikt om een pomp te activeren voor het afvoeren van water zodra een watersensor water detecteert. Met andere woorden, we ontdekken hoe u een automatisch afvoersysteem maakt met een ESP32, een watersensor en een pomp.

Hardware Benodigd

1×ESP32 ESP-WROOM-32 Ontwikkelingsmodule
1×USB-kabel Type-C
1×Watersensor (water level sensor)
1×Relais
1×12V Pomp
1×Vinyl slang
1×12V Voeding Adapter
1×(Optioneel) DC Power Jack
1×Breadboard (experimenteerprint)
1×Jumper wires (verbindingsdraden)
1×(Aanbevolen) Schroefklem Uitbreidingsboard voor ESP32
1×(Aanbevolen) Breakout Expansion Board for ESP32
1×(Aanbevolen) Stromsplitter voor ESP32

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Over Watersensor en Pomp

Als u nog niet bekend bent met watersensoren en pompen (pinout, werking, programmeren, etc.), leer er meer over in de volgende tutorials:

Hoe het Automatische Afvoersysteem Werkt

De ESP32 leest periodiek de waarde van de watersensor. Vervolgens:

  • Als de waarde hoger is dan een vooraf ingestelde drempel, schakelt de ESP32 het relay aan om de pomp te activeren.
  • Anders schakelt de ESP32 de pomp uit.

Bedradingsschema

ESP32 watersensor bestuurt Pomp Bedradingsschema

This image is created using Fritzing. Click to enlarge image

ESP32 Code

/* * Deze ESP32 code is ontwikkeld door newbiely.nl * Deze ESP32 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/esp32/esp32-water-sensor-pump */ #define RELAY_PIN 13 // The ESP32 pin GPIO13 that connects to the relay to control the pump #define POWER_PIN 32 // The ESP32 pin GPIO32 that provides the power to the water sensor #define SIGNAL_PIN 36 // The ESP32 pin GPIO36 that reads the value from the water sensor #define THRESHOLD 1000 // The threshold for water detectiion void setup() { Serial.begin(9600); // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); pinMode(RELAY_PIN, OUTPUT); // configure D2 pin as an OUTPUT pinMode(POWER_PIN, OUTPUT); // configure D7 pin as an OUTPUT digitalWrite(POWER_PIN, LOW); // turn the water sensor OFF digitalWrite(RELAY_PIN, LOW); // turn the pump OFF } void loop() { digitalWrite(POWER_PIN, HIGH); // turn the water sensor's power ON delay(10); // wait 10 milliseconds int value = analogRead(SIGNAL_PIN); // read the analog value from sensor digitalWrite(POWER_PIN, LOW); // turn the water sensor's power OFF if (value > THRESHOLD) { Serial.print("The water is detected"); digitalWrite(RELAY_PIN, HIGH); // turn the pump ON } else { digitalWrite(RELAY_PIN, LOW); // turn the pump OFF } delay(1000); // pause for 1 sec to avoid reading sensors frequently to prolong the sensor lifetime }

Snel aan de slag

  • Als dit de eerste keer is dat u een ESP32 gebruikt, bekijk dan hoe de omgeving op te zetten voor ESP32 in Arduino IDE.
  • Maak de bedrading volgens bovenstaande afbeelding.
  • Verbind de ESP32 met uw PC via een micro USB-kabel.
  • Open Arduino IDE op uw PC.
  • Selecteer het juiste ESP32 board (bijv. ESP32 Dev Module) en de juiste COM-poort.
  • Kopieer bovenstaande code en open deze in Arduino IDE.
  • Klik op de knop Upload in Arduino IDE om de code naar de ESP32 te uploaden.
Arduino IDE Upload Code
  • Plaats de watersensor in het water.
  • Bekijk de status van de pomp.

Code-uitleg

Lees de regel-voor-regel uitleg in de commentaarregels van de broncode!

※ Notiz:

Deze tutorial gebruikt de functie analogRead() om waarden te lezen van een ADC (Analog-to-Digital Converter) die is aangesloten op een watersensor. De ESP32 ADC is geschikt voor projecten die GEEN hoge nauwkeurigheid vereisen. Voor projecten die nauwkeurige metingen nodig hebben, let op:

  • De ESP32 ADC is niet perfect nauwkeurig en kan kalibratie vereisen voor correcte resultaten. Elke ESP32 kan iets verschillen, dus u moet de ADC kalibreren voor elk afzonderlijk board.
  • Kalibratie kan lastig zijn, zeker voor beginners, en geeft mogelijk niet altijd de exacte resultaten die u wilt.

Voor projecten met hoge precisie kunt u overwegen een externe ADC te gebruiken (bijv. ADS1115) samen met de ESP32 of een Arduino, die een betrouwbaardere ADC heeft. Wilt u toch de ESP32 ADC kalibreren, raadpleeg dan ESP32 ADC Calibration Driver

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!