Introdução
Neste artigo, desenvolvido em MicroPython, utilizaremos a Franzininho WiFi Lab01, a detecção de chuva por meio de um sensor próprio para isso. Este dispositivo é reconhecido por sua capacidade de detectar chuva através da variação da resistência da placa que coleta as gotículas de água.
Sensor 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).
O princípio de funcionamento do sensor de chuva é o seguinte: quando uma gota de água entra em contato com a superfície da placa metálica coletora, a resistência elétrica aumenta, resultando em uma diminuição na tensão de saída. Em contrapartida, quando a placa metálica está seca, a resistência elétrica é menor, levando a uma tensão de saída mais alta.
Recursos necessários
Para iniciar o trabalho com os GPIOs, é essencial possuir o diagrama de pinos da placa à disposição, pois isso vai permitir que você identifique tanto os nomes quanto as funções associadas a cada um deles.
| Pino | Recurso |
| IO1 | LDR |
| IO2 | BT6 |
| IO3 | BT5 |
| IO4 | BT4 |
| IO5 | BT3 |
| IO6 | BT2 |
| IO7 | BT1 |
| IO8 | OLED_SDA |
| IO9 | OLED_SCL |
| IO10 | TFT_DC |
| IO11 | TFT_RES |
| IO12 | LED AZUL |
| IO13 | LED VERDE |
| IO14 | LED VERMELHO |
| IO15 | DHT11 |
| IO17 | BUZZER |
| IO35 | TFT_SDA |
| IO36 | TFT_SCL |
Usando os GPIOS para Conexão Externa
Para esse projeto precisaremos utilizar uma protoboard, pois o sensor de chuva não está integrado a Franzininho WiFi Lab01. Portanto, será necessário realizar a conexão por meio dos pinos GPIOs disponíveis na placa.
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:
- Os pinos VCC e GND devem ser conectados ao 3,3 V e GND da Franzininho WiFi Lab01, respectivamente;
- O pino A0 do sensor de chuva não será utilizado nesta aplicação;
- O pino D0 do sensor MQ135 deve ser conectado a uma das entradas digitais da Franzininho WiFi Lab01.
Código
Com a Franzininho WiFi Lab01 conectada ao seu computador, abra o Thonny e crie um novo arquivo contendo o código a seguir:
from machine import Pin, I2C
import time, ssd1306
led_red = Pin(14, Pin.OUT)
#configurando sensor
sensor_chuva= Pin(2, Pin.IN)
# atribuição de pinos da Franzininho
i2c = I2C(scl=Pin(9), sda=Pin(8), freq=100000)
# configurando display
oled_width = 128
oled_height = 64
oled = ssd1306.SSD1306_I2C(oled_width, oled_height, i2c)
while True:
#coletando data e hora atual
current_time = time.localtime()
formatted_time = "{:02d}/{:02d}/{} {:02d}:{:02d}".format(current_time[2], current_time[1], current_time[0], current_time[3], current_time[4])
# limpa display
oled.fill(0)
# exibição no display
oled.text(formatted_time, 0, 0)
if sensor_chuva.value():
oled.text("Sem chuva", 0, 30)
led_red.off()
else:
oled.text("Chovendo", 0, 30)
led_red.on()
oled.show()
time.sleep(5)Vamos começar o código com “from machine import Pin, I2C”. Para poder acessar os pinos da placa e utilizar a comunicação I2C. A biblioteca “time” foi utilizada para adicionar pausas no código. Para utilizar o display OLED, importe a biblioteca “ssd1306”, que foi previamente instalada na sua placa.
Iniciamos nomeando o LED RGB e o associando aos pinos da placa como saída (Pin.OUT). Consultando a tabela de pinos da Franzininho WiFi LAB01, identificamos que o pino 14 é responsável pela cor vermelha do LED RGB.
Em seguida, configuramos o pino do sensor que foi conectado ao GPIO 2 e ajustado como entrada. Logo:
led_red = Pin(14, Pin.OUT)
#configurando sensor
sensor_chuva= Pin(2, Pin.IN)De acordo com a tabela de pinagem, os pinos SCL e SDA da Franzininho WiFi Lab01 são os pinos 9 e 8, respectivamente. Assim, o I2C é configurado. Além disso, configuramos o display OLED, definindo a largura e altura do display, que são 128×64, e realizamos a associação ao I2C.
i2c = I2C(scl=Pin(9), sda=Pin(8), freq=100000)oled_width = 128
oled_height = 64
oled = ssd1306.SSD1306_I2C(oled_width, oled_height, i2c) No loop principal definimos a condição em que, ao detectar um sinal pelo sensor, a mensagem “Chovendo” será apresentada no display, e o LED vermelho ficará apagado. Do contrário, se nenhum sinal for detectado, uma mensagem indicando que não há precipitação, “Sem chuva”, será exibida e o LED vermelho acende.
A verificação será feita a cada 5 segundos. Vale ressaltar que a configuração padrão do sensor é de nível lógico alto. Em outras palavras, quando não há detecção, a saída do sensor é 1 e, ao detectar algo, sua saída é alterada para 0.
Também foi exibido no display data e hora, como nos exemplos que antecederam esse.
A seguir, apresentamos o resultado do teste realizado sem e com gota d‘água na placa metálica do sensor.
Conclusão
Neste artigo, apresentamos em MicroPython uma solução para o monitoramento da do ambiente com a Franzininho WiFi Lab01 e o sensor de detecção de chuva. A utilização do sensor de chuva oferece uma abordagem eficiente para detectar a presença de precipitação.
Como sugestão, é possível implementar sinais de alerta adicionais, como ativar um efeito sonoro através do buzzer da Franzininho ou a implementação do piscar do LED. Essas adições enriquecem a capacidade de alerta do sistema e oferecem múltiplos meios de notificação.





