ESP32 - Sistema de Irrigação Automática

Este tutorial ensina como fazer um sistema de irrigação automática para o jardim usando o ESP32, um sensor de umidade do solo, um relé e uma bomba. Em detalhes:

Hardware Necessário

1×38-pin ESP32 ESP-WROOM-32 Dev Module - Narrow
1×(Alternativa) 38-pin ESP32 ESP-WROOM-32 Dev Module - Wide
1×(Alternativa) 30-pin ESP32 ESP-WROOM-32 Dev Module - Wide
1×(Alternativa) ESP32 Uno-form board
1×(Alternativa) ESP32 S3 Uno-form board
1×Cabo USB Tipo-A para Tipo-C (para PC com USB-A)
1×Cabo USB Tipo-C para Tipo-C (para PC com USB-C)
1×Sensor Capacitivo de Umidade do Solo
1×Relé
1×12V Bomba
1×Vinyl Tube
1×Fonte de Alimentação 12V
1×(Opcional) Conector de Alimentação DC
1×Protoboard
1×Fios Jumper
1×(Recomendado) Placa de Expansão com Bornes de Parafuso para ESP32
1×(Recomendado) Breakout Expansion Board for ESP32
1×(Recomendado) Divisor de Alimentação para ESP32

Or you can buy the following kits:

1×DIYables ESP32 Starter Kit (ESP32 included)
1×DIYables ESP32 S3 Starter Kit (ESP32 S3 included)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.

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

Sobre o Sensor de Umidade do Solo e a Bomba

Temos tutoriais específicos sobre o sensor de umidade do solo e a bomba. Cada tutorial contém informações detalhadas e instruções passo a passo sobre a pinagem do hardware, o princípio de funcionamento, a ligação ao ESP32, o código ESP32... Saiba mais sobre eles nos links a seguir:

Diagrama de Ligação

Diagrama de Ligação do Sistema de Irrigação com ESP32

This image is created using Fritzing. Click to enlarge image

Se você não sabe como alimentar o ESP32 e outros componentes, veja as instruções no tutorial a seguir: Como alimentar o ESP32.

Código ESP32

/* * Este código de ESP32 foi desenvolvido por pt.newbiely.com * Este código de ESP32 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/esp32/esp32-automatic-irrigation-system */ #define RELAY_PIN 17 // ESP32 pin GPIO17 that connects to relay #define MOISTURE_PIN 36 // ESP32 pin GPIO36 (ADC0) that connects to AOUT pin of moisture sensor #define THRESHOLD 1500 // CHANGE YOUR THRESHOLD HERE void setup() { Serial.begin(9600); pinMode(RELAY_PIN, OUTPUT); // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); } void loop() { int value = analogRead(MOISTURE_PIN); // read the analog value from sensor if (value > THRESHOLD) { Serial.print("The soil is DRY => turn pump ON"); digitalWrite(RELAY_PIN, HIGH); } else { Serial.print("The soil is WET => turn pump OFF"); digitalWrite(RELAY_PIN, LOW); } Serial.print(" ("); Serial.print(value); Serial.println(")"); delay(200); }

Passos Rápidos

  • Faça a calibração para determinar o THRESHOLD entre úmido e seco, veja ESP32 - Calibração do Sensor de Umidade do Solo
  • Atualize o valor de THRESHOLD calibrado no código
  • Abra o Serial Monitor na Arduino IDE
  • Carregue o código na placa ESP32
  • Veja o resultado no Serial Monitor. Ele fica parecido com o abaixo:
∞
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
The soil is DRY => turn pump ON (1921) The soil is DRY => turn pump ON (1821) The soil is DRY => turn pump ON (1741) The soil is DRY => turn pump ON (1645) The soil is DRY => turn pump ON (1564) The soil is WET => turn pump OFF (1465) The soil is WET => turn pump OFF (1411) The soil is WET => turn pump OFF (1365) The soil is WET => turn pump OFF (1375) The soil is WET => turn pump OFF (1279)
Ln 11, Col 1
ESP32 Dev Module on COM15
2

Explicação do Código

Leia a explicação linha por linha nas linhas de comentário do código-fonte!

※ Nota:

Este tutorial usa a função analogRead() para ler valores de um ADC (Conversor Analógico-Digital) conectado a um sensor de umidade do solo. O ADC do ESP32 é bom para projetos que NÃO precisam de alta precisão. No entanto, para projetos que precisam de medições precisas, observe:

  • O ADC do ESP32 não é perfeitamente preciso e pode precisar de calibração para obter resultados corretos. Cada placa ESP32 pode ser um pouco diferente, então você precisa calibrar o ADC de cada placa individualmente.
  • A calibração pode ser difícil, especialmente para iniciantes, e nem sempre fornece os resultados exatos que você deseja.

Para projetos que precisam de alta precisão, considere usar um ADC externo (ex.: ADS1115) com o ESP32 ou usar um Arduino, que tem um ADC mais confiável. Se ainda assim você quiser calibrar o ADC do ESP32, consulte o ESP32 ADC Calibration Driver

Vídeo

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!