Arduino Nano - Soil Moisture Sensor

Este tutorial ensina você a usar um sensor de umidade com o Arduino Nano. Especificamente, vamos ver:

Hardware Necessário

1×Official Arduino Nano
1×Alternatively, DIYables Nano V3.0 Development Board
1×Cabo USB A para Mini-B
1×Sensor Capacitivo de Umidade do Solo
1×Fios Jumper
1×(Recomendado) Placa de Expansão com Bornes de Parafuso para Arduino Nano
1×(Recomendado) Placa de Expansão Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentação para Arduino Nano

Or you can buy the following kits:

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

capacitive moisture sensor vs resistive moisture sensor

Existem dois tipos de sensores de umidade:

  • O sensor de umidade resistivo
  • O sensor de umidade capacitivo.

Os dois sensores fornecem informações sobre a umidade do solo. No entanto, seus princípios de funcionamento são diferentes. Recomendamos fortemente o uso do sensor de umidade capacitivo pelos seguintes motivos:

  • O sensor resistivo de umidade do solo é propenso à corrosão com o tempo. Isso acontece porque a corrente elétrica passa entre suas pontas de prova, causando corrosão eletroquímica.
  • O sensor capacitivo de umidade do solo corrói com o tempo muito mais devagar do que o sensor resistivo. Isso acontece porque seus eletrodos não ficam expostos e são comparativamente mais resistentes à corrosão.

Esta é uma ilustração de um sensor resistivo de umidade do solo que foi danificado por corrosão ao longo do tempo.

resistive soil moisture sensor corroded

No restante deste tutorial, vamos usar o sensor capacitivo de umidade do solo.

Pinagem do Sensor Capacitivo de Umidade do Solo

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

  • Pino GND: Deve ser conectado ao GND (0V)
  • Pino VCC: Deve ser conectado ao VCC (5V ou 3.3v)
  • Pino AOUT: Este pino de saída de sinal analógico produz uma tensão proporcional ao nível de umidade do solo. Deve ser conectado a um pino de entrada analógica do Arduino.
capacitive soil moisture sensor pinout

Como Funciona

O pino AOUT tem uma tensão maior quando há menos água no solo.

Diagrama de Ligação

The wiring diagram between Arduino Nano and soil moisture sensor

This image is created using Fritzing. Click to enlarge image

Veja A melhor forma de alimentar o Arduino Nano e outros componentes.

Código Arduino Nano para ler o valor do sensor de umidade do solo

/* * Este código de Arduino Nano foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano/arduino-nano-soil-moisture-sensor */ #define AOUT_PIN A6 // The Arduino Nano 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 com o Arduino IDE.
  • Clique no botão Upload no Arduino IDE para compilar e carregar o código no Arduino Nano.
  • Enterre o sensor no solo e depois despeje água no solo. Ou mergulhe-o devagar em um copo de água com sal.
  • Veja o resultado no Serial Monitor. Ele se parece com o abaixo:
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano' 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 Nano on COM15
2

※ Nota:

  • Evite testar com água pura, pois ela não conduz eletricidade e não afeta as leituras do sensor.
  • As leituras do sensor nunca chegam a zero. Normalmente, elas ficam entre 500 e 600, embora isso possa variar conforme fatores como a profundidade do sensor, o tipo de solo ou de água e a tensão da fonte de alimentação.
  • Não enterre a parte do circuito (localizada na parte de cima do sensor) no solo nem na água, pois isso pode danificar o sensor.

Calibração do Sensor Capacitivo de Umidade do Solo

O valor obtido do sensor de umidade não é absoluto. Ele depende da composição do solo e da quantidade de água presente. Para determinar com precisão o limite entre úmido e seco, é preciso fazer a calibração.

Instruções para a calibração:

  • Execute o código no Arduino Nano
  • Coloque o sensor de umidade no solo
  • Adicione água ao solo aos poucos
  • Veja o Serial Monitor
  • Anote o valor quando o solo passa de seco para úmido. Esse valor é chamado de THRESHOLD.

O Arduino Nano determina se o solo está úmido ou seco

Depois que a calibração terminar, atualize o valor de THRESHOLD que você anotou no código abaixo. Este código do Arduino Nano vai decidir se o solo está úmido ou seco.

/* * Este código de Arduino Nano foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano/arduino-nano-soil-moisture-sensor */ #define AOUT_PIN A6 // The Arduino Nano 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); }

A saída exibida no Serial Monitor.

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano' 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 Nano on COM15
2

Vídeo

Referências de Funções

Tutoriais Relacionados

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