O Projeto
de monitoramento de nível de caixa d'água ou qualquer reservatório e que tenha
qualquer forma geométrica é mais uma possibilidade de aplicação do incrível e
prático módulo JSN-SR04T em conjunto com o microcontrolador ESP32.
Ele é o
mais versátil e preciso, podendo detectar objetos com até 2 metros de
distância, tendo um ângulo de feixe muito útil de 45 graus, capaz de medir com
precisão de até 0,5cm. Ao contrário de outros sensores ultrassônicos como o Sensor
Ultrassônic HC-SR04.
ESQUEMA DE LIGAÇÃO DO PROJETO
OBS. O sensor utilizado no esquema é o HC-SR04, visto que as conexões entre ele e o JSN-SR04T são as mesmas
Neste
projeto é utilizado a mesma lógica no sensor HC-SR04 que está postado neste site e da mesma forma sem o uso de bibliotecas só que dessa vez
com o sinal de condição if e else que estabelece uma condicional para a lógica que é o maior
quê e menor
quê (> e <) de forma que se encaixe
perfeitamente no seu projeto.
A lógica
desse projeto é que quando o nível da água do reservatório for baixando o
sensor vai fazendo a leitura e enviando a mensagem para o microcontrolador
(ESP32) e este por sua vez, envia os sinais para que o rele acione a bomba de abastacimento obedecendo o que é determinado no código do projeto, que foi
estabelecido dois níveis de medição, (limite1=100cm e limite2 = 30 cm) cada um com suas respectivas ações que
serão tomada pelo microcontrolador(ESP32), e no seguhndo e último nível vai ser
enviado um sinal para o acion amento da bomba de abastecimento.
SKETCH DO PROJETO
/* Projeto controle de nível de caixa d'água utilizando o sensor JA-SR04M
e uma placa ESP32, se você tiver usando o Arduino use as portas 8 e 9*/
//autor Prof.Ednaldo Silva
#define Trig 8 // Pino de comunicaçao 8 ligado ao Trigger
#define Echo 9 // Pino de comunicaçao 9 ligado ao Echo
#define rele 11 // Pino 11 COMO RELE
float distancia; // Variavel de leitura da distancia
void leitura(); // Funçao de leitura da distancia
const float limite1 = 80.0;
const float limite2 = 30.0;
void setup(){
Serial.begin(9600);// Inicia a comunicação serial
pinMode(Trig, OUTPUT);
pinMode(Echo, INPUT);
digitalWrite(Trig, LOW); // Inicia com o Trig em nível baixo
pinMode(rele,OUTPUT);
digitalWrite(rele,LOW);
}
void loop(){
leitura();
distancia = distancia/2; // Divide por 2 pois esse e o tempo da onda ir e voltar da onda
distancia = distancia*0.034; /* Multiplicamos por 0,034 por causa da velocidade do som (d=v*t),
obs se der problema na leitura ao invés de 0,034 colocamos 0,034029*/
Serial.print("Distancia em cm: ");
Serial.println(distancia);
if(distancia>limite1){
digitalWrite(rele,HIGH);
}
if(distancia <= limite2){
digitalWrite(rele,LOW);
}
delay(200); // Esse delay pode ser menor
}
void leitura(){
digitalWrite(Trig, HIGH); // Manda um sinal de nível alto por 10 microssegundos
delayMicroseconds(10);
digitalWrite(Trig, LOW);
distancia = pulseIn(Echo, HIGH); // Le o comprimento de onda em alta
}
Comentários
Postar um comentário