Neste artigo, o Assistente nos dirá como criar um sistema para monitorar e controlar o nível da água em um tanque. É um sistema simples e confiável.
Suas principais características são as seguintes:
Monitoramento do nível da água em tempo real.
Bomba de ligar / desligar automática.
Parada de emergência da bomba.
Ferramentas e materiais:
-Arduino Pro mini
- Sensor ultrassônico HC-SR04;
- módulo MAX485;
- módulo LCD i2c;
LCD 1602;
- Microcontrolador ATTINY45 / 85;
- Regulador de tensão LM7805;
Transistor NPN (2n3904);
MOSFET de canal N IRFD024PBF;
Diodo 1N4007;
Conector de 5 pinos;
Conector de 4 pinos
Conector de -2 pinos;
- Terminais com 2 contatos (azul) - 2 peças;
- Terminal com 2 contatos (verde);
Conector DC (- 2 peças)
-Jack de áudio (masculino / feminino) - 2 peças;
- Resistor 1 kOhm;
- Resistor 10 kOhm - 3 peças;
- Capacitor 100 nF - 3 peças;
Capacitor 100 uF;
- Botão SMD, 6x3,5mm;
Interruptores DIP (SPST 2) - 2 peças;
- botão liga / desliga;
-Tumbler;
Relé -12V DC;
Contator de retransmissão;
- fonte de alimentação CC 5 V (> 200 mA);
- fonte de alimentação de 12V DC (> 500 mA);
-Caixas para caixas de tamanho adequado;
-Fixadores;
Acessórios de solda;
- chave de fenda;
Fio;
Etapa 1: Unidade do sensor
Esta unidade mede o nível da água e envia dados para o controlador principal. Possui dois sensores para medir o nível da água. Um é o sensor de distância ultrassônico HC-SR04, os outros dois parafusos longos se projetam para fora, como mostrado na foto.
Para instalar os sensores, você deve executar as seguintes etapas:
Coloque o transdutor ultrassônico de cabeça para baixo na frente da tampa, próximo à parte superior e marque os dois orifícios para o transmissor e o receptor ultrassônicos.
Faça furos e aperte o sensor no lugar com cola quente.
Em seguida, faça dois furos com um diâmetro de 3 mm e uma folga de 2-3 cm no centro da tampa.
Insira os parafusos M3 longos com o terminal de fio preso entre as duas arruelas na parte traseira da tampa e aperte as porcas M3 do outro lado.
A unidade do sensor usa o ATTINY45 como o microcontrolador primário. Como mencionado anteriormente, o HC-SR04 é usado para medir o nível da água. Funciona medindo a distância do topo do tanque.
Além disso, o controle é realizado usando dois parafusos no circuito, no qual o transistor está instalado. O microcontrolador lê dados de ambos os sensores e envia dados para o Arduino instalado na unidade controladora.
Primeiro, o mestre queria enviar dados através dos módulos de RF HC-12. Mas o alcance desses módulos não corresponde aos requisitos.O assistente usou o conversor MAX485 TTL para RS485 e criou um pequeno riser para instalar no lugar dos módulos HC-12.
Esquema e link para o quadro podem ser baixados neste endereço.
A instalação é a seguinte:
HC-SR04 para o circuito principal:
Vcc - 5V (CN1).
trig - trigPin (CN1).
eco - ecoPin (CN1).
Gnd - GND (CN1).
Parafusos M3 no circuito principal:
Parafuso 1 - 5 V (CN1).
Parafuso 2 - 100 (CN1).
Módulo MAX485 (TX):
VCC - 5V (conector HC-12)
A - Tomada de áudio de 1/4 de polegada.
B - Tomada de áudio de 1/4 de polegada.
GND - GND (conector HC-12)
R0 - RX (conector HC-12)
RE - VCC (MAX485) ou 5V.
DE - RE (abreviado como RE e DE).
DI - TX (conector HC-12).
Conector DC (conector P1):
Ponta - 5V
Manga - GND
Etapa 2: Controlador
A operação do controlador é simples. O Arduino é usado como o controlador principal. Ele recebe dados do sensor enviados da placa do transmissor através do módulo max485. Possui um display LCD 1602 que exibe o nível atual da água e a operação da bomba. Ele usa um relé de 12 V como um interruptor para ligar o contator do relé. Possui dois interruptores, um para iluminar o LCD e outro para ligar / desligar a bomba de emergência.
Um link para o diagrama do circuito e o design da placa de circuito impresso para o transmissor e o receptor está localizado aqui.
O módulo LCD i2c é soldado diretamente ao LCD 1602. O jumper de luz de fundo no módulo i2c está conectado ao interruptor de alternância para ligar / desligar. O botão de emergência (grande) é conectado ao circuito principal via conector P4.
Módulo LCD I2c para o circuito principal (CN4):
GND - CN4-1 (GND1).
VCC - CN4-2 (5V).
SCL - CN4-3 (A5).
SDA - CN4-4 (A4).
Conexões do contator do relé:
A1 - 230 VAC1 (zero).
A2 - NO (contato do relé).
S1 - 230 VAC1 (zero).
S2 - 230 VAC2 (fase)
L1 - Fio do motor da bomba 1
L2 - Fio do motor da bomba 2.
Conecte o contato do relé COM a 230 VAC2 (linha).
Etapa três: software e programação
Agora você precisa programar os controladores nos dois dispositivos.
Para baixar o código para o ATTINY45, ele baixa a biblioteca SoftwareSerial.h.
Na função Loop,
> Primeiro verifique se o tanque está cheio ou não.
> Se estiver cheio, ele envia "255".
> Se não estiver cheio, verifica o nível da água com um sensor de som ultrassônico e transmite dados via comunicação serial.
Este programa usa a subfunção getwtrLvl () para obter o nível de água atual. Primeiro, mede o tempo que o sensor leva para transmitir e receber ondas ultrassônicas. Então o tempo é convertido para a distância usando a velocidade do som.
dist = pulsoIn (eco, ALTO); // tempo gasto pela onda sonora.
dist = dist / 28/2; // traduz o tempo em distância em cm
dist = dist * 1,25; // aqui 1,25 é o fator de correção para superar o erro de medição
retornar dist; // retorna a distância para a função de chamada
Agora para o Arduino.
Na função Loop:
> Primeiro, verifica se o botão de emergência está pressionado ou não.
> Verificação do sensor. Parte do programa verifica se há um erro no sensor. ou seja, se os dados recebidos forem inválidos (<= 1) 5 vezes, o display exibirá o erro do sensor e a bomba será desligada.
> A próxima parte exibe o nível atual da água e fornece um comando para a bomba 1 se o nível da água for pequeno ou 0 se estiver 100% (cheio).
Este programa usa duas subfunções updtMotor () e getWaterLvl (). A função updtMotor () mostra a operação da bomba no LCD e também envia um sinal para o relé.
A função getWaterLvl primeiro verifica se há algum erro de conexão. Se a conexão entre o transmissor e o receptor não for estabelecida durante o tempo de espera (3000 ms). Ele mostra um erro no sensor e desliga a bomba.
Quando a conexão é restaurada, a operação é retomada.
Está tudo pronto, graças ao mestre por uma interessante caseiro.