ESP8266 - Sensor de Chuva

O sensor de chuva detecta e mede os níveis de chuva/neve, oferecendo saídas digital (LOW/HIGH) e analógica. Este tutorial mostra como usar um ESP8266 para conectar e utilizar o sensor de chuva, cobrindo:

Depois, você pode personalizar o código para acionar um motor ou um aviso quando chuva/neve for detectada.

Hardware Necessário

1×ESP8266 NodeMCU ESP-12F
1×Alternatively, ESP8266 D1 Mini NodeMCU ESP-12F
1×Alternatively, ESP8266 NodeMCU ESP-12E (Uno-form)
1×Micro USB Cable
1×Alternatively, ESP8266 NodeMCU ESP-12F (SMD-form)
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 de Chuva
1×Fios Jumper
1×(Recomendado) Placa de Expansão com Bornes de Parafuso para ESP8266

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.

Sobre o Sensor de Chuva

O sensor de chuva pode detectar a presença de chuva ou medir o nível de água. Ele oferece duas opções, por meio de um pino de saída digital e de um pino de saída analógica.

O sensor é composto por duas partes: a placa de detecção e o módulo eletrônico

Pinagem do Sensor de Chuva
image source: diyables.io

A placa de detecção

A placa de detecção, posicionada ao ar livre para receber chuva/neve (por exemplo, no telhado), possui trilhas de cobre expostas divididas em dois grupos: trilhas de alimentação e trilhas de detecção. Essas trilhas permanecem desconectadas, a menos que a água ou a neve faça a ponte entre elas. As trilhas de alimentação e de detecção são idênticas, o que permite escolher livremente qual será a trilha de alimentação e qual será a trilha de detecção.

O módulo eletrônico

O módulo eletrônico do sensor de chuva converte os sinais da placa de detecção em valores analógicos ou digitais que o ESP8266 NodeMCU consegue ler. Ele inclui quatro pinos:

  • Pino VCC: Conecta ao VCC (3.3V a 5V).
  • Pino GND: Conecta ao GND (0V).
  • Pino DO: Pino de saída digital, indicando HIGH quando a chuva não é detectada e LOW quando é detectada. O limite de detecção de chuva é ajustável com um potenciômetro embutido.
  • Pino AO: Pino de saída analógica, com o valor diminuindo com mais água na placa de detecção e aumentando com menos água.

Além disso, ele possui dois indicadores LED:

  • Indicador PWR-LED para a alimentação.
  • Indicador DO-LED para o estado da chuva no pino DO, que acende quando há chuva.

Como Funciona

FQuanto ao pino DO:

  • O módulo está equipado com um potenciômetro embutido para definir o limite de sensibilidade.
  • Quando a intensidade ultrapassa o limite, a chuva é detectada, o pino de saída do sensor vai para LOW e o DO-LED acende.
  • Por outro lado, quando a intensidade fica abaixo do limite, a chuva não é detectada, o pino de saída vai para HIGH e o DO-LED apaga.

Quanto ao pino AO:

  • O valor do pino AO diminui com mais água na placa de detecção.
  • Por outro lado, o valor do pino AO aumenta com menos água na placa de detecção.

É importante observar que o potenciômetro não influencia o valor no pino AO.

Diagrama de Ligação

Como mencionado antes, conectar o pino VCC do sensor diretamente aos pinos de 3.3V ou 5V do ESP8266 pode reduzir a vida útil do sensor devido à corrosão eletroquímica. A abordagem recomendada é conectar o pino VCC do sensor de chuva a um pino de saída do ESP8266. Programando esse pino, o sensor de chuva pode ser alimentado somente durante as leituras, minimizando o impacto da corrosão eletroquímica.

Como o módulo do sensor de chuva tem duas saídas, você pode escolher usar uma ou as duas, dependendo do que precisa.

  • O diagrama de ligação entre o ESP8266 e o sensor de chuva usando somente o DO.
diagrama de ligação do sensor de chuva com ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Para mais informações, veja Pinagem do ESP8266 e como alimentar o ESP8266 e outros componentes.

  • O diagrama de ligação entre o ESP8266 e o sensor de chuva usando somente o AO.
diagrama de ligação da detecção de chuva com ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

  • O diagrama de ligação entre o ESP8266 e o sensor de chuva usando o AO e o DO.
diagrama de ligação do detector de chuva com ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Código ESP8266 - Ler o valor do pino DO

/* * Este código de ESP8266 NodeMCU foi desenvolvido por pt.newbiely.com * Este código de ESP8266 NodeMCU é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/esp8266/esp8266-rain-sensor */ #define POWER_PIN D7 // The ESP8266 pin that provides the power to the rain sensor #define DO_PIN D2 // The ESP8266 pin connected to DO pin of the rain sensor void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(9600); // initialize the ESP8266's pin as an input pinMode(POWER_PIN, OUTPUT); // Configure the power pin pin as an OUTPUT pinMode(DO_PIN, INPUT); } void loop() { digitalWrite(POWER_PIN, HIGH); // turn the rain sensor's power ON delay(10); // wait 10 milliseconds int rain_state = digitalRead(DO_PIN); digitalWrite(POWER_PIN, LOW); // turn the rain sensor's power OFF if (rain_state == HIGH) Serial.println("The rain is NOT detected"); else Serial.println("The rain is detected"); delay(1000); // pause for 1 sec to avoid reading sensors frequently to prolong the sensor lifetime }

Passos Rápidos

Para começar com o ESP8266 na Arduino IDE, siga estes passos:

  • Confira o tutorial como configurar o ambiente para ESP8266 na Arduino IDE se esta for a sua primeira vez usando o ESP8266.
  • Faça a ligação dos componentes como mostrado no diagrama.
  • Conecte a placa ESP8266 ao seu computador usando um cabo USB.
  • Abra a Arduino IDE no seu computador.
  • Escolha a placa ESP8266 correta, como (por exemplo, NodeMCU 1.0 (ESP-12E Module)), e a respectiva porta COM.
  • Copie o código acima e abra na Arduino IDE
  • Clique no botão Upload na Arduino IDE para fazer o upload do código para o ESP8266
  • Pingue um pouco de água no sensor de chuva
  • Confira o resultado no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Nodemcu 1.0 (ESP-12E Module)
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Nodemcu 1.0 (ESP-12E Module)' on 'COM15')
New Line
9600 baud
The rain is NOT detected The rain is NOT detected The rain is NOT detected The rain is detected The rain is detected The rain is detected The rain is detected The rain is detected The rain is NOT detected The rain is NOT detected The rain is NOT detected
Ln 11, Col 1
Nodemcu 1.0 (ESP-12E Module) on COM15
2

Lembre-se de que, se você notar que o estado do LED permanece sempre ligado ou desligado mesmo quando o sensor está voltado para a chuva, você pode ajustar o potenciômetro para regular a sensibilidade do sensor.

Código ESP8266 - Ler o valor do pino AO

/* * Este código de ESP8266 NodeMCU foi desenvolvido por pt.newbiely.com * Este código de ESP8266 NodeMCU é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/esp8266/esp8266-rain-sensor */ #define POWER_PIN D7 // The ESP8266 pin that provides the power to the rain sensor #define AO_PIN A0 // The ESP8266 pin connected to AO pin of the rain sensor void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(9600); pinMode(POWER_PIN, OUTPUT); // Configure the power pin pin as an OUTPUT } void loop() { digitalWrite(POWER_PIN, HIGH); // turn the rain sensor's power ON delay(10); // wait 10 milliseconds int rainValue = analogRead(AO_PIN); digitalWrite(POWER_PIN, LOW); // turn the rain sensor's power OFF Serial.println(rainValue); // print out the analog value delay(1000); // pause for 1 sec to avoid reading sensors frequently to prolong the sensor lifetime }

Passos Rápidos

  • Faça a ligação dos componentes como mostrado no diagrama.
  • Conecte a placa ESP8266 ao seu computador usando um cabo USB.
  • Abra a Arduino IDE no seu computador.
  • Escolha a placa ESP8266 correta, como (por exemplo, NodeMCU 1.0 (ESP-12E Module)), e a respectiva porta COM.
  • Copie o código acima e abra na Arduino IDE
  • Clique no botão Upload na Arduino IDE para fazer o upload do código para o ESP8266
  • Pingue um pouco de água no sensor de chuva
  • Confira o resultado no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Nodemcu 1.0 (ESP-12E Module)
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Nodemcu 1.0 (ESP-12E Module)' on 'COM15')
New Line
9600 baud
225 2426 236 563 687 959 975 1009 1017 1053 1078 841 743 440 279
Ln 11, Col 1
Nodemcu 1.0 (ESP-12E Module) on COM15
2

※ Nota:

Este tutorial usa a função analogRead() para obter dados de um ADC (Conversor Analógico-Digital) conectado a um sensor ou a outro componente. O ADC do ESP8266 funciona bem em projetos que não exigem leituras muito precisas. Mas lembre-se de que o ADC do ESP8266 não é muito preciso para medições detalhadas. Se o seu projeto precisa ser muito preciso, você pode querer usar um ADC separado, como o ADS1115, com o ESP8266, ou usar um Arduino como o Arduino Uno R4 WiFi, que tem um ADC mais confiável.

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!