- Materiais requisitados
- Sensor de chuva
- Funcionamento do sensor de chuva
- Diagrama de circuito
- Explicação do código
- Funcionamento do sistema de detecção de chuva baseado em Arduino
Um simples sistema de detecção de chuva pode ser facilmente construído através da interface de um Arduino com o sensor de chuva. O sensor detectará qualquer chuva que caia sobre ele e a placa Arduino perceberá e poderá executar as ações necessárias. Um sistema como este pode ser usado em muitos campos diferentes, como agricultura e automobilística. A detecção de chuva pode ser usada para regular automaticamente o processo de irrigação. Além disso, dados de precipitação contínuapode ajudar os agricultores a usar este sistema inteligente para regar automaticamente a plantação apenas quando absolutamente necessário. Da mesma forma, no setor automotivo, os limpadores de para-brisa podem ser totalmente automatizados com o uso do sistema de detecção de chuva. E os sistemas de automação residencial também podem usar a detecção de chuva para fechar janelas automaticamente e ajustar a temperatura ambiente. Neste tutorial, construiremos um sensor de chuva básico usando Arduino com uma campainha. Você pode então usar essa configuração para construir o que quiser em cima dela. Além disso, nota que o módulo sensor de chuva também é referido como um sensor de gota de chuva ou sensor de medidor de chuva ou sensor de águas pluviais com base no uso, mas todos eles se referem ao mesmo sensor utilizado neste projecto e todos eles trabalham no mesmo princípio.
Também construímos um alarme de chuva simples e um limpador de pára-brisa automático usando apenas o 555 Timer, você pode querer verificar isso também se não quiser usar um Arduino. Dito isso, vamos voltar a este projeto e começar a construir nosso pluviômetro Arduino.
Materiais requisitados
- Arduino UNO
- Sensor de chuva
- Buzzer
- Tábua de pão
- Fios de conexão
Sensor de chuva
O módulo Raindrops consiste em duas placas, nomeadamente Rain Board e Control Board.
O módulo Rain board é constituído por duas calhas de cobre, concebidas de forma a que em condições de seca proporcionem elevada resistência à tensão de alimentação, sendo que esta tensão de saída deste módulo será de 5V. A resistência deste módulo diminui gradualmente em relação ao aumento da umidade na placa. Conforme a resistência diminui, sua tensão de saída também diminui em relação à umidade no módulo. O módulo Rain board consiste em dois pinos usados para conectar ao painel de controle conforme mostrado abaixo.
O módulo da placa de controle controla a sensibilidade e converte a saída analógica em saída digital. Se o valor analógico estiver abaixo do valor limite da placa de controle, a saída é digital baixa, e se o valor analógico for maior que o valor limite, a saída é digital alta. Para esta comparação e conversão, um comparador LM393 OP-Amp é usado. Um comparador Op-Amp é um circuito interessante que pode ser usado para comparar dois valores de tensão diferentes, já usamos neste circuito em muitos projetos como Vela Eletrônica Inteligente, Alarme de Segurança de Laser, Robô Seguidor de Linha e muito mais.
O módulo de controle Rain que é mostrado abaixo consiste em 4 pinos para conectar o Arduino, ou seja, VCC, GND, D0, A0 e mais dois pinos para conectar o módulo rain board. Em resumo, o módulo do painel de chuva detecta a água da chuva e o módulo do painel de controle é usado para controlar a sensibilidade e comparar e converter os valores analógicos em valores digitais.
Funcionamento do sensor de chuva
O funcionamento do módulo do sensor de chuva é simples de entender. Em dias de sol, devido ao ressecamento do módulo rain board, oferece alta resistência à tensão de alimentação. Esta tensão aparece no pino de saída do módulo de placa de chuva como 5V. Este 5V é lido como 1023 se lido por um pino analógico do Arduino. Durante a chuva, a água da chuva provoca um aumento na umidade do painel de chuva, o que por sua vez resulta na diminuição da resistência oferecida para o abastecimento. Conforme a resistência diminui gradualmente, a tensão de saída começa a diminuir.
Quando a placa de chuva está totalmente molhada e a resistência oferecida por ela é mínima, a tensão de saída será a mais baixa possível (aprox. 0). Este 0V é lido como valor 0 se lido por um pino analógico do Arduino. Se o módulo de painel de chuva estiver parcialmente molhado, a saída deste módulo de painel de chuva será de acordo com a resistência que ele oferece. Se a resistência oferecida pelo módulo rainboard for tal que a saída seja 3V, o valor analógico lido será 613. A fórmula para encontrar ADC pode ser dada por, ADC = (valor de tensão analógica X 1023) / 5. Usando esta fórmula, você pode converter qualquer tensão analógica em um valor de leitura analógica do Arduino.
Diagrama de circuito
O diagrama de circuito abaixo mostra as conexões do circuito para o sensor de gota de chuva com Arduino. O projeto é feito usando proteus, os módulos físicos são semelhantes aos módulos que são mostrados no diagrama de circuito.
O módulo pluviométrico, que é mostrado no diagrama do circuito, está conectado à placa de controle. O pino VCC da placa de controle é conectado à alimentação de 5V. O pino de aterramento é conectado ao aterramento. Se necessário, o pino D0 é conectado a qualquer pino digital do Arduino e esse pino deve ser declarado como um pino de saída no programa. O problema que enfrentamos com o pino D0 é que não podemos obter o valor exato da tensão de saída. Se a saída ultrapassar o limite de tensão, o módulo de controle pode detectar a mudança na saída. Precisamos operar o buzzer, mesmo se houver uma mudança considerável na tensão de saída no módulo rainboard. Por esses motivos, o pino A0 é conectado ao pino analógico do Arduino, o que facilita o monitoramento da mudança na saída. A campainha, que é usada como um sinal para o usuário,pode ser conectado a qualquer pino digital do Arduino. Se a campainha precisar de mais de 5 V, tente conectar um circuito de relé ou um transistor e, em seguida, conecte a carga a ele.
Explicação do código
O código do Arduino para o sensor de chuva foi escrito usando o IDE do Arduino. O código completo para este projeto é fornecido no final da página.
# define chuva A0 # define buzzer 5 valor int; conjunto int = 10;
Definindo o pino A0 como precipitação e o pino 5 como uma campainha e declarando a variável “valor” e “definida” como inteiros e definindo seu valor definido de variável para 10. Este valor pode ser alterado de acordo com o nível de operação necessário. Se você quiser que a campainha seja ativada, mesmo quando houver pouca chuva, defina-a para um valor mínimo
void setup () {Serial.begin (9600); pinMode (buzzer, OUTPUT); pinMode (precipitação, INPUT); }
Inicializando a comunicação serial e configurando a campainha. Configurando o pino de chuva como um pino de saída e um pino de entrada.
loop vazio () {valor = analogRead (chuva); Serial.println (valor); valor = mapa (valor, 0,1023,225,0);
a função analogRead lê o valor do sensor de chuva. O mapa de funções mapeia o valor do sensor de chuva do pino de saída e atribui um valor à variável, variando de 0 a 225.
if (valor> = conjunto) {Serial.println ("chuva detectada"); digitalWrite (campainha, ALTO);
Se o valor do sensor lido for maior que o valor definido, o programa entra no loop, imprime a mensagem no monitor serial e liga a campainha
else {digitalWrite (campainha, LOW);
O programa entra na função else apenas quando o valor é menor que o valor definido. Esta função irá desligar o buzzer quando o valor definido for superior ao valor do sensor, o que indica que não há chuva.
Funcionamento do sistema de detecção de chuva baseado em Arduino
Esse sistema funciona de forma que, quando há chuva, a água da chuva atua como um gatilho, que liga a campainha. No código do Arduino do sensor de gota de chuva, definimos que os pinos 5 e A0 são buzzer e chuva. Fazendo isso, podemos alterar os pinos na parte definida da função e a parte restante do código não será alterada. Isso fará com que o programador edite os pinos facilmente.
No loop void, o comando analogRead lê o valor do sensor. Na próxima linha, o comando Serial.println (valor), imprime o valor no monitor serial. Isso será útil durante a depuração. A função de mapa mapeia o valor de entrada entre 0 -225. O formato da função para o mapa é um mapa (valor, valor mínimo, valor máximo, valor a ser mapeado para valor mínimo, valor a ser mapeado para valor máximo). O buzzer será LIGADO ou DESLIGADO, dependendo do valor definido e da saída do sensor. Este valor é comparado na função if, com o valor definido. Se o valor for maior que o valor configurado, a campainha será acionada. Se o valor for menor que o valor definido, a campainha será desligada.
O trabalho completo pode ser encontrado no vídeo no link abaixo. Esta é uma aplicação entre muitas, o mesmo princípio será visto em limpadores de para-brisa, outros setores de automação residencial, agricultura, etc. Espero que você tenha entendido o projeto e gostado de construir algo útil. Se você tiver alguma dúvida, use a seção de comentários abaixo ou use nossos fóruns para outras questões técnicas.