Arduino - Sensor de Umidade do Solo

Neste tutorial, vamos aprender a usar o sensor de umidade com o Arduino. Em detalhes, vamos aprender:

Hardware Necessário

1×Arduino Uno R3
1×Cabo USB 2.0 tipo A/B (para PC com USB-A)
1×Cabo USB 2.0 tipo C/B (para PC com USB-C)
1×Sensor Capacitivo de Umidade do Solo
1×Fios Jumper
1×(Recomendado) Shield com Bornes de Parafuso para Arduino Uno
1×(Recomendado) Sensors/Servo Expansion Shield for Arduino Uno
1×(Recomendado) Shield de Protoboard para Arduino Uno
1×(Recomendado) Case para Arduino Uno
1×(Recomendado) Placa Base de Prototipagem e Kit de Protoboard para Arduino Uno

Or you can buy the following kits:

1×DIYables STEM V3 Starter Kit (Arduino 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

sensor de umidade capacitivo vs sensor de umidade resistivo

Existem dois tipos de sensores de umidade:

  • Sensor de umidade resistivo
  • Sensor de umidade capacitivo.

Os dois sensores fornecem informações sobre a umidade do solo. Porém, os seus princípios de funcionamento são diferentes. Recomendamos fortemente usar o sensor de umidade capacitivo, pelo seguinte motivo:

  • O sensor de umidade do solo resistivo sofre corrosão com o tempo. Isso acontece porque a corrente elétrica flui entre as suas pontas de prova, o que causa corrosão eletroquímica.
  • O sensor de umidade do solo capacitivo NÃO sofre corrosão com o tempo. Isso acontece porque os seus eletrodos não ficam expostos, então ele é relativamente livre de corrosão.

A imagem abaixo mostra um sensor de umidade do solo resistivo que sofreu corrosão com o tempo.

sensor de umidade do solo resistivo com corrosão

O restante deste tutorial vai usar o sensor de umidade do solo capacitivo.

Pinagem do Sensor de Umidade do Solo Capacitivo

Um sensor de umidade do solo capacitivo tem três pinos:

  • Pino GND: precisa ser conectado ao GND (0V)
  • Pino VCC: precisa ser conectado ao VCC (5V ou 3.3v)
  • Pino AOUT: pino de saída de sinal analógico, fornece uma tensão inversamente proporcional ao nível de umidade do solo. Conecte este pino a um pino de entrada analógica do Arduino.
pinagem do sensor de umidade do solo capacitivo

Como Funciona

Quanto mais água houver no solo, menor será a tensão no pino AOUT

Diagrama de Ligação

Diagrama de Ligação do Arduino com sensor de umidade do solo

This image is created using Fritzing. Click to enlarge image

Código Arduino

/* * Este código de Arduino foi desenvolvido por pt.newbiely.com * Este código de Arduino é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino/arduino-soil-moisture-sensor */ #define AOUT_PIN A0 // Arduino pin that connects to AOUT pin of moisture sensor void setup() { Serial.begin(9600); } void loop() { int value = analogRead(AOUT_PIN); // read the analog value from sensor Serial.print("Moisture: "); Serial.println(value); delay(500); }

Passos Rápidos

  • Copie o código acima e abra-o na Arduino IDE
  • Clique no botão Upload na Arduino IDE para carregar o código no Arduino
  • Enterre o sensor no solo e depois despeje água no solo. Ou mergulhe-o lentamente em um copo de água com sal.
  • Confira o resultado no Serial Monitor. Ele fica parecido com o mostrado abaixo:
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' on 'COM15')
New Line
9600 baud
Moisture: 581 Moisture: 581 Moisture: 575 Moisture: 566 Moisture: 556 Moisture: 547 Moisture: 539 Moisture: 530 Moisture: 521 Moisture: 513 Moisture: 506 Moisture: 500 Moisture: 495 Moisture: 492 Moisture: 490 Moisture: 489 Moisture: 488
Ln 11, Col 1
Arduino Uno on COM15
2

※ Nota:

  • NÃO use água pura para o teste, pois ela não conduz eletricidade, o que significa que não vai afetar as leituras do sensor.
  • As leituras do sensor normalmente não caem até zero. É normal que elas fiquem na faixa de 500 a 600, mas isso pode mudar com base em fatores como a profundidade em que o sensor é colocado, o tipo de solo ou de água e a tensão da fonte de alimentação.
  • Nunca enterre a parte do circuito (que fica na parte de cima do sensor) no solo ou na água, pois isso pode danificar o sensor.

Calibração do Sensor de Umidade do Solo Capacitivo

O valor medido pelo sensor de umidade é relativo. Ele depende da composição do solo e da água. Na prática, precisamos fazer uma calibração para determinar um limite (threshold) que é a fronteira entre úmido e seco.

Como fazer a calibração:

  • Execute o código acima no Arduino
  • Coloque o sensor de umidade no solo
  • Coloque o sensor de umidade no solo
  • Despeje água no solo lentamente
  • Observe o Serial Monitor.
  • Anote o valor no momento em que você sentir que o solo muda de seco para úmido. Este valor é chamado de THRESHOLD.

Determinar se o solo está úmido ou seco

Depois da calibração, atualize no código abaixo o valor de THRESHOLD que você anotou. O código abaixo determina se o solo está úmido ou seco

/* * Este código de Arduino foi desenvolvido por pt.newbiely.com * Este código de Arduino é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino/arduino-soil-moisture-sensor */ #define AOUT_PIN A0 // Arduino pin that connects to AOUT pin of moisture sensor #define THRESHOLD 530 // CHANGE YOUR THRESHOLD HERE void setup() { Serial.begin(9600); } void loop() { int value = analogRead(AOUT_PIN); // read the analog value from sensor if (value > THRESHOLD) Serial.print("The soil is DRY ("); else Serial.print("The soil is WET ("); Serial.print(value); Serial.println(")"); delay(500); }

O resultado no Serial Monitor.

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' on 'COM15')
New Line
9600 baud
The soil is DRY (581) The soil is DRY (575) The soil is DRY (566) The soil is DRY (547) The soil is DRY (539) The soil is WET (521) The soil is WET (513) The soil is WET (492) The soil is WET (488)
Ln 11, Col 1
Arduino Uno on COM15
2

Vídeo

Referências de Funções

※ 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!