Preparado para a época de chuvas? Não? Que tal uma ajudinha com o Arduino? Utilize um sensor de chuva com Arduino para que você consiga fechar uma janela quando não estiver em casa ou acionar uma bomba para armazenar água da chuva.
O sensor de chuva para Arduino é um componente com duas partes: a placa do sensor, formada por várias trilhas resistentes à oxidação, que vão detectar o nível de líquido que está atingindo a placa, e o módulo com chip comparador LM393, que é o responsável por ler as informações desse sensor e enviar os dados pelas pinos A0 (analógico), ou D0 (digital – valores 0 e 1).
Esse módulo também tem um potenciômetro para ajuste de sensibilidade, um led vermelho para indicação de LIGADO, e um led verde que indica a transmissão de dados:
Voltando aos exemplos que eu citei no início do post, você pode utilizar um motor ligado à saída digital para abrir (sem chuva – nível HIGH) ou fechar (com chuva – nível LOW) uma janela quando for detectada chuva, e com a saída analógica você pode abrir uma válvula ou acionar uma bomba dependendo da intensidade da chuva, lendo os valores de 0 à 1023 fornecidos por essa porta.
Conexão do sensor de chuva no Arduino
Teste o seu módulo com apenas 3 leds e 3 resistores, montando o circuito abaixo. O módulo pode ser alimentado com tensão entre 3.3 e 5 volts:
O programa de teste lê as informações do sensor e acende os leds de acordo com o nível de líquido detectado. Os valores são lidos em uma série de comandos IF (SE), que podem ser acrescentados ou alterados de acordo com o nível de precisão desejada:
// Programa : Teste sensor de chuva // Autor : Arduino e Cia int pino_d = 2; //Pino ligado ao D0 do sensor int pino_a = A5; //Pino ligado ao A0 do sensor int val_d = 0; //Armazena o valor lido do pino digital int val_a = 0; //Armazena o valor lido do pino analogico // Portas ligadas aos leds int pino_led_verde = 5; int pino_led_amarelo = 6; int pino_led_vermelho = 7; void setup() { // Define os pinos do sensor como entrada pinMode(pino_d, INPUT); pinMode(pino_a, INPUT); // Define os pinos dos leds como saida pinMode(pino_led_verde, OUTPUT); pinMode(pino_led_amarelo, OUTPUT); pinMode(pino_led_vermelho, OUTPUT); Serial.begin(9600); } void loop() { //Le e arnazena o valor do pino digital val_d = digitalRead(pino_d); //Le e armazena o valor do pino analogico val_a = analogRead(pino_a); //Envia as informacoes para o serial monitor Serial.print("Valor digital : "); Serial.print(val_d); Serial.print(" - Valor analogico : "); Serial.println(val_a); // Acende o led de acordo com a intensidade if (val_a >900 && val_a <1024) { // Acende led verde - intensidade baixa digitalWrite(pino_led_verde, HIGH); digitalWrite(pino_led_amarelo, LOW); digitalWrite(pino_led_vermelho, LOW); } if (val_a >400 && val_a <900) { // Acende led amarelo - intensidade moderada digitalWrite(pino_led_verde, LOW); digitalWrite(pino_led_amarelo, HIGH); digitalWrite(pino_led_vermelho, LOW); } if (val_a > 0 && val_a <400) { // Acende led vermelho - intensidade alta digitalWrite(pino_led_verde, LOW); digitalWrite(pino_led_amarelo, LOW); digitalWrite(pino_led_vermelho, HIGH); } delay(1000); }
Caso você queira testar apenas o sensor, sem montar todo o circuito, os valores também são exibidos no serial monitor:
O funcionamento do circuito teste você confere no vídeo abaixo:
Gostou? Confira outros posts com sensores aqui mesmo no Arduino e Cia!