Projetos de circuito eletrônicoControlador de nível de águaIndicador de nível de água sem fio ultrassônico - alimentado por...

Indicador de nível de água sem fio ultrassônico – alimentado por energia solar

Relacionados

Um controlador de nível de água ultrassônico é um dispositivo que pode detectar níveis de água em um tanque sem um contato físico e enviar os dados para um indicador LED distante em um modo GSM sem fio.

IMG 6242F8FEA2387
INDICADOR DE NÍVEL DE ÁGUA SEM FIO ULTRASSÔNICO - ALIMENTADO POR ENERGIA SOLAR 19

Neste post, vamos construir um indicador de nível de água sem fio alimentado por energia solar ultrassônico usando Arduino no qual os Arduinos estariam transmitindo e recebendo na frequência sem fio de 2,4 GHz. Estaremos detectando o nível de água no tanque usando ultra-som em vez do método tradicional de eletrodo.

Visão geral

O indicador de nível de água é um gadget obrigatório, se você possui uma casa ou mesmo mora em uma casa alugada. Um indicador de nível de água mostra um dado importante para sua casa que é tão importante quanto a leitura do seu medidor de energia, ou seja, quanta água resta? Para que possamos acompanhar o consumo de água e não precisarmos subir escadas para acessar a caixa d’água para verificar a quantidade de água que sobrou e não mais parada repentina de água da torneira.

Estamos vivendo em 2018 (no momento da redação deste artigo) ou mais tarde, podemos nos comunicar com qualquer lugar do mundo instantaneamente, lançamos um carro de corrida elétrico para o espaço, lançamos satélites e rovers para marte, até conseguimos pousar humanos seres na lua, ainda não há um produto comercial adequado para detectar quanta água resta em nossos tanques de água?

Podemos encontrar indicadores de nível de água feitos por alunos do 5º ano para feira de ciências na escola. Como projetos tão simples não entraram no nosso dia a dia? A resposta é que os indicadores de nível do tanque de água não são projetos simples que um aluno da 5ª série pode fazer para nossa casa. Há muitas considerações práticas antes de projetarmos um.

• Ninguém quer fazer um furo no corpo do tanque de água para eletrodos que podem vazar água mais tarde.
• Ninguém quer passar fio de 230 / 120 VCA perto do tanque de água.
• Ninguém quer trocar as baterias todo mês.
• Ninguém quer passar fios longos adicionais pendurados em uma sala para indicação do nível de água, pois não é pré-planejado durante a construção da casa.
• Ninguém quer usar a água que está misturada com a corrosão do metal do eletrodo.
• Ninguém quer remover a configuração do indicador de nível de água durante a limpeza do tanque (interior).

Algumas das razões mencionadas acima podem parecer bobas, mas você achará menos satisfatório com produtos disponíveis comercialmente com esses contras. É por isso que a penetração desses produtos é muito menor entre os lares médios*.
*No mercado indiano.

Depois de considerar esses pontos-chave, projetamos um indicador prático de nível de água que deve remover os contras mencionados.

Nosso projeto:

• Utiliza sensor ultrassônico para medir o nível de água sem problemas de corrosão.
• Indicação sem fio do nível da água em tempo real a 2,4 GHz.
• Boa intensidade de sinal sem fio, suficiente para edifícios de 2 andares.
• Alimentado por energia solar, não há mais alimentação CA ou substituição de bateria.
• Alarme de tanque cheio/transbordamento durante o enchimento do tanque.

Vamos investigar os detalhes do circuito:

Transmissor:

O circuito transmissor sem fio que é colocado no tanque enviará dados de nível de água a cada 5 segundos 24 horas por dia, 7 dias por semana. O transmissor consiste em Arduino nano, sensor ultrassônico HC-SR04, módulo nRF24L01 que conectará o transmissor e o receptor sem fio a 2,4 GHz.

Um painel solar de 9 V a 12 V com saída de corrente de 300 mA alimentará o circuito transmissor. Uma placa de circuito de gerenciamento de bateria carregará a bateria de íons de lítio, para que possamos monitorar o nível da água mesmo quando não houver luz solar.

Vamos explorar como colocar o sensor ultrassônico no tanque de água:

Observe que você precisa usar sua criatividade para montar o circuito e proteger da chuva e da luz solar direta.

Corte um pequeno orifício acima da tampa do tanque para colocar o sensor ultrassônico e sele-o com algum tipo de adesivo que encontrar.

COLOCANDO O SENSOR ULTRASSÔNICO EM UM TANQUE DE ÁGUA

Agora meça a altura total do tanque do fundo até a tampa, anote em metros. Agora meça a altura da capacidade de retenção de água do tanque como mostrado na imagem acima e anote em metros.
Você precisa inserir esses dois valores no código.

Diagrama esquemático do transmissor:

CONEXÕES DO TRANSMISSOR ULTRASSÔNICO PARA O CONTROLE DO NÍVEL DE ÁGUA

NOTA: nRF24L01 usa 3.3V pois Vcc não conecta na saída de 5V do Arduino.

Fonte de alimentação para o transmissor:

PROJETO DE FONTE DE ALIMENTAÇÃO DO CONTROLADOR DE NÍVEL DE ÁGUA ULTRASSÔNICO

Certifique-se de que a potência de saída do seu painel solar, ou seja, a saída (volt x corrente) é superior a 3 watts. O painel solar deve ser de 9V a 12V.

Recomenda-se painel de 12V e 300mA que você pode encontrar facilmente no mercado. A bateria deve estar em torno de 3,7V 1000 mAh.

Módulo de carregamento de íons de lítio 5V 18650:

A imagem a seguir mostra um circuito de carregador padrão 18650

IMG 6242F8FF92C9C

A entrada pode ser USB (não usada) ou 5V externo do LM7805 IC. Certifique-se de obter o módulo correto conforme mostrado acima, ele deve ter proteção TP4056, que possui corte de bateria fraca e proteção contra curto-circuito.

A saída deste deve ser alimentada na entrada do XL6009, que aumentará para uma tensão mais alta, usando uma pequena saída de chave de fenda do XL6009 deve ser ajustada para 9V para Arduino.

Ilustração do conversor boost DC para DC XL6009:

IMG 6242F8FFCA10D

Isso conclui o hardware do transmissor.

Código para Transmissor:

// ----------- Program Developed by R.GIRISH / Homemade-circuits .com ----------- //
#include
#include
RF24 radio(9, 10);
const byte address[6] = "00001";
const int trigger = 3;
const int echo = 2;
const char text_0[] = "STOP";
const char text_1[] = "FULL";
const char text_2[] = "3/4";
const char text_3[] = "HALF";
const char text_4[] = "LOW";
float full = 0;
float three_fourth = 0;
float half = 0;
float quarter = 0;
long Time;
float distanceCM = 0;
float distanceM = 0;
float resultCM = 0;
float resultM = 0;
float actual_distance = 0;
float compensation_distance = 0;
// ------- CHANGE THIS -------//
float water_hold_capacity = 1.0; // Enter in Meters.
float full_height = 1.3; // Enter in Meters.
// ---------- -------------- //
void setup()
{
Serial.begin(9600);
pinMode(trigger, OUTPUT);
pinMode(echo, INPUT);
digitalWrite(trigger, LOW);
radio.begin();
radio.openWritingPipe(address);
radio.setChannel(100);
radio.setDataRate(RF24_250KBPS);
radio.setPALevel(RF24_PA_MAX);
radio.stopListening();
full = water_hold_capacity;
three_fourth = water_hold_capacity * 0.75;
half = water_hold_capacity * 0.50;
quarter = water_hold_capacity * 0.25;
}
void loop()
{
delay(5000);
digitalWrite(trigger, HIGH);
delayMicroseconds(10);
digitalWrite(trigger, LOW);
Time = pulseIn(echo, HIGH);
distanceCM = Time * 0.034;
resultCM = distanceCM / 2;
resultM = resultCM / 100;
Serial.print("Normal Distance: ");
Serial.print(resultM);
Serial.println(" M");
compensation_distance = full_height - water_hold_capacity;
actual_distance = resultM - compensation_distance;
actual_distance = water_hold_capacity - actual_distance;
if (actual_distance < 0)
{
Serial.print("Water Level:");
Serial.println(" 0.00 M (UP)");
}
else
{
Serial.print("Water Level: ");
Serial.print(actual_distance);
Serial.println(" M (UP)");
}
Serial.println("============================");
if (actual_distance >= full)
{
radio.write(&text_0, sizeof(text_0));
}
if (actual_distance > three_fourth && actual_distance <= full)
{
radio.write(&text_1, sizeof(text_1));
}
if (actual_distance > half && actual_distance <= three_fourth)
{
radio.write(&text_2, sizeof(text_2));
}
if (actual_distance > quarter && actual_distance <= half)
{
radio.write(&text_3, sizeof(text_3));
}
if (actual_distance <= quarter)
{
radio.write(&text_4, sizeof(text_4));
}
}
// ----------- Program Developed by R.GIRISH / Homemade-circuits .com ----------- //

Altere os seguintes valores no código que você mediu:

// ------- CHANGE THIS -------//
float water_hold_capacity = 1.0; // Enter in Meters.
float full_height = 1.3; // Enter in Meters.
// ---------- -------------- //

Isso conclui o transmissor.

O receptor:

ESQUEMA DE CONTROLADOR DE RECEPTOR DE NÍVEL DE ÁGUA ULTRASSÔNICO
INDICADOR DE NÍVEL DE ÁGUA SEM FIO ULTRASSÔNICO - ALIMENTADO POR ENERGIA SOLAR 20

O receptor pode mostrar 5 níveis. Alarme, quando o tanque atingiu a capacidade máxima absoluta de retenção de água durante o enchimento do tanque. 100 a 75% – Todos os quatro LEDs acenderão, 75 a 50% três LEDs acenderão, 50 a 25% dois LEDs acenderão, 25% e menos um LED acenderá.
O receptor pode ser alimentado a partir de uma bateria de 9V ou de um carregador de smartphone para um cabo USB mini-B.

Código para Receptor:

// ----------- Program Developed by R.GIRISH / Homemade-circuits .com ----------- //
#include
#include
RF24 radio(9, 10);
int i = 0;
const byte address[6] = "00001";
const int buzzer = 6;
const int LED_full = 5;
const int LED_three_fourth = 4;
const int LED_half = 3;
const int LED_quarter = 2;
char text[32] = "";
void setup()
{
pinMode(buzzer, OUTPUT);
pinMode(LED_full, OUTPUT);
pinMode(LED_three_fourth, OUTPUT);
pinMode(LED_half, OUTPUT);
pinMode(LED_quarter, OUTPUT);
digitalWrite(buzzer, HIGH);
delay(300);
digitalWrite(buzzer, LOW);
digitalWrite(LED_full, HIGH);
delay(300);
digitalWrite(LED_three_fourth, HIGH);
delay(300);
digitalWrite(LED_half, HIGH);
delay(300);
digitalWrite(LED_quarter, HIGH);
delay(300);
digitalWrite(LED_full, LOW);
delay(300);
digitalWrite(LED_three_fourth, LOW);
delay(300);
digitalWrite(LED_half, LOW);
delay(300);
digitalWrite(LED_quarter, LOW);
Serial.begin(9600);
radio.begin();
radio.openReadingPipe(0, address);
radio.setChannel(100);
radio.setDataRate(RF24_250KBPS);
radio.setPALevel(RF24_PA_MAX);
radio.startListening();
}
void loop()
{
if (radio.available())
{
radio.read(&text, sizeof(text));
Serial.println(text);
if (text[0] == 'S' && text[1] == 'T' && text[2] == 'O' && text[3] == 'P')
{
digitalWrite(LED_full, HIGH);
digitalWrite(LED_three_fourth, HIGH);
digitalWrite(LED_half, HIGH);
digitalWrite(LED_quarter, HIGH);
for (i = 0; i < 50; i++)
{
digitalWrite(buzzer, HIGH);
delay(50);
digitalWrite(buzzer, LOW);
delay(50);
}
}
if (text[0] == 'F' && text[1] == 'U' && text[2] == 'L' && text[3] == 'L')
{
digitalWrite(LED_full, HIGH);
digitalWrite(LED_three_fourth, HIGH);
digitalWrite(LED_half, HIGH);
digitalWrite(LED_quarter, HIGH);
}
if (text[0] == '3' && text[1] == '/' && text[2] == '4')
{
digitalWrite(LED_full, LOW);
digitalWrite(LED_three_fourth, HIGH);
digitalWrite(LED_half, HIGH);
digitalWrite(LED_quarter, HIGH);
}
if (text[0] == 'H' && text [1] == 'A' && text[2] == 'L' && text[3] == 'F')
{
digitalWrite(LED_full, LOW);
digitalWrite(LED_three_fourth, LOW);
digitalWrite(LED_half, HIGH);
digitalWrite(LED_quarter, HIGH);
}
if (text[0] == 'L' && text[1] == 'O' && text[2] == 'W')
{
digitalWrite(LED_full, LOW);
digitalWrite(LED_three_fourth, LOW);
digitalWrite(LED_half, LOW);
digitalWrite(LED_quarter, HIGH);
}
}
}
// ----------- Program Developed by R.GIRISH / Homemade-circuits .com ----------- //

Isso conclui o receptor.

NOTA: se nenhum LED estiver aceso, o que significa que o receptor não pode receber sinal do transmissor. Você deve esperar 5 segundos para receber o sinal do transmissor depois de ligar o circuito do receptor.

Protótipos do autor:

Transmissor:

PROTÓTIPO DE TRANSMISSOR ULTRASSÔNICO

Receptor:

PROTÓTIPO DE RECEPTOR ULTRASSÔNICO
INDICADOR DE NÍVEL DE ÁGUA SEM FIO ULTRASSÔNICO - ALIMENTADO POR ENERGIA SOLAR 21

Se você tiver alguma dúvida sobre este circuito controlador de nível de água sem fio ultrassônico movido a energia solar, sinta-se à vontade para expressar no comentário, você pode esperar obter uma resposta rápida.

Hashtags: #Indicador #nível #água #sem #fio #ultrassônico #alimentado #por #energia #solar
 

FONTE


Nota: Este conteúdo foi traduzido do Inglês para português (auto)
Pode conter erros de tradução

Olá, se tiver algum erro de tradução (AUTO), falta de link para download etc…
Veja na FONTE até ser revisado o conteúdo.
Status (Ok Até agora)


Se tiver algum erro coloque nos comentários

Mas se gostou compartilhe!!!

Relacionados

Relacionados