Escolar Documentos
Profissional Documentos
Cultura Documentos
Chuva
embarcados.com.br/projeto-monitoramento-com-sensor-de-deteccao-de-chuva/
Este post faz parte da série Raspberry Pi Pico com MicroPython. Leia também os outros
posts da série:
Introdução
A crescente demanda por soluções eficazes de monitoramento climático tem impulsionado a
busca por tecnologias acessíveis e práticas. Como, por exemplo, o monitoramento de
chuvas com o uso do Sensor de Detecção de Chuva.
Neste projeto, exploraremos o Sensor de Detecção de Chuva que com sua capacidade de
identificar gotas de chuva por meio de variações elétricas nos permitirá verificar quando há
ou não precipitação.
-- publicidade --
1/6
Sensor de Detecção de Chuva
O sensor de chuva é um dispositivo eletrônico que possui a capacidade de detectar gotas
de chuva que caem em sua superfície metalizada. Esse componente é composto por duas
partes distintas: uma placa eletrônica (localizada à direita) e uma placa metálica coletora
(localizada à esquerda).
Montagem da placa
1 x Raspberry Pi Pico
1 x Protoboard
1 x Cabo micro USB
1 x LED
1 x Resistor de 220 Ω
1 x Buzzer
1 x Sensor de chuva
Jumpers
2/6
Utilizando a protoboard, conecte o pino GND do Raspberry Pi Pico à linha de terra da
protoboard usando um jumper a partir do pino 38 da placa Pico. Da mesma forma, alimente
a proto conectando o pino VCC do Pico à linha de alimentação da protoboard através de um
jumper a partir do pino 36.
O sensor de chuva possui 4 pinos: VCC, GND, A0 (saída analógica) e D0 (saída digital). A
identificação de cada um deles está impressa na parte inferior do sensor. Assim:
Além disso, o terminal maior do LED (ânodo) deve ser conectado a um pino digital da placa,
aqui optamos por utilizar o GP15. O terminal menor do LED (cátodo) será conectado a um
resistor de 220 Ω que deve ser conectado ao GND.
3/6
Projeto Detecção de Chuva – Canal Analógico do Sensor de Detecção de
Chuva
Utilizando o Thonny IDE, vamos iniciar importando as bibliotecas “machine” e “utime”, que
nós já conhecemos, para poder acessar os pinos da placa e para adicionar atrasos ao
programa.
1 import machine
2 import utime
3
4 sensor_chuva= machine.ADC(26)
5 led_red = machine.Pin(15,machine.Pin.OUT)
6 fator_conversao = 3.3 / (65535)
Em seguida, no loop principal definimos que a leitura do sensor será o valor em 16 bits
captado pelo ADC multiplicado pelo fator de conversão, o que nos dará um valor entre 0 e
3,3 V.
Assim, de forma empírica definimos que a detecção de chuva se dará se o valor lido for
menor ou igual a 2. Essa decisão se fundamenta no fato de que, na ausência de gotas de
chuva, o sensor fornece uma leitura de 3,3 V. À medida que gotas de chuva são captadas
pela superfície do sensor, esse valor diminui. Considerando que uma chuva consiste em
diversas gotas, foi estabelecido que um valor inferior a 2 é apropriado para indicar a
presença de chuva.
Então quando o sensor detectar uma leitura maior que 2, uma mensagem será exibida no
shell indicando não haver chuva e o led ficará apagado, do contrário uma mensagem
informando que está chovendo será mostrada e o led será aceso. A verificação será feita a
cada 2 segundos.
Python
4/6
1 import machine
2 import utime
3
4 sensor_chuva= machine.ADC(26)
5 led_red = machine.Pin(15,machine.Pin.OUT)
6 fator_conversao = 3.3 / (65535)
7 while True:
8 leitura_chuva = sensor_chuva.read_u16() * fator_conversao
9
10 if leitura_chuva > 2:
11 print("Não está chovendo")
12 led_red.low()
13
14 else:
15 print("Está chovendo")
16 led_red.high()
17
18 utime.sleep(2)
Feito isso, as primeiras definições do código são para configurar o led e o sensor. Na
configuração do sensor definiremos como uma entrada digital e o led como uma saída.
1 import machine
2 import utime
3
4 sensor_chuva= machine.Pin(14,machine.Pin.IN)
5 led_red = machine.Pin(15,machine.Pin.OUT)
5/6
Em seguida, no loop principal definimos que se o valor lido pelo sensor for 1 significa que
não está chovendo (lembrando que esse sensor considera a ausência de chuva em nível
lógico alto) e o led deve ficar apagado. Por outro lado, se o valor lido indicar presença de
chuva, o LED é aceso e uma mensagem é exibida, informando que está chovendo.
Python
1 import machine
2 import utime
3
4 sensor_chuva= machine.Pin(14,machine.Pin.IN)
5 led_red = machine.Pin(15,machine.Pin.OUT)
6
7 while True:
8 if sensor_chuva.value():
9 print("Não está chovendo")
10 led_red.low()
11
12 else:
13 print("Está chovendo")
14 led_red.high()
15
16 utime.sleep(2)
Conclusão
O projeto que desenvolvemos ofereceu uma abordagem abrangente para o monitoramento
da detecção de chuva, utilizando tanto a saída analógica quanto a digital do sensor. Além
disso, uma parte importante do projeto foi a calibração precisa do sensor de detecção de
chuva, permitindo que ele fornecesse resultados confiáveis e ajustados às condições
específicas do ambiente.
Trabalhando com a saída analógica, foi possível ter uma visão detalhada da intensidade da
chuva, enquanto a saída digital permitiu a detecção simples da presença ou ausência de
chuva.
6/6